Confira os nossos eBooks, Snippets e Fóruns produzidos para cada plataforma!
Boa noite tudo certo?
Pode me ajudar?
Tenho a estrutura do robô abaixo que só efetua compras, porém quando ele entra a mercado na compra gostaria de já disparasse as ordens de saída para Gain e Loss, a ordem de Loss nem envia e a ordem de saída no Gain só envia após o fechamento do primeiro Candle,
O que esta errado no meu código?
Desde já agradeço.
Segue código abaixo para ser revisado
<input
HorarioEntradas(0920);
HorarioLimite(1220);
HoraFechamentoPosicao(1225);
stopnbarra(2);
stoptempo(1);
xlote(2);
var
alvo, stop : real;
sinalC, sinalV : booleano;
ladoSaida : inteiro;
sinalCompra : Booleano;
nbarra : integer;
iP : Inteiro;
Inicio
Se Nao(HasPosition) entao
inicio
ip := CurrentBar;
sinalCompra := (fechamento < abertura) e (fechamento[1] < abertura[1]);
SinalC := (Time >= HorarioEntradas) e (Time < HorarioLimite) e (sinalCompra);
// Abrir Posicao Compra
Se sinalC entao
inicio
alvo := (Maxima - 0.5);
stop := (Abs(Minima + Range)) * 2;
ladoSaida := osSell;
SellToCoverStop(stop, stop, 2);
SellToCoverLimit(alvo, 2);
BuyAtMarket(2);
fim;
// Fechar Posicao
Se (HasPosition) entao
inicio
SendOrder(ladoSaida,otStopLimit,xlote,stop,stop);
SendOrder(ladoSaida,otLimit,xlote,alvo,0);
fim;
Se (TIME >= HoraFechamentoPosicao) Então
ClosePosition;
Se (CurrentBar >= iP + stopnbarra) Então ClosePosition;
Fim;
>
Boa noite tudo certo?
Pode me ajudar?
Tenho a estrutura do robô abaixo que só efetua compras, porém quando ele entra a mercado na compra gostaria de já disparasse as ordens de saída para Gain e Loss, a ordem de Loss nem envia e a ordem de saída no Gain só envia após o fechamento do primeiro Candle,
O que esta errado no meu código?
Desde já agradeço.
Segue código abaixo para ser revisado
input HorarioEntradas(0920); HorarioLimite(1220); HoraFechamentoPosicao(1225); stopnbarra(2); stoptempo(1); xlote(2); var alvo, stop : real; sinalC, sinalV : booleano; ladoSaida : inteiro; sinalCompra : Booleano; nbarra : integer; iP : Inteiro; Inicio Se Nao(HasPosition) entao inicio ip := CurrentBar; sinalCompra := (fechamento < abertura) e (fechamento[1] < abertura[1]); SinalC := (Time >= HorarioEntradas) e (Time < HorarioLimite) e (sinalCompra); // Abrir Posicao Compra Se sinalC entao inicio alvo := (Maxima - 0.5); stop := (Abs(Minima + Range)) * 2; ladoSaida := osSell; SellToCoverStop(stop, stop, 2); SellToCoverLimit(alvo, 2); BuyAtMarket(2); fim; // Fechar Posicao Se (HasPosition) entao inicio SendOrder(ladoSaida,otStopLimit,xlote,stop,stop); SendOrder(ladoSaida,otLimit,xlote,alvo,0); fim; Se (TIME >= HoraFechamentoPosicao) Então ClosePosition; Se (CurrentBar >= iP + stopnbarra) Então ClosePosition; Fim;
Já experimentou colocar essas linhas abaixo:
SellToCoverStop(stop, stop, 2);
SellToCoverLimit(alvo, 2);
na parte de //fechar posição no lugas das linhas:
SendOrder(ladoSaida,otStopLimit,xlote,stop,stop);
SendOrder(ladoSaida,otLimit,xlote,alvo,0);
Muito obrigado, acabei refazendo todo o código usando como padrão os códigos encontrados aqui.