Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 799
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
Obrigado! Procurei e não consegui encontrá-lo...
Então a questão seguinte, digamos que o passo é 25, então como organizar arredondamentos para um número divisível por 25, talvez haja uma função?
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/csymbolinfo/csymbolinfonormalizeprice
Obrigado, mas não estou a utilizar a biblioteca comercial padrão.
Sem código, sem comentários.
Sim, isso é esquisito. Anexou o ficheiro, mas não o verificou. Erro meu. Agora estou a anexar tanto o código como o excerto de código onde o testador dá uma linha com [Paragens inválidas]. Quero compreender como funciona a estrutura MqlTradeRequest quando se modifica a posição. No meu caso é quando se muda de paragem na SAR. Não me consigo livrar da mensagem [Paragens inválidas] do testador. Ferramenta RTS Splice.
Sim, isso é esquisito. Anexou o ficheiro, mas não o verificou. Erro meu. Agora estou a anexar tanto o código como um excerto de código onde o testador dá uma linha com [Paragens inválidas]. Quero compreender como funciona a estrutura MqlTradeRequest quando se modifica a posição. No meu caso é quando se muda de paragem na SAR. Não me consigo livrar da mensagem [Paragens inválidas] do testador. Ferramenta RTS Splice.
Este não é aquele fragmento de código onde devemos procurar um erro, à primeira vista. É apenas a tripla selecção de uma e a mesma posição que me incomoda. É redundante.
Se tiver um erro em paragens incorrectas, deve provavelmente iniciar a sua pesquisa a partir do local onde estas paragens são calculadas.
Sim, isso é esquisito. Anexou o ficheiro, mas não o verificou. Erro meu. Agora estou a anexar tanto o código como o excerto de código onde o testador dá uma linha com [Paragens inválidas]. Quero compreender como funciona a estrutura MqlTradeRequest quando se modifica a posição. No meu caso é quando se muda de paragem na SAR. Não me consigo livrar da mensagem [Paragens inválidas] do testador. RTS Splice.
Para uma compreensão completa, é necessário especificar que tipo de conta teve ou netting
Se o tipo de conta foi falsificada
Escolheu uma posição para o símbolo, mas pode não ser exactamente o que queria ver...
Mas agora escolhemos a posição exacta que queríamos.
A seguir, tente novamente escolher a posição certa
Mais uma vez, a probabilidade de ter escolhido a posição errada é muito elevada
Para verificar como funciona a função OrderSend() neste caso, deve fazê-lo, mas é melhor fazê-lo como deve ser e se o erro não desaparecer, imprimir não só o código de erro, mas também o bilhete de posição, o preço da posição, o preço da nova paragem e tomada. Isto é o mínimo.
Para uma compreensão completa, é necessário especificar que tipo de conta tem ou netting
Obrigado pelos vossos comentários. O tipo de conta é netting. RTS Splice. Será essa a parte complicada? Uma posição sobre um símbolo. Pode escolher a forma que quiser, ainda assim chegará a essa posição. Estas não são ordens pendentes, pois não? É por isso que não compreendo ainda mais - o que é que se passa? Experimentei todas as variantes.
Obrigado pelos comentários. Compensação do tipo de conta. Instrumento RTS Splice. Será essa a parte complicada? Uma posição sobre um símbolo. Pode escolher a forma que quiser, ainda assim chegará a essa posição. Estas não são ordens pendentes, pois não? É por isso que não compreendo ainda mais - o que é que se passa? Experimentei todas as variantes.
Fórum sobre Comércio, Sistemas de Comércio Automatizados e Testes de Estratégia
Perguntas de Iniciantes MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.11.22 09:29
Para verificar como funciona a função OrderSend() neste caso, é necessário fazê-lo e verificar, mas é melhor fazer como deve ser e se o erro não desaparecer imprimir não só o código de erro mas também o bilhete de posição, o preço da posição, o preço da nova paragem e tomada. Isto é o mínimo.
É por isso que não compreendo ainda mais - O QUE É ERRADO?? Experimentei todas as opções.
Insira esta linha onde o erro ocorre
Print(ToString(request) + ToString(result));
Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais
Peculiaridades da linguagem mql5, subtilezas e truques
fxsaber, 2017.02.25 16:27
Traduzir as estruturas MqlTrade- numa corda#define TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"
string ToString( const MqlTradeTransaction &Trans )
{
return(TOSTRING(Trans.deal) + TOSTRING(Trans.order) + TOSTRING(Trans.symbol) +
TOSTRING2(Trans.type) + TOSTRING2(Trans.order_type) + TOSTRING2(Trans.order_state) +
TOSTRING2(Trans.deal_type) + TOSTRING2(Trans.time_type) +
TOSTRING(Trans.time_expiration) + TOSTRING(Trans.price) + TOSTRING(Trans.price_trigger) +
TOSTRING(Trans.price_sl) + TOSTRING(Trans.price_tp) + TOSTRING(Trans.volume) +
TOSTRING(Trans.position) + TOSTRING(Trans.position_by));
}
string ToString( const MqlTradeRequest &Request )
{
return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) + TOSTRING(Request.tp) +
TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
TOSTRING(Request.position) + TOSTRING(Request.position_by));
}
string ToString( const MqlTradeResult &Result )
{
return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
TOSTRING(Result.retcode_external));
}
#undef TOSTRING
#undef TOSTRING2
Insira esta linha onde o erro ocorre
Colado. Aqui está o resultado do testador:
2017.11.22 18:22:51.127 2016.11.09 12:00:00 troca comprar 1,00 RTS Splice a 98080 sl: 94130 (98070 / 98080 / 98070)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 negócio #4 comprar 1,00 RTS Splice a 98080 feito (com base na encomenda #4)
2017.11.22 18:22:51.127 2016.11.09 12:00:00 negócio realizado [#4 comprar 1,00 RTS Splice a 98080]
2017.11.22 18:22:51.127 2016.11.09 12:00:00 encomenda realizada comprar 1,00 a 98080 [#4 comprar 1,00 RTS Splice a 98080]
2017.11.22 18:22:53.561 2016.11.09 14:05:00:00 não conseguiu modificar #4 comprar 1,00 RTS Splice sl: 94130, tp: 0 -> sl: 94316, tp: 0 [Paragens inválidas]
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.action = TRADE_ACTION_SLTP (6)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.magic = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Pedido.encomenda = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.symbol = RTS Splice
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Pedido.volume = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Pedido.preço = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.stoplimit = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.sl = 94316.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.tp = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.deviation = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type = ORDER_TYPE_BUY (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_filling = ORDER_FILLING_FOK (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.type_time = ORDER_TIME_GTC (0)
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.expiration = 1970.01.01.01 00:00:00
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.comment =
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.position = 4
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Request.position_by = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.retcode = 10016
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.deal = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.encomenda = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.volume = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.preço = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.licitação = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.pergunte = 0.0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.comentário = Paragens inválidas
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.request_id = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Resultado.retcode_external = 0
2017.11.22 18:22:53.576 2016.11.09 14:05:00 Alerta: Erro de modificação de posição por TP e código de erro SL: 4756
Coloque-o. Aqui está o resultado do testador:
Modo servidor e modo testador?