Neo traderBot

Neo traderBot

Você sabia?

A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias

leaf leftleaf right
Notifications
Clear all

[Solucionado] Mensagem de erro Compilação

3 Posts
2 Usuários
0 Reactions
237 Visualizações
(@estevao-cruz-da-mott)
Membro ativo
Registrou: 2 anos atrás
Posts: 8
Iniciador do tópico  

Bom dia Pessoal,

Eu estou criando meu segundo Robô com base em uma estratégia altamente acertiva.

Ao verificar os erros de sintaxe na aba compliação o editor de estratégia está acusando um erro: "Parser[31,1]: O código deve começar com begin
Erro de Sintaxe"

 

Acontece que a linha "31" é o campo "Const" (Constante)

Antes disso a aba compilação estava acusando erro: Parser[28,1]: Depois do valor tem que haver um " ; "

e essa mensagem só foi desaparecer depois que eu coloquei a função "Input" antes da função "Const".

 

Segue abaixo meu código fonte. Se alguém conseguir me ajudar ficarei muito grato!:

 

// -----------------------------------------------------------------------
// ---------------------- DADOS DA ESTRATÉGIA ----------------------------
// -----------------------------------------------------------------------
//
// NOME DA ESTRATÉGIA: _RSAvançado_Condicional

//   DESENVOLVIDA POR: Estevão Cruz da Motta
//    DATA DE CRIAÇÃO: 12/2022
//             VERSÃO: 1.1
//      ATUALIZADA EM:
// TIPO DE ESTRATÉGIA: ( ) Indicador  ( ) Coloração (X) Execução
//                     ( ) Screening  ( ) Texto     ( ) Alarme
//
// DESCRIÇÃO DA ESTRATÉGIA:
//    
//
//
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
//
// ######################### FIM DO CABEÇALHO ############################

Input
{MEDIA MÓVEL EXPONENCIAL}

pMediaCurta(9);
pMediaMedia(20);
pMediaLonga(50);

Const
cPlotarIndicadores = true


Var
{ESTRUTURA PADRÃO DO MODELO}
bStarted : boolean
bSinal_compra, bSinal_venda, bTrapeZonebuy1 : boolean;


{Variáveis Personalizadas}
fMediaCurta, fMediaMedia, fMediaLonga: Float;
pMediaCurta, pMediaMedia, pMediaLonga: INTEGER;
pTamanhoPosicao : integer;
bComprado, bVendido : boolean;
bTrapeZoneBuy1, bTrapeZoneBuy2, bTrapeZoneBuy3, bTrapeZoneSell, bTrapeZoneSell2, bTrapeZoneSell3 : boolean;

{INICIALIZAÇÃO DA ESTRATÉGIA}
begin
 bStarted := True;

end;

fMediaCurta := MediaExp(pMediaCurta, close);
fMediaMedia := MediaExp(pMediaMedia, close);
fMediaLonga := MediaExp(pMediaLonga, close);
pTamanhoPosicao := 5;

Se cPlotarIndicadores entao
begin
SetPlotColor(1,clYellow);
SetPlotWidth(1,2);
SetPlotStyle(1,psDash);

SetPlotColor(2,clBlue);
SetPlotWidth(2,2);

SetPlotColor(3,clRed);
SetPlotWidth(3,2);

Plot (fMediaCurta);
Plot2 (fMediaMedia);
Plot3 (fMediaLonga);
 end;

{ATRIBUIÇÕES DE VARIÁVEIS POR PROCESSAMENTO}
{estrutura padrão do modelo}
bComprado := isBought();
bVendido := isSold();


{ATRIBUIÇÕES DAS VARIÁVEIS}
bSinal_compra := (Fechamento > Fechamento[1]) e (Minima < Minima[1]) e (Maxima < Maxima[1]);
bSinal_venda := (Fechamento < Fechamento[1]) e (Minima > Minima[1]) e (Maxima > Maxima[1]);
bTrapeZoneBuy1 := (fechamento[0] > fMediaCurta) e (fechamento[0] < fMediaMedia);
bTrapeZoneBuy2 := (fechamento[0] > fMediaMedia) e (fechamento[0] < fMediaLonga);
bTrapeZoneBuy3 := (fechamento[0] > fMediaLonga) e (fechamento[0] < fMediaCurta);
bTrapeZoneSell := (fechamento[0] < fMediaCurta) e (fechamento[0] > fMediaMedia);
bTrapeZoneSell2 := (fechamento[0] < fMediaMedia) e (fechamento[0] > fMediaLonga);
bTrapeZoneSell3 := (fechamento[0] < fMediaLonga) e (fechamento[0] > fMediaCurta);

{INICIALIZAÇÃO DA ESTRATÉGIA}

 Se (bSinal_compra) então
        BuyAtMarket(pTamanhoPosicao)
      Senão Se (bSinal_venda) então
        SellShortAtMarket(pTamanhoPosicao); 


  Se (bSinal_Compra) 
  e (bTrapeZoneBuy1) entao
  bComprado = Falso;
   
  Se (bSinal_Compra) 
  e (bTrapeZoneBuy2) entao
  bComprado = Falso;

  Se (bSinal_Compra) 
  e (bTrapeZoneBuy3) entao
  bComprado = Falso;
  
   Se (bSinal_Venda)
   e (bTrapeZonaSell) entao
   bVenda = Falso

   Se (bSinal_Venda)
   e (bTrapeZoneSell2) entao
   bVenda = Falso

   Se (bSinal_Venda)
   e (bTrapeZonesll3) entao
   bVenda = Falso
   
end;

{ENVIA ORDENS DE COMPRA OU VENDA}

   
Citar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Oi @estevao-cruz-da-mott!

Cara, as linguagens de programação são bastante rigorosas com sintaxe. Sempre que tiver dúvidas, sugiro olhar o manual da NTSL neste link.

Fiz alguns ajustes de sintaxe no seu código:

  1. Área de const vem antes da área de input
  2. Coloquei ";" na sua constante
  3. Faltou ";" na declaração as variaveis de média do tipo float
  4. Exclui a linha que redeclarava as variáveis de média como tipo inteiro;
  5. Exclui a redeclaração da variável bTrapeZonebuy1

Com isso seu código compilou...agora você tem que ver se ele faz o que você programou! kkkkk

Faça os ajustes acima e sempre verifique os erros de compilação pelo botão "Verificar" (figura anexa). Em pouco tempo já não cometerá os mesmos erros (é questão de prática).

 

Abs!

 


   
ReplyCitar
(@estevao-cruz-da-mott)
Membro ativo
Registrou: 2 anos atrás
Posts: 8
Iniciador do tópico  

Muito obrigado @Johnathas pelos esclarecimentos!!

 

vc é fera ! seu canal no youtube está de parabéns.

 

 

 


   
ReplyCitar