Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)
Se possível, uma ajuda dos amigos programados de NTSL!
Escrevi um código, porém a estratégia realiza as entradas apenas no backtest. Porém quando roda a estratégia na "automação de estratégia" não executa as entradas!
Deixo cópia da tela com os sinais do backtest, e o código fonte da entrada nas operações.
Alguma dica para que as operações sejam executadas na "automação de estratégias"?
Aproveito para agradecer este site, muito bom!
Se (SinalC) e not(hasposition) entao begin BuyAtMarket(LoteOper); SellToCoverLimit (BuyPrice + WDOAlvoFinal,LoteOper); SellToCoverStop ((BuyPrice - WDO_SL),(BuyPrice - WDO_SL),LoteOper); end; Se (SinalV) e not(hasposition) entao begin SellShortAtMarket(LoteOper); BuyToCoverLimit(SellPrice - WDOAlvoFinal,LoteOper); buyToCoverStop((sellPrice + WDO_SL),(sellprice + WDO_SL),LoteOper); end;
Não imagino qual seja o problema. Mas aqui vai uma sugestão adquirida na prática: coloque suas saídas em outra estrutura:
Se hasPosition entao
inicio
Se IsBought entao
inicio
SellToCoverLimit(BuyPrice + WDOAlvoFinal, LoteOper);
SellToCoverStop((BuyPRice - WDO_SL), (BuyPRice - WDO_SL), LoteOper);
end;
end;
Outra coisa que eu aconselharia também é colocar uma Regra de coloração dentro dessa estrutura de compra. Logo acima de BuyAtMarket coloca um PaintBar(clLime) e observa se os candles são pintados e a ordem não é executada, ou se não acontece nenhum nem outro para tentar uma nova abordagem...