
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Acho, vou confirmar, que vi o mesmo problema no Testador de Estratégia, não sei exatamente como isso poderia acontecer, vou tentar novamente com mais alguns relatórios de erros adicionados para ter certeza.
OK, um mistério resolvido... Não percebi que o Spread usado no Testador de Estratégia é tirado dos dados do Histórico, em particular os dados M1. A razão pela qual tenho paradas inválidas em minha execução do Testador de Estratégia é porque o spread é maior que meu SL. Vou adicionar um teste para isso.
Konstantin83:
2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]
Não entendo parada inválida. a sl está abaixo da sl de compra: 1,28375 <1,30505 ?
CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);
Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits);
- projetomal compreendido .
Escolha entre os valores do dobro máximo e use aquele ao invés do índice inteiro
agradeceKonstantin83 :
mas eu não entendo o que você diz.
topo é o mais alto das últimas 5 velas e topo é o dobro e não o índice inteiro
dan5:
Não entendo parada inválida. a sl está abaixo da sl de compra: 1,28375 <1,30505 ?
Não leve "Paradas inválidas" muito à letra. Não se trata apenas de Parar Perda, também pode ser o preço de entrada e/ou o TP. Quando você obtiver um erro, imprima as seguintes informações, elas o ajudarão a descobrir o que deu errado:
dan5:
2013.03.10 11:19:18 2012.01.04 15:00:00 paradas de compra falhadas 1,00 EURUSD a 1,30505 sl: 1,28375 tp: 1,30375 [Paradas inválidas]
Não entendo parada inválida. a sl está abaixo da sl de compra : 1,28375 <1,30505 ?
Você notou que a entrada 1.30505 é > a TP 1.30375 ?
obrigado por sua ajuda eu modifico meu sl e tp está tudo bem agora
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Dígitos); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Dígitos);// Take Profit
em vez de:
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
obrigado por sua ajuda eu modifico meu sl e tp está tudo bem agora
mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Dígitos); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Dígitos);// Take Profit
em vez de:
mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit
Isso é uma boa notícia, espero que você não se importe que eu subverta seu fio condutor, mas acho que nós dois conseguimos algo útil no final :-)
Vocês encontraram outra solução que eu proponho com a OnTradeTransaction para proceder com sl & tp em um caso de Execução de Mercado (corretor ECN)?
O código que sugeri neste post https://www.mql5.com/en/forum/11051#comment_446272 funciona bem até onde posso dizer, assumi que não estava funcionando no Testador de Estratégia devido à minha suposição de que o spread a ser fixado (como no MT4) estava incorreto. Meu código agora funciona no Testador de Estratégia e na Demo para símbolos com tipo de execução Instantânea ou de Troca, meu código determina o tipo e envia o(s) pedido(s) apropriado(s). O ideal seria que meu código tratasse automaticamente qualquer tipo de execução.