public TradeSystem(Config config) { mensagens = new List <string>(); vm = new VariavelManager(); stopInicialC = "SUBTRACT(L,MULTIPLY(" + FormulaManager.STDDEV + "(C,10),2))"; stopInicialV = "SUM(H,MULTIPLY(" + FormulaManager.STDDEV + "(C,10),2))";//"HV(H,6)"; stopMovelC = stopInicialC; stopMovelV = stopInicialV; GetVariavel(Consts.VAR_STOP_GAP, "Usado para dar algum espaçamento entre a formula e o valor realmente usado", 0, 5, 20); //Usado para dar algum espaçamento entre a formula e o valor realmente usado GetVariavel(Consts.VAR_RISCO_TRADE, "Valor percentual máximo que um trade pode ter de risco", 0, 5, 20); GetVariavel(Consts.VAR_RISCO_GLOBAL, "Valor percentual máximo que pode ficar exposto", 0, 5, 20); GetVariavel(Consts.VAR_STOP_MENSAL, "Valor percentual que caso atingido implica em paralisar as operações para aquele mês", 0f, 5, 30); GetVariavel(Consts.VAR_MAX_CAPITAL_TRADE, "Valor absoluto máximo que um trade pode ter", 10000f, 5, 100000); GetVariavel(Consts.VAR_PERC_TRADE, "informa quanto do capital eu posso ter por ativo", 10, 5, 100); GetVariavel(Consts.VAR_USA_STOP_MOVEL, "Usa stop movel? 0=nao, 1=sim", 0, 1, 1); GetVariavel(Consts.VAR_MULTIPLAS_ENTRADAS, "A posição pode ter mais de uma entrada(operacao)? 0=nao, 1=sim", 0, 1, 1); GetVariavel(Consts.VAR_MULTIPLAS_SAIDAS, "A posição pode ter mais de uma saida(operacao)? 0=nao, 1=sim", 0, 5, 20); /* condicaoEntradaC = new CondicaoComplexa(); * condicaoEntradaV = new CondicaoComplexa(); * condicaoSaidaC = new CondicaoComplexa(); * condicaoSaidaV = new CondicaoComplexa();*/ string entrada = "GREATER(MME(C,9),MME(C,6))"; string saida = "LOWER(MME(C,9),MME(C,6))"; /*condicaoEntradaC.ChangeCondicao(entrada); * condicaoSaidaC.ChangeCondicao(saida); * condicaoEntradaV.ChangeCondicao(saida); * condicaoSaidaV.ChangeCondicao(entrada);*/ condicaoEntradaC = entrada; condicaoSaidaC = saida; condicaoEntradaV = saida; condicaoSaidaV = entrada; //target de saida targetSaida = "-1"; }
public void TestVariaveis() { Config config = new Config(); TradeSystem tradeSystem = new TradeSystem(config); VariavelManager vm = tradeSystem.vm; string na = "VAR1"; string nb = "NOME_QUALQUER"; Variavel va = vm.GetVariavel(na, "", 1, 2, 3); Variavel vb = vm.GetVariavel(nb, "", 10, 3, 30); string text = "%" + na + "%>%" + nb + "%"; Assert.IsTrue(vm.ReplaceVariavel(text) == "1>10", "Erro: " + vm.ReplaceVariavel(text)); va.next(); vb.next(); float vna = va.vlrAtual; float vnb = vb.vlrAtual; Assert.IsTrue(vm.ReplaceVariavel(text) == vna + ">" + vnb, "Erro: " + vm.ReplaceVariavel(text)); text = "%" + na + "%%" + nb + "%"; Assert.IsTrue(vm.ReplaceVariavel(text) == vna + "" + vnb, "Erro: " + vm.ReplaceVariavel(text)); }