O Stop Level é 1. Eu dei um print com esse código do Stop Level, que retornou 1. Colocando o valor de Stop Buy acima ou abaixo deste número, continua dando erro.
Print("SYMBOL_TRADE_STOPS_LEVEL: "+SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL));
2019.05.12 17:22:26.211 2018.01.22 00:19:28 Stop Buy: 1.22563
2019.05.12 17:22:26.211 2018.01.22 00:19:28 Ask: 1.22493
2019.05.12 17:22:26.211 2018.01.22 00:19:28 SYMBOL_TRADE_STOPS_LEVEL: 1
2019.05.12 17:22:26.211 2018.01.22 00:19:28 failed buy stop 1.00 EURUSD at 1.22563 (286742942302302183524377543588834930091167957306001443 [Invalid price]
Ai aumentei o Stop Buy para 2.22563, tendo o Ask a 1.2493. Mas mesmo assim continua retornando "Invalid price".
2019.05.12 17:27:52.685 2018.01.22 00:19:28 Stop Buy: 2.22563
2019.05.12 17:27:52.685 2018.01.22 00:19:28 Ask: 1.22493
2019.05.12 17:27:52.685 2018.01.22 00:19:28 SYMBOL_TRADE_STOPS_LEVEL: 1
2019.05.12 17:27:52.685 2018.01.22 00:19:28 failed buy stop 1.00 EURUSD at 2.22563 (286742942302302183524377543588834930091167957306001443 [Invalid price]
Esse é o codigo:
//Abre ordem de compra na posicao do primeiro gain request.action = TRADE_ACTION_PENDING; request.type = ORDER_TYPE_BUY_STOP; //ordem de buy stop request.symbol = _Symbol; request.volume = 1; request.type_filling = ORDER_FILLING_RETURN; //compra e deixa o resto aberto Print("Stop Buy: " + NormalizeDouble((OPLAST + StopGain+1),_Digits)); Print("Ask: "+ Ask); Print("SYMBOL_TRADE_STOPS_LEVEL: "+SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)); request.price = NormalizeDouble((OPLAST + StopGain+1),_Digits); request.tp=0; request.sl=0; request.deviation = 10; // desvio permitido do preço request.expiration = TimeCurrent()+24*60*60; OrderSend(request,result); //envio da ordem
Mas mesmo colocando request.price = 3; como valor fixo, ele dá erro.
//Abre ordem de compra na posicao do primeiro gain request.action = TRADE_ACTION_PENDING; request.type = ORDER_TYPE_BUY_STOP; //ordem de buy stop request.symbol = _Symbol; request.volume = 1; request.type_filling = ORDER_FILLING_RETURN; //compra e deixa o resto aberto //Print("Stop Buy: " + NormalizeDouble((OPLAST + StopGain+1),_Digits)); Print("Stop Buy: fixo 3"); Print("Ask: "+ Ask); Print("SYMBOL_TRADE_STOPS_LEVEL: "+SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)); //request.price = NormalizeDouble((OPLAST + StopGain+1),_Digits); request.price = 3; request.tp=0; request.sl=0; request.deviation = 10; // desvio permitido do preço request.expiration = TimeCurrent()+24*60*60; OrderSend(request,result); //envio da ordem
Oi boa noite,
se não for segredo de estado, tecle Alt-S e anexe o fonte, vou depurar para você.!

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Estou tentando enviar uma orem de Buy Stop, mas só retorna erro de [Invalid Price]. O preço do mercado está a 1.24797 e o preço da ordem de Buy Stop que quero colocar é a 1.24867, ou seja, de fato acima do preço de mercado.
Poderiam me ajudar a resolver este erro?
Print("Stop Buy: " + (OPLAST + StopGain));
Print("Normalized Stop Buy: "+ NormalizeDouble((OPLAST + StopGain),_Digits));
Print("Ask: "+ Ask);
//Envia ordem de Buy Stop. O preço do mercado esta a 1.24797 e o preco do Buy Stop que quero colocar eh a 1.24867, ou seja, de fato acima do preco de mercado.
request.action = TRADE_ACTION_PENDING;
request.type = ORDER_TYPE_BUY_STOP; //ordem de buy stop
request.symbol = _Symbol;
request.volume = 2;
request.type_filling = ORDER_FILLING_RETURN; //compra e deixa o resto aberto
request.price = NormalizeDouble((OPLAST + StopGain),_Digits); //O preco da ordem de buy stop a 1.24867
request.deviation = 5; // desvio permitido do preço
OrderSend(request,result); //envio da ordem