
Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)
Estou colocando uma Ordem de Compra Stop (BuyStop) na máxima do candle que deu meu sinal de compra. Mas ele só executa a ordem caso o candle que veio imediatamente após rompa essa maxima.
Alguem sabe se existe uma forma de ele carregar essa ordem para os proximos candles para que ele execute mesmo que o preço supere o valor em candles subsequentes, ou seja, mesmo que nao seja o candle que veio logo após meu candle sinal, que colocou a ordem?
obrigado desde já
Boa noite @brunochimenti!
Esse é o comportamento esperado pois é a forma como funciona o modelo de execução da Nelógica.
Se você deseja manter essa ordem apregoada pelas próximas x barras ou até que algo ocorra, você deve programar explicitamente isso. Uma sugestão seria fazer o seguinte:
const cManterOrdemApregoadaPorXBarras(10); var bSinalCompra: boolean; iBarraSinalCompra: integer; fPrecoCompra: float; begin //XYZ deve ser a Condição de compra if XYZ then begin fPrecoCompra := High; iBarraSinalCompra := CurrentBar; end; // Uma vez ocorrido o sinal de compra, retem a ordem stop pelas próximas 10 barras if bSinalCompra and not hasPosition and (CurrentBar < iBarraSinalCompra + cManterOrdemApregoadaPorXBarras) then BuyStop(fPrecoCompra, fPrecoCompra + 10*MinPriceIncrement); end;
Espero ter ajudado!
Abs!
Muito obrigado! ajudou sim