<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Neo TraderBot Forum - Tópicos recentes				            </title>
            <link>https://neotraderbot.com/community/</link>
            <description>Neo TraderBot Discussion Board</description>
            <language>pt-PT</language>
            <lastBuildDate>Fri, 03 Apr 2026 21:16:17 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Bug do Profit</title>
                        <link>https://neotraderbot.com/community/programacao-ntsl/bug-do-profit/</link>
                        <pubDate>Mon, 23 Feb 2026 20:24:45 +0000</pubDate>
                        <description><![CDATA[Em meu código NTLS o Profit está fazendo entradas fantasmas, &quot;sem autorização&quot;, e reversões não comandadas. Depois de usar até IA, venho pedir ajuda se alguém já enfrentou o mesmo problema.]]></description>
                        <content:encoded><![CDATA[<p>Em meu código NTLS o Profit está fazendo entradas fantasmas, "sem autorização", e reversões não comandadas. Depois de usar até IA, venho pedir ajuda se alguém já enfrentou o mesmo problema.</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Arlindo</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ntsl/bug-do-profit/</guid>
                    </item>
				                    <item>
                        <title>IDENTIFICAR SAIDAS PARCIAIS</title>
                        <link>https://neotraderbot.com/community/programacao-ntsl/identificar-saidas-parciais/</link>
                        <pubDate>Sun, 30 Nov 2025 00:57:22 +0000</pubDate>
                        <description><![CDATA[Fala pessoal, novo novo por aqui e tbm novo em programação NTSL. Estou com dificuldade de atualizar o valor de uam variável para True quando uma parcial é feita.atualmente estou fazendo dest...]]></description>
                        <content:encoded><![CDATA[<p>Fala pessoal, novo novo por aqui e tbm novo em programação NTSL. Estou com dificuldade de atualizar o valor de uam variável para True quando uma parcial é feita.<br /><br />atualmente estou fazendo desta forma abaixo:<br /><br />// -----------------------------------------------------------<br />// 2) VERIFICA SE ATINGIU O PRIMEIRO ALVO DA PARCIAL E ATUALIZA O CONTROLE DE PARCIAIS<br />// -----------------------------------------------------------<br /><br />If (Close &gt;= BuyPrice + ParcialPontos) Then<br />Begin<br /><br />parcialCompraFeita := true;<br /><br />End;</p>
<p> </p>
<p>na iamgem que anexei, vejam que a parcial foi feita, mas o StopLoss não foi para o ponto zero, e o motivo para isso é pq a variavel: parcialCompraFeita  não atualizou para true.</p>
<p> </p>
<p>Alguem poderia me dar uma luzzzz please..</p>
<p> </p>
<p> </p>
<p> </p>
<p>Mas não sei o que está havendo, que não não entra nessa condição de jeito nenhum. A ideia é que após a parcial feita, ele entre ai e atulize a variavel para que eu possa colocar o StopLoso no ponto zero.<br /><br />SEgue o codigo completo da parcial.<br /><br /><br /><br /></p>
<p>If (IsBought) Then<br />Begin<br />// -----------------------------------------------------------<br />// 1) PARCIAL DE 50% NA COMPRA<br />//<br />// Condições:<br />// - Ainda não fez parcial (parcialCompraFeita = false)<br />// - A máxima do candle atingiu (BuyPrice + ParcialPontos)<br />//<br />// A quantidade de parcial é calculada como 50% do total de<br />// contratos configurados em Contratos.<br />// -----------------------------------------------------------<br /><br /><br />// FECHA 50% DA POSIÇÃO (Contratos / 2)<br />// IMPORTANTE: Caso numero de contratos impar, o maior lote vai ficar para a primeira parcial.<br /><br />If (not parcialCompraFeita) AND (BuyPositionQty() = Contratos) Then<br />Begin<br />// QUANTIDADE DA PARCIAL NA COMPRA:<br />// - Se CONTRATOS PAR: 50% exato<br />// - Se CONTRATOS ÍMPAR: maior parte na parcial<br /><br />If Mod(Contratos,2) = 0 then<br />SellToCoverLimit(BuyPrice() + ParcialPontos, Contratos / 2)<br />else<br />SellToCoverLimit(BuyPrice() + ParcialPontos, (Contratos + 1) / 2);<br />End;<br /><br /><br /><br />// -----------------------------------------------------------<br />// 2) VERIFICA SE ATINGIU O PRIMEIRO ALVO DA PARCIAL E ATUALIZA O CONTROLE DE PARCIAIS<br />// -----------------------------------------------------------<br /><br />If (Close &gt;= BuyPrice + ParcialPontos) Then<br />Begin<br /><br />parcialCompraFeita := true;<br /><br />End;<br /><br />// -----------------------------------------------------------<br />// 2) APÓS A PARCIAL, STOP EM BE E ALVO FINAL PARA A 2ª METADE<br />// -----------------------------------------------------------<br />If (parcialCompraFeita) Then<br />Begin<br />StopLoss := BuyPrice + MargelParcial; // Breakeven (ponto zero + margem)<br />StopGain := BuyPrice + AlvoFinalPontos; // Alvo final da 2ª metade<br /><br />SellToCoverLimit(StopGain);<br />SellToCoverStop(StopLoss, StopLoss - (10 * MinPriceIncrement));<br />End<br />else<br />Begin<br />// -------------------------------------------------------<br />// 3) ANTES DA PARCIAL:<br />// mantém stop técnico por ATR com base no preço de entrada<br />// -------------------------------------------------------<br />StopGain := BuyPrice + AlvoFinalPontos;<br />// StopLoss := BuyPrice - (valorATR * ATRMultiplicador);<br /><br />StopLoss := Low - 290; //StopATr<br />//TESTE DE OUTROS TIPOS DE STOP LOSS<br />//StopLoss := Low - margemStopLoss; //vega antigo<br /><br /><br />SellToCoverLimit(StopGain);<br />SellToCoverStop(StopLoss, StopLoss - (10 * MinPriceIncrement));<br />End;<br /><br />// ====== CONTROLE DE TEMPO NO TRADE (se habilitado) ======<br />If (UsaTempoMaximoTrade) and<br />(Time &gt;= HoraSaidaMaxima) Then<br />ClosePosition();<br /><br /><br />// Segurança extra: se o fechamento ultrapassar alvo ou stop, encerra<br />If (Close &gt; StopGain) or (Close &lt; StopLoss) Then<br />ClosePosition();<br />End;</p>
<p> </p>
<div id="wpfa-17531" class="wpforo-attached-file"><a class="wpforo-default-attachment" href="//neotraderbot.com/wp-content/uploads/wpforo/default_attachments/1764464242-Evidencia-1.jpg" target="_blank" title="Evidencia-1.jpg"><i class="fas fa-paperclip"></i>&nbsp;Evidencia-1.jpg</a></div>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Marcosdepaula</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ntsl/identificar-saidas-parciais/</guid>
                    </item>
				                    <item>
                        <title>Pegar Preço Teórico (antes da abertura oficial do mercado)</title>
                        <link>https://neotraderbot.com/community/programacao-ninjascript/pegar-preco-teorico-antes-da-abertura-oficial-do-mercado/</link>
                        <pubDate>Fri, 22 Aug 2025 11:39:06 +0000</pubDate>
                        <description><![CDATA[Bom dia Fórum ...
 
Hoje eu executo uma estratégia de forma manual que estou estudando um forma de &quot;robotizar&quot; ela.
 
Durante o leilão de abertura, eu preciso ficar monitorando o preço o...]]></description>
                        <content:encoded><![CDATA[<p>Bom dia Fórum ...</p>
<p> </p>
<p>Hoje eu executo uma estratégia de forma manual que estou estudando um forma de "robotizar" ela.</p>
<p> </p>
<p>Durante o leilão de abertura, eu preciso ficar monitorando o preço onde o ativo, no caso o dolar, vai abrir. Dessa forma eu sei qual estratégia eu deverei usar no momento em que ele abrir.</p>
<p> </p>
<p>Gostaria de saber se existe alguma forma de pegar esse "preço teórico" (antes da abertura oficial do mercado) através de algumação função da NTSL ?</p>
<p> </p>
<p>Utilizando o OPEN eu pego somente no momento em que o mercado abre o primeiro candle e eu gostaria de pegar um pouco antes da abertura para já mostrar qual a estratégia deverá ser utilizada.</p>
<p> </p>
<p>Obrigado</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Ronaldo Araujo</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ninjascript/pegar-preco-teorico-antes-da-abertura-oficial-do-mercado/</guid>
                    </item>
				                    <item>
                        <title>Ajuste e adição de parametros</title>
                        <link>https://neotraderbot.com/community/programacao-ntsl/ajuste-e-adicao-de-parametros/</link>
                        <pubDate>Thu, 21 Aug 2025 23:44:40 +0000</pubDate>
                        <description><![CDATA[//---ROBÔ DESENVOLVIDO POR @SPERBTRADER---

INPUT
offSet(30);



VAR
sinalC, sinalV, StopC, StopV : booleano;
cor : inteiro;
//variáveis
mm, valorIFR, valorStopC, valorStopV : rea...]]></description>
                        <content:encoded><![CDATA[<pre contenteditable="false">//---ROBÔ DESENVOLVIDO POR @SPERBTRADER---

INPUT
offSet(30);



VAR
sinalC, sinalV, StopC, StopV : booleano;
cor : inteiro;
//variáveis
mm, valorIFR, valorStopC, valorStopV : real; //preencher aqui com as variáveis necessárias



BEGIN

//PASSO 1 = CARREGAR INDICADOR
mm := mediaExp(34, (Close)); //preencher aqui os indicadores necessários
valorIFR := IFR(13);
//PASSO 2 = SINAIS DE ENTRADA
sinalC := (Abertura &gt;= mm) e (Fechamento &gt;= mm) e (valorIFR &gt;= 50); //preencher aqui com a configuração do sinal de entrada de compra
sinalV := (Abertura &lt;= mm) e (Fechamento &lt;= mm) e (valorIFR &lt;= 50); //preencher aqui com a configuração do sinal de entrada de venda

//PASSO 3 = SINAIS DE SAÍDA
stopC := (Fechamento &lt;= MediaExp(7,Close));  //preencher aqui com a configuração do sinal de saída de compra
stopV := (Fechamento &gt;= MediaExp(7,Close)); //preencher aqui com a configuração do sinal de saída de venda



//-----REGRAS DE EXECUÇÃO - NÃO EDITAR------

//REGRAS DE EXECUÇÃO DE ENTRADA
se (sinalC ou sinalV) e (not IsBought) e (not IsSold) então
   BuyStop((minima + MinPriceIncrement), (minima + MinPriceIncrement) + (offSet*MinPriceIncrement));
   SellShortStop((minima - MinPriceIncrement), (minima - MinPriceIncrement) - (offSet*MinPriceIncrement));

//REGRAS DE EXECUÇÃO DE SAÍDA
valorStopC := minima;
valorStopV := maxima;

//REGRAS DE COLORAÇÃO
se (sinalC) então cor := clVerde
senão se (sinalV) então cor := clVermelho
senão cor := clBranco;
//continuidade da coloração, apague se quiser apenas o gatilho colorido
se (cor  = clVerde) e (not StopC) então cor := clVerde;
se (cor  = clRed) e (not StopV) então cor := clVermelho;

PaintBar(cor);



END;</pre>
<p>Gostaria de ajuda pois preciso adiconar alguns parametros e outros não estão de acordo como eu preciso...<br />Eu quero que, quando o gatilho de compra ou de venda surgir, posicione ordem de compra 1 tick acima da maxima do candle de gatilho e posicione uma ordem de venda no mesmo padrão. O stop é sempre na outra ponta 1 tick fora tambem.<br />Gostaria de inserir uma parcial em 75 pontos, proteção no preço de entrada e candle a candle até chegar no alvo final de 500 pontos. depois disso busca novas entradas.<br /><br />o parametro de entrada correto deveria ser como da minha regra de coloração<br />Se (Abertura &gt;= MediaExp(34,Close)) e (Fechamento &gt;= MediaExp(34,Close)) e (Fechamento &gt;= MediaExp(7,Close)) e (IFR(13) &gt;= 50) então<br />PaintBar(clVerde)<br />Senão Se (Abertura &lt;= MediaExp(34,Close)) e (Fechamento &lt;= MediaExp(34,Close)) e (Fechamento &lt;= MediaExp(7,Close)) e (IFR(13) &lt;= 50) então<br />PaintBar(clVermelho);<br /><br />Não entendo absolutamente nada, tudo que aprendi e criei aprendi ontem de madrugada em video aulas do @danilo.profit<br />Agradeço qualquer tipo de ajuda desde ja.</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>sperbtrader</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ntsl/ajuste-e-adicao-de-parametros/</guid>
                    </item>
				                    <item>
                        <title>Plotagem diária</title>
                        <link>https://neotraderbot.com/community/programacao-ntsl/plotagem-diaria/</link>
                        <pubDate>Thu, 24 Jul 2025 12:51:00 +0000</pubDate>
                        <description><![CDATA[Estou desenvolvendo um indicador mas gostaria que o mesmo foisse plotado apenas no dia atual e não nos dias anteriores.
Como proceder para esta finalidade ?]]></description>
                        <content:encoded><![CDATA[<p>Estou desenvolvendo um indicador mas gostaria que o mesmo foisse plotado apenas no dia atual e não nos dias anteriores.</p>
<p>Como proceder para esta finalidade ?</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Victor Feitoza</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ntsl/plotagem-diaria/</guid>
                    </item>
				                    <item>
                        <title>Ordens stop sendo canceladas em novo candle</title>
                        <link>https://neotraderbot.com/community/programacao-ninjascript/ordens-stop-sendo-canceladas-em-novo-candle/</link>
                        <pubDate>Mon, 26 May 2025 11:38:53 +0000</pubDate>
                        <description><![CDATA[Pessoal, desculpe a pergunta básica porém nunca havia passado por isso antes, tô programando uma estratégia onde coloco uma ordem stop de compra/venda na máxima e mínima de um determinado ca...]]></description>
                        <content:encoded><![CDATA[<p>Pessoal, desculpe a pergunta básica porém nunca havia passado por isso antes, tô programando uma estratégia onde coloco uma ordem stop de compra/venda na máxima e mínima de um determinado candle e o que pegar primeiro cancelo a outra ordem, porém o que está acontecendo é que se nenhuma das ordens é acionada, quando inicia o próximo candle o Profit cancela as duas ordens ! Alguém já viu isso ? Terei que criar as ordens a cada novo candle até pegar ? Testei no módulo de automação usando replay de mercado.</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>danielmoura</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ninjascript/ordens-stop-sendo-canceladas-em-novo-candle/</guid>
                    </item>
				                    <item>
                        <title>Erro: Compilando ... Parser: O código deve começar com begin Erro de Sintaxe</title>
                        <link>https://neotraderbot.com/community/programacao-ninjascript/erro-compilando-parser51-o-codigo-deve-comecar-com-begin-erro-de-sintaxe/</link>
                        <pubDate>Sun, 25 May 2025 11:33:01 +0000</pubDate>
                        <description><![CDATA[// Robô de tendência com stop móvel, alvo e auto reverse// Evita operar em mercado lateral usando ADX// Definição de parâmetros de entradaInputs:PeriodoMME(20),PeriodoADX(14),LimiteADX(20),A...]]></description>
                        <content:encoded><![CDATA[<p>// Robô de tendência com stop móvel, alvo e auto reverse<br />// Evita operar em mercado lateral usando ADX<br /><br />// Definição de parâmetros de entrada<br />Inputs:<br />PeriodoMME(20),<br />PeriodoADX(14),<br />LimiteADX(20),<br />AlvoTicks(38),<br />StopTicks(20);<br /><br />// Declaração de variáveis<br />Vars:<br />MediaMME(0.0),<br />ValorADX(0.0),<br />TendenciaAlta(false),<br />TendenciaBaixa(false);<br /><br />begin<br />// Cálculo da MME e do ADX<br />MediaMME = XAverage(Close, PeriodoMME);<br />ValorADX = ADX(PeriodoADX);<br /><br />// Verifica se mercado está com tendência<br />if ValorADX &gt; LimiteADX then<br />begin<br />TendenciaAlta = Close &gt; MediaMME;<br />TendenciaBaixa = Close &lt; MediaMME;<br /><br />// Se não estiver posicionado<br />if MarketPosition = 0 then<br />begin<br />if TendenciaAlta then<br />Buy ("Compra") next bar at market<br />else if TendenciaBaixa then<br />SellShort ("Venda") next bar at market;<br />end;<br />end;<br /><br />// Se estiver comprado, aplica alvo, stop móvel e auto reverse<br />if MarketPosition = 1 then<br />begin<br />Sell ("StopMovel") next bar at EntryPrice - StopTicks * MinMove / PriceScale stop;<br />Sell ("Alvo") next bar at EntryPrice + AlvoTicks * MinMove / PriceScale limit;<br /><br />// Auto reverse<br />if Close &lt;= EntryPrice - StopTicks * MinMove / PriceScale then<br />SellShort ("AutoReverseV") next bar at market<br />else if Close &gt;= EntryPrice + AlvoTicks * MinMove / PriceScale then<br />SellShort ("AutoReverseV") next bar at market;<br />end;<br /><br />// Se estiver vendido, aplica alvo, stop móvel e auto reverse<br />if MarketPosition = -1 then<br />begin<br />BuyToCover ("StopMovel") next bar at EntryPrice + StopTicks * MinMove / PriceScale stop;<br />BuyToCover ("Alvo") next bar at EntryPrice - AlvoTicks * MinMove / PriceScale limit;<br /><br />// Auto reverse<br />if Close &gt;= EntryPrice + StopTicks * MinMove / PriceScale then<br />Buy ("AutoReverseC") next bar at market<br />else if Close &lt;= EntryPrice - AlvoTicks * MinMove / PriceScale then<br />Buy ("AutoReverseC") next bar at market;<br />end;<br />end;</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Florisvaldo Rios</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ninjascript/erro-compilando-parser51-o-codigo-deve-comecar-com-begin-erro-de-sintaxe/</guid>
                    </item>
				                    <item>
                        <title>Plotar Media movel do 15m no 5m</title>
                        <link>https://neotraderbot.com/community/programacao-ninjascript/plotar-media-movel-do-15m-no-5m/</link>
                        <pubDate>Wed, 23 Apr 2025 17:00:34 +0000</pubDate>
                        <description><![CDATA[Tarde, moçada!
Estou tentando criar um indicador de tendência e preciso plotar a média móvel exponencial de 8 períodos do 15 minutos no gráfico de 5 minutos.
Óbvio que o próprio Profit já ...]]></description>
                        <content:encoded><![CDATA[<p>Tarde, moçada!</p>
<p>Estou tentando criar um indicador de tendência e preciso plotar a média móvel exponencial de 8 períodos do 15 minutos no gráfico de 5 minutos.</p>
<p>Óbvio que o próprio Profit já tem a ferramenta para fazer isso, mas como preciso utilizar um conjunto de médias móveis para serem utilizadas em vários tempos graficos (sem alterar as medias base do 15m), então preciso plotar com código.</p>
<p> </p>
<p>Alguma ideia de como fazer isso?</p>
<p> </p>
<p>Abs</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>patrickjota</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ninjascript/plotar-media-movel-do-15m-no-5m/</guid>
                    </item>
				                    <item>
                        <title>Erro de Compilação - &quot;Código deve começar com begin&quot;</title>
                        <link>https://neotraderbot.com/community/programacao-ninjascript/erro-de-compilacao-codigo-deve-comecar-com-begin/</link>
                        <pubDate>Tue, 15 Apr 2025 11:15:46 +0000</pubDate>
                        <description><![CDATA[Tinha um indicador (coloração) e decidi transformar em automação, com auxilio dos seus posts.
Mas depois de atualizar, colocar a programação para ordens, e até funcionar, começou a dar erro...]]></description>
                        <content:encoded><![CDATA[<p>Tinha um indicador (coloração) e decidi transformar em automação, com auxilio dos seus posts.</p>
<p>Mas depois de atualizar, colocar a programação para ordens, e até funcionar, começou a dar erro de compilação de sintaxe.</p>
<p>Parser: O código deve começar com begin<br />Erro de Sintaxe</p>
<p>Segue o código: </p>
<p><span style="font-size: 8pt">input</span><br /><span style="font-size: 8pt">TakeProfitPontos(400); // Valor padrão de 400 pontos para o Take Profit</span><br /><span style="font-size: 8pt">  StopLossPontos(200); // Valor padrão de 200 pontos para o Stop Loss</span><br /><span style="font-size: 8pt">  cStopOffsetEmpontos(10);</span><br /><span style="font-size: 8pt">bGestaoDeRiscoPelaEstrategia(true);</span><br /><span style="font-size: 8pt">iHorarioInicioAberturaPosicao(0905);</span><br /><span style="font-size: 8pt">iHorarioFimAberturaPosicao(1630);</span><br /><span style="font-size: 8pt">iHorarioEncerramentoDaytrade(1645);</span><br /><br /><span style="font-size: 8pt">VAR</span><br /><span style="font-size: 8pt">  xEma52,</span><br /><span style="font-size: 8pt">  xVWAP,</span><br /><span style="font-size: 8pt">  xOBV,</span><br /><span style="font-size: 8pt">  xEma52OBV,</span><br /><span style="font-size: 8pt">  xEma200OBV : float;</span><br /><span style="font-size: 8pt">  xSelect     : integer;</span><br /><span style="font-size: 8pt">  nStopPoints : float;</span><br /><span style="font-size: 8pt">  nTargetPoints : float;</span><br /><span style="font-size: 8pt">  nContracts : integer;</span><br /><span style="font-size: 8pt">  bPosicionado: boolean;</span><br /><span style="font-size: 8pt">  fPrecoStop, fPrecoAlvo, fPrecoStopOffset: float;</span><br /><span style="font-size: 8pt">  bConfigurouRisco: boolean;</span><br /><br /><span style="font-size: 8pt">BEGIN</span><br /><span style="font-size: 8pt">  nStopPoints := StopLossPontos;</span><br /><span style="font-size: 8pt">  nTargetPoints := TakeProfitPontos;</span><br /><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    // Cálculo do OBV</span><br /><span style="font-size: 8pt">    if Close &gt; Close then</span><br /><span style="font-size: 8pt">      xOBV := xOBV + QuantityVol(false)</span><br /><span style="font-size: 8pt">    else if Close &lt; Close then</span><br /><span style="font-size: 8pt">      xOBV := xOBV - QuantityVol(false)</span><br /><span style="font-size: 8pt">    else</span><br /><span style="font-size: 8pt">      xOBV := xOBV;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Cálculo dos indicadores</span><br /><span style="font-size: 8pt">  xEma52    := MediaExp(52, Close);</span><br /><span style="font-size: 8pt">  xVWAP     := VWAP(1);</span><br /><span style="font-size: 8pt">  xEma52OBV := MediaExp(52, xOBV);</span><br /><span style="font-size: 8pt">  xEma200OBV := MediaExp(200, xOBV);</span><br /><br /><span style="font-size: 8pt">  // Reset da variável de seleção</span><br /><span style="font-size: 8pt">  xSelect := 0;</span><br /><br /><span style="font-size: 8pt">  // Condição de Compra (Long)</span><br /><span style="font-size: 8pt">  if ((Close &lt; xEma52) or (Close &lt; xVWAP) or (xOBV &lt; xEma200OBV))</span><br /><span style="font-size: 8pt">     and (Close &gt; xEma52)</span><br /><span style="font-size: 8pt">     and (Close &gt; xVWAP)</span><br /><span style="font-size: 8pt">     and (Close - xEma52 &lt; 450)</span><br /><span style="font-size: 8pt">     and (xOBV &gt; xEma52OBV)</span><br /><span style="font-size: 8pt">     and (xOBV &gt; xEma200OBV) then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    xSelect := 1;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Condição de Venda (Short)</span><br /><span style="font-size: 8pt">  if ((Close &gt; xEma52) or (Close &gt; xVWAP) or (xOBV &gt; xEma200OBV))</span><br /><span style="font-size: 8pt">     and (Close &lt; xEma52)</span><br /><span style="font-size: 8pt">     and (xEma52 - Close &lt; 450)</span><br /><span style="font-size: 8pt">     and (Close &lt; xVWAP)</span><br /><span style="font-size: 8pt">     and (xOBV &lt; xEma52OBV)</span><br /><span style="font-size: 8pt">     and (xOBV &lt; xEma200OBV) then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    xSelect := -1;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">// Lógica de Execução de Ordens</span><br /><span style="font-size: 8pt"> begin</span><br /><span style="font-size: 8pt">  if xSelect = 1 then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">   BuyAtMarket;</span><br /><br /><span style="font-size: 8pt">   if bGestaoDeRiscoPelaEstrategia then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    //POSIÇÃO COMPRADA</span><br /><span style="font-size: 8pt">    //Código responsável pela configuração das ordens de stoploss e take profit NA ENTRADA</span><br /><span style="font-size: 8pt">    fPrecoStop := BuyPrice - StopLossPontos * MinPriceIncrement;</span><br /><span style="font-size: 8pt">    fPrecoAlvo := BuyPrice + TakeProfitPontos * MinPriceIncrement;</span><br /><span style="font-size: 8pt">    fPrecoStopOffset := fPrecoStop - cStopOffsetEmpontos * MinPriceIncrement;</span><br /><br /><span style="font-size: 8pt">    SetStopLoss(fPrecoStop, fPrecoStopOffset);</span><br /><span style="font-size: 8pt">    SetProfitTarget(fPrecoAlvo);</span><br /><span style="font-size: 8pt">  end;</span><br /><span style="font-size: 8pt">  end</span><br /><span style="font-size: 8pt">  else if xSelect = -1 then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">   SellShortAtMarket;</span><br /><span style="font-size: 8pt">   if bGestaoDeRiscoPelaEstrategia then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">   //POSIÇÃO VENDIDA</span><br /><span style="font-size: 8pt">    //Código responsável pela configuração das ordens de stoploss e take profit NA ENTRADA</span><br /><span style="font-size: 8pt">    fPrecoStop := SellPrice + StopLossPontos * MinPriceIncrement;</span><br /><span style="font-size: 8pt">    fPrecoAlvo := SellPrice - TakeProfitPontos * MinPriceIncrement;</span><br /><span style="font-size: 8pt">    fPrecoStopOffset := fPrecoStop + cStopOffsetEmpontos * MinPriceIncrement;</span><br /><br /><span style="font-size: 8pt">    SetStopLoss(fPrecoStop, fPrecoStopOffset);</span><br /><span style="font-size: 8pt">    SetProfitTarget(fPrecoAlvo);</span><br /><span style="font-size: 8pt">  end;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Encerramento Daytrade</span><br /><span style="font-size: 8pt">  if Time &gt;= iHorarioEncerramentoDaytrade and isPositionOpen then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    ClosePosition;</span><br /><span style="font-size: 8pt">  end;</span><br /><span style="font-size: 8pt">END;</span><br /><span style="font-size: 8pt">END;</span></p>
<p> </p>
<p>Como corrigir? Já procurei tudo. Em outro código semelhante, inclusive onde esse identifica erro de sintaxe, os erros são outros:</p>
<p>Parser: Tem que ser identificador na declaração de variável<br />Parser: O código deve começar com begin<br />Erro de Sintaxe</p>
<p>Segue o codigo (é uma variação para DOL).</p>
<p><span style="font-size: 8pt">INPUT</span><br /><span style="font-size: 8pt">StopLossPontos(7); // Valor padrão de 7 pontos para o Stop Loss</span><br /><span style="font-size: 8pt">TakeProfitPontos(21); // Valor padrão de 21 pontos para o Take Profit</span><br /><span style="font-size: 8pt">cStopOffsetEmpontos(2);</span><br /><span style="font-size: 8pt">bGestaoDeRiscoPelaEstrategia(true);</span><br /><span style="font-size: 8pt">iHorarioInicioAberturaPosicao(0905);</span><br /><span style="font-size: 8pt">iHorarioFimAberturaPosicao(1630);</span><br /><span style="font-size: 8pt">iHorarioEncerramentoDaytrade(1645);</span><br /><br /><br /><span style="font-size: 8pt">VAR</span><br /><span style="font-size: 8pt">  xEma52,</span><br /><span style="font-size: 8pt">  xVWAP,</span><br /><span style="font-size: 8pt">  xOBV,</span><br /><span style="font-size: 8pt">  xEma52OBV,</span><br /><span style="font-size: 8pt">  xEma200OBV : float;</span><br /><span style="font-size: 8pt">  xSelect     : integer;</span><br /><span style="font-size: 8pt">  nStopPoints : float;</span><br /><span style="font-size: 8pt">  nTargetPoints : float;</span><br /><span style="font-size: 8pt">  nContracts : integer;</span><br /><span style="font-size: 8pt">  bPosicionado: boolean;</span><br /><span style="font-size: 8pt">  fPrecoStop, fPrecoAlvo, fPrecoStopOffset: float;</span><br /><span style="font-size: 8pt">  bConfigurouRisco: boolean;</span><br /><br /><span style="font-size: 8pt">BEGIN</span><br /><span style="font-size: 8pt">  nStopPoints := StopLossPontos;</span><br /><span style="font-size: 8pt">  nTargetPoints := TakeProfitPontos;</span><br /><span style="font-size: 8pt">  nContracts := NumContratos;</span><br /><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    // Cálculo do OBV</span><br /><span style="font-size: 8pt">    if Close &gt; Close then</span><br /><span style="font-size: 8pt">      xOBV := xOBV + QuantityVol(false)</span><br /><span style="font-size: 8pt">    else if Close &lt; Close then</span><br /><span style="font-size: 8pt">      xOBV := xOBV - QuantityVol(false)</span><br /><span style="font-size: 8pt">    else</span><br /><span style="font-size: 8pt">      xOBV := xOBV;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Cálculo dos indicadores</span><br /><span style="font-size: 8pt">  xEma52   := MediaExp(52, Close);</span><br /><span style="font-size: 8pt">  xVWAP    := VWAP(1);</span><br /><span style="font-size: 8pt">  xEma52OBV := MediaExp(52, xOBV);</span><br /><span style="font-size: 8pt">  xEma200OBV := MediaExp(200, xOBV);</span><br /><br /><span style="font-size: 8pt">  // Reset da variável de seleção</span><br /><span style="font-size: 8pt">  xSelect := 0;</span><br /><br /><span style="font-size: 8pt">  // Condição de Compra (Long)</span><br /><span style="font-size: 8pt">  if ((Close &lt; xEma52) or (Close &lt; xVWAP) or (xOBV &lt; xEma200OBV))</span><br /><span style="font-size: 8pt">     and (Close &gt; xEma52)</span><br /><span style="font-size: 8pt">     and (Close &gt; xVWAP)</span><br /><span style="font-size: 8pt">     and (Close - xEma52 &lt; 450)</span><br /><span style="font-size: 8pt">     and (xOBV &gt; xEma52OBV)</span><br /><span style="font-size: 8pt">     and (xOBV &gt; xEma200OBV) then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    xSelect := 1;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Condição de Venda (Short)</span><br /><span style="font-size: 8pt">  if ((Close &gt; xEma52) or (Close &gt; xVWAP) or (xOBV &gt; xEma200OBV))</span><br /><span style="font-size: 8pt">     and (Close &lt; xEma52)</span><br /><span style="font-size: 8pt">     and (xEma52 - Close &lt; 450)</span><br /><span style="font-size: 8pt">     and (Close &lt; xVWAP)</span><br /><span style="font-size: 8pt">     and (xOBV &lt; xEma52OBV)</span><br /><span style="font-size: 8pt">     and (xOBV &lt; xEma200OBV) then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    xSelect := -1;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Lógica de Execução de Ordens</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    if xSelect = 1 then</span><br /><span style="font-size: 8pt">    begin</span><br /><span style="font-size: 8pt">      BuyAtMarket(nContracts);</span><br /><span style="font-size: 8pt">      PrecoCompra := LastTrade; // Armazena o preço de execução da compra</span><br /><span style="font-size: 8pt">    end</span><br /><span style="font-size: 8pt">    else if xSelect = -1 then</span><br /><span style="font-size: 8pt">    begin</span><br /><span style="font-size: 8pt">      SellShortAtMarket(nContracts);</span><br /><span style="font-size: 8pt">      PrecoVenda := LastTrade; // Armazena o preço de execução da venda</span><br /><span style="font-size: 8pt">    end;</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  // Lógica para envio de Stop Loss e Take Profit APÓS a ordem principal ser executada</span><br /><span style="font-size: 8pt">  if PrecoCompra &gt; 0 then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    SetStopLoss(nStopPoints);</span><br /><span style="font-size: 8pt">    SetProfitTarget(nTargetPoints);</span><br /><span style="font-size: 8pt">    PrecoCompra := 0; // Reseta a variável para não enviar ordens novamente no mesmo candle</span><br /><span style="font-size: 8pt">  end;</span><br /><br /><span style="font-size: 8pt">  if PrecoVenda &gt; 0 then</span><br /><span style="font-size: 8pt">  begin</span><br /><span style="font-size: 8pt">    SetStopLoss(nStopPoints);</span><br /><span style="font-size: 8pt">    SetProfitTarget(nTargetPoints);</span><br /><span style="font-size: 8pt">    PrecoVenda := 0; // Reseta a variável para não enviar ordens novamente no mesmo candle</span><br /><span style="font-size: 8pt">  end;</span><br /><span style="font-size: 8pt">end</span></p>
<p>Agradeço se der uma luz. Já procurei em todo lugar aqui, IA, etc.</p>
<p> </p>
<p>Não consigo nem testar a teoria. </p>
<p> </p>
<p>Obrigado.</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>Pulgasp</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ninjascript/erro-de-compilacao-codigo-deve-comecar-com-begin/</guid>
                    </item>
				                    <item>
                        <title>Utilização de múltiplos ativos</title>
                        <link>https://neotraderbot.com/community/programacao-ntsl/utilizacao-de-multiplos-ativos/</link>
                        <pubDate>Fri, 14 Mar 2025 21:34:52 +0000</pubDate>
                        <description><![CDATA[Pessoal, como faço para utilizar os ativos VALE3, PETR4 e BBAS3 numa estratégia que estou desenvolvendo?
Já os defini com o ASSET(&quot;VALE3&quot;, feedBovespa) mas simplesmente não traz os valores ...]]></description>
                        <content:encoded><![CDATA[<p>Pessoal, como faço para utilizar os ativos VALE3, PETR4 e BBAS3 numa estratégia que estou desenvolvendo?</p>
<p>Já os defini com o ASSET("VALE3", feedBovespa) mas simplesmente não traz os valores de fechamento do ativo. Sempre devolve zero.</p>
<p>Alguém pode me ajudar??</p>]]></content:encoded>
						                            <category domain="https://neotraderbot.com/community/"></category>                        <dc:creator>alex_cwb</dc:creator>
                        <guid isPermaLink="true">https://neotraderbot.com/community/programacao-ntsl/utilizacao-de-multiplos-ativos/</guid>
                    </item>
							        </channel>
        </rss>
		