Verifiquei o diário quanto ao erro que estava sendo recebido e ele dizia 4051. Há erro múltiplo 4051. Basicamente não funciona, e estou curioso se alguém mais já resolveu este problema antes e tem uma explicação.
Quando você tiver um problema com uma função leia a documentação sobre essa função . . . . OrderModify()<----- Clique ME ! ! !
Você não pode modificar o Preço Aberto do Pedido para 0,0 . . . assumindo que você tenha executado corretamente um OrderSelect(), use OrderOpenPrice() para o 2º parâmetro que você está passando para OrderModify()
Simon, eu li a documentação para a função OrderModify() e notei que o exemplo utilizado é um trailing stop. Não desejo usar um trailing stop para a EA. Isto porque se eu usasse uma parada móvel, (de acordo com o exemplo) a EA precisaria que o mercado viajasse x pontos acima da sl atual para modificar a sl para um preço especificado. Basicamente, isto é muito complicado. Eu só quero acrescentar uma parada de perda à ordem DEPOIS que a ordem tenha sido submetida ao mercado.
De qualquer forma, também estou tentando novas soluções atualmente.
Obrigado.
Simon, eu li a documentação para a função OrderModify() e notei que o exemplo utilizado é um trailing stop. Não desejo usar um trailing stop para a EA. Isto porque se eu usasse uma parada móvel, (de acordo com o exemplo) a EA precisaria que o mercado viajasse x pontos acima da sl atual para modificar a sl para o preço especificado. Basicamente, isto é muito complicado. Eu só quero acrescentar uma parada de perda à ordem DEPOIS que a ordem tenha sido submetida ao mercado.
De qualquer forma, também estou tentando novas soluções atualmente.
Obrigado.
Simon,
Testador de estratégia:
1. Modo visual
2. Velocidade 31
3. 2010.12.29
4. EURUSD
5. M15
executar"Somente preços abertos", não cada carrapato.
MetaEditor: Edit -> Find... -> "// escolha 1".
escolha 1. = sem erros, mas obviamente eu não quero isto.
escolha 2. = guia Diário -> Diário lido: "error 4051".
Obrigado.
Evidentemente, usando a função OrderOpenPrice() dentro dos parâmetros OrderModify() é considerado um "parâmetro de função inválido" de acordo com o erro 4051. Eu estou pensando "?" :) Eu poderia salvar o valor OrderOpenPrice() e incluir isto na função OrderModify() para fazer o que eu desejo fazer, mas realmente? Certamente existe uma maneira mais simples! Para mim, é de volta ao velho moinho ;)
Obrigado.
Evidentemente, usando a função OrderOpenPrice() dentro dos parâmetros OrderModify() é considerado um "parâmetro de função inválido" de acordo com o erro 4051.
William,
Evidentemente, coloquei o EA em um link para você baixar e visualizar no MetaEditor se desejar fornecer seu apoio. A função OrderSelect() não é atualmente um problema. Sabe de uma coisa? Vou postar isto só para você, William.
//*************************************************** // EMERGENCY BUY ORDER STOP LOSS PROTECTION SECTION ; //*************************************************** OrderSelect(0,SELECT_BY_TICKET,MODE_TRADES); // was ticket. if(OrdersTotal()>0) { if(OrderType()==OP_BUY) { if(OrderSend1==true) { // if(iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)<=OrderOpenPrice()-500*Point) { // choice 1. // {OrderModify(ticket,OrderOpenPrice(),Ask-500*Point,0,0,Blue);}}}} // choice 2. {OrderModify(ticket,OrderOpenPrice(),OrderOpenPrice()-500*Point,0,0,Blue);}}}}
Como você solicitou.
Obrigado.
William,
Evidentemente, coloquei o EA em um link para você baixar e visualizar no MetaEditor se desejar fornecer seu apoio. A função OrderSelect() não é atualmente um problema. Sabe de uma coisa? Vou postar isto só para você, William.
Como você solicitou.
Obrigado.
Simon, vou fazer testes para descobrir.
Obrigado.
Ah-ha! troquei o bilhete número 0 para 1, depois tudo funcionou como um relógio. Sim, eu estava errado, William... A função OrderSelect() foi um problema. Obviamente, a função OrderSelect() deve selecionar um tíquete. Se o número do bilhete for 0, qual bilhete a EA selecionará? :O "?". Obrigado a ambos por sua assistência.
Obrigado a ambos.
- 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
Olá Fórum MQL4,
O código acima funciona, mas move a barra para cima ou para baixo à medida que o preço pedido se move para cima ou para baixo.
Eu tentei isto, como uma solução.
(a ordem sendo selecionada é uma ordem de compra)
Verifiquei o diário quanto ao erro que estava sendo recebido e ele dizia 4051. Há erro múltiplo 4051. Basicamente não funciona, e estou curioso se alguém mais já resolveu este problema antes e tem uma explicação.
Não vejo porque esta solução não funcionaria (sim, acredito que estou selecionando corretamente a ordem porque a primeira solução incorreta da OrderModify está funcionando).
Obrigado.