Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

Código não executa quantidade estipulada de Alvo e Stop.

2 Posts
2 Usuários
0 Reactions
180 Visualizações
(@traderccn)
Novo membro
Registrou: 1 ano atrás
Posts: 1
Iniciador do tópico  

Bom dia Pessoal!

Estou com um código que não está executando o Stop e o Alvo na quantidade informada.

Ex: Para sair com 300 de Alvo, mas na maioria das vezes sai com menos ou mais, e o Stop da mesma forma.

Se alguém puder me orientar eu agradeço muito...

Sou novo no canal e iniciando em programaçõ, mas desde já quero agradecer e parabenizar a iniciativa da Neo TraderBot e do Forum.

Entrada
 TamanhoCandles (500);
  PorcCandles (0,61);
  Parar (150);
  Alvo (300);

era
  bSinalCompra,bSinalVenda : booleano;
  fAlvo, fStop : float;
  

começar
  bSinalCompra := false;
  bSinalVenda := false;
  

  se not hasposition então
  começar
  
    //PADRÃO IDENTIFICAÇÃO VENDA
      se (range > TamanhoCandles) e ((fechamento - abertura) >= (range) * PorcCandles) então
      começar
        paintbar(ClGreen);
        bSinalVenda := true;
      fim;
    

    //PADRÃO IDENTIFICAÇÃO COMPRA
      se (range > TamanhoCandles) e ((abertura - fechamento) >= (range) * PorcCandles) então
      começar
        barra de pintura(Clred);
        bSinalCompra := true;
      fim;
  fim;

 
    //TRATAMENTO DOS SINAIS DE IDENTIFICAÇÃO COMPRA / VENDA

    se bSinalVenda então
    começar
      SellShortAtMarket();
      fStop := fechamento + Stop;
      fAlvo := fechamento - Alvo;
    fim;

    se bSinalCompra então
    começar
      CompreNoMercado();
      fStop := fechamento - Stop;
      fAlvo := fechamento + Alvo;
    fim;


    // GESTÃO DAS POSIÇÕES
  
    se IsSold então
    começar
      BuyToCoverStop(fStop);
      BuyToCoverStop(fAlvo);
    fim;

    se IsBought então
    começar
     SellToCoverStop(fStop);
     SellToCoverStop(fAlvo);
    fim;

 fim;

b


   
Citar
Credson
(@m4tr1xbr)
Membro Moderator
Registrou: 2 anos atrás
Posts: 45
 

Olá, o seu sinal de compra e venda não estaria invertido? Bom de qualquer forma quando for usar a saída do Alvo, use a função "BuyToCoverLimit" e "SellToCoverLimit" ok.

Testa aí para ver se é o que você quer.

input

  TamanhoCandles (500);
  PorcCandles (0.61);
  stop (150);
  Alvo (300);

var

  bSinalCompra,bSinalVenda : booleano;
  fAlvo, fStop : float;
  

begin
  bSinalCompra := false;
  bSinalVenda := false;
  

  If not (hasposition) then
  begin
  
    //PADRÃO IDENTIFICAÇÃO VENDA
      if (range > TamanhoCandles) e ((fechamento - abertura) >= (range) ) então
      begin
        paintbar(ClGreen);
        bSinalVenda := true;
      end;
    

    //PADRÃO IDENTIFICAÇÃO COMPRA
      if (range > TamanhoCandles) e ((abertura - fechamento) >= (range) * PorcCandles) então
      begin
        paintbar(Clred);
        bSinalCompra := true;
      end;;
  end;

 
    //TRATAMENTO DOS SINAIS DE IDENTIFICAÇÃO COMPRA / VENDA

    if bSinalVenda then
    begin
      SellShortAtMarket();
      fStop := fechamento + Stop;
      fAlvo := fechamento - Alvo;
    end;

    if bSinalCompra then
    begin
      BuyAtMarket();
      fStop := fechamento - Stop;
      fAlvo := fechamento + Alvo;
    end;


    // GESTÃO DAS POSIÇÕES
  
    if IsSold then
    begin
      BuyToCoverStop(fStop);
      BuyToCoverLimit(fAlvo);
    end;

    if IsBought then
    begin
     SellToCoverStop(fStop);
     SellToCoverLimit(fAlvo);
    end;

 end;

 


   
ReplyCitar