A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias
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}
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:
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!
Muito obrigado @Johnathas pelos esclarecimentos!!
vc é fera ! seu canal no youtube está de parabéns.