"Eu estabeleço duas ordens pendentes a uma hora específica, especificamente às 23:00 GMT+2, penso eu. Uma das ordens pendentes como uma parada de venda e a outra é uma parada de compra, ambas as ordens estão a uma distância igual da vela aberta a partir das 23:00, neste caso 14 pips.Ambas têm um TakeProfit de 28 pips (neste caso) e um StopLoss de 55 pips".
Você pode calcular onde o TP original estava por referência à vela das 23:00, verificar o pedido e ver se ainda está ajustado ao TP original, se está então pode ser modificado... se não, então já foi modificado, então não o modifique novamente.
Experimente isto . . . compila, mas ainda não experimentei no Testador de Estratégia . .
Estou recebendo 'OrderSend error 130' por alguma razão, embora o SL e TP pareçam estar corretos e os 'OrderSend's estejam dispostos da mesma forma que o código anterior de alguma forma. Por que isto está acontecendo?
Eu tomei esta parte do código
int CountOpenOrders = 0;
double Candle23Open;
int Spread = MarketInfo(Symbol(), MODE_SPREAD);
Candle23Open = Open[ iBarShift(NULL, 0, StrToTime("23:00") ) ]; // price value of the Open of the 23:00 hour candlefor(int iPos = OrdersTotal()-1; iPos >= 0 ; iPos--)
{
if(OrderSelect(iPos,SELECT_BY_POS) &&
OrderMagicNumber() == MagicNumber &&
OrderSymbol() == Symbol() &&
OrderType() < 2// less than 2 is either OP_BUY (0) or OP_SELL (1)
)
CountOpenOrders++;
} // end of for(int iPos if(CountOpenOrders == 2) // we have 2 open orders, should we modify or have the already been modified ?
{
for(iPos = OrdersTotal()-1; iPos >= 0 ; iPos--)
{
if(OrderSelect(iPos,SELECT_BY_POS) &&
OrderMagicNumber() == MagicNumber &&
OrderSymbol() == Symbol()
)
{
if(OrderType() == 1) // OP_SELL (1)
{
if(OrderTakeProfit() > Candle23Open - ((TakeProfitModified - 1) * Point) + Spread ) // check if TakeProfit has already been modifiedif(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open - (TakeProfitModified * Point) + Spread, 0, Blue))
{
Print("Error modifying order : ",GetLastError());
return(0);
}
}
if(OrderType() == 0) // OP_BUY (0)
{
if(OrderTakeProfit() < Candle23Open + ((TakeProfitModified - 1) * Point) ) // check if TakeProfit has already been modifiedif(!OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), Candle23Open + (TakeProfitModified * Point), 0, Blue))
{
Print("Error modifying order : ",GetLastError());
return(0);
}
}
}
}
}
}
e a colocou na EA anterior (a original) e abre os pedidos, mas não os modifica. Embora eu ache que se o erro do OrderSend fosse corrigido na EA que você forneceu, poderia funcionar.
Estou recebendo 'OrderSend error 130' por alguma razão, embora o SL e TP pareçam estar corretos e os 'OrderSend's estejam dispostos da mesma forma que o código anterior de alguma forma. Por que isto está acontecendo?
Você ajustou seu TP & SL para contabilizar um corretor de 5 dígitos? seu corretor é um corretor de 5 dígitos?
Consegui trabalhar, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito. O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isto. Alguma idéia por quê?
Consegui que ele funcionasse, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito. O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isso.
Obrigado,
madmax3
OrderModify retorna um bool . . então ! em relação a um bool NÃO é . . então !OrderModify() significa . . se OrderModify retorna falso, ou seja, falha
Vou dar outra olhada em seu código . . ou meu mod para ele.
Consegui trabalhar, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito. O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isto. Alguma idéia por quê?
Obrigado,
madmax3
Você quer ter isso modificando o StopLoss para ambos os negócios de Compra e Venda com o mesmo pip ??
Pense novamente se é isso que você quer e você pode descobrir porque não está modificando dessa forma....
Também não modifique as negociações com cada novo ponto na direção certa escolha um trailingstep para permitir a modificação (xx Pontos podem escolher 10 ou mais para evitar muitos erros de contexto de negociação muito ocupados)
O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isso. Alguma idéia por quê?
Verifique se há erros nos logs . . se estiver rodando no Strategy Tester verifique a guia do diário, se estiver em Live ou Demo verifique a guia dos especialistas. Informe-me o que você encontrou . .
RaptorUK: Verifique se há erros nos logs . . se estiver rodando no Strategy Tester verifique a guia do diário, se estiver em Live ou Demo verifique a guia dos especialistas. Informe-me o que você encontrou . .
2012.04.09 21:21:27 2012.01.17 00:59 Testador: pedido nº 1, venda 0.01 EURUSD é aberto em 1.26498
2012.04.09 21:21:27 2012.01.17 02:21 Testador: pedido nº 2, compra 0.01 EURUSD é aberto a 1.26795
2012.04.09 21:21:27 2012.01.17 02:21 MadMax EURUSD,H1: modificar #2 comprar 0.01 EURUSD a 1.26795 sl: 1.26218 tp: 1.27352 ok 2012.04.09 21:21:27 2012.01.17 03:00 MadMax EURUSD,H1: modificar #2 comprar 0.01 EURUSD a 1.26795 sl: 1.26218 tp: 1.27480 ok
Por alguma razão está modificando o comércio de compra duas vezes (a segunda modificação vai para o TP necessário, no entanto, em algumas negociações parece continuar modificando em certos horários inteiros, como 9:00 ou 10:00), mas não parece haver erros reais como tal.
Esta é a forma mais simples . . .
"Eu estabeleço duas ordens pendentes a uma hora específica, especificamente às 23:00 GMT+2, penso eu. Uma das ordens pendentes como uma parada de venda e a outra é uma parada de compra, ambas as ordens estão a uma distância igual da vela aberta a partir das 23:00, neste caso 14 pips.Ambas têm um TakeProfit de 28 pips (neste caso) e um StopLoss de 55 pips".
Você pode calcular onde o TP original estava por referência à vela das 23:00, verificar o pedido e ver se ainda está ajustado ao TP original, se está então pode ser modificado... se não, então já foi modificado, então não o modifique novamente .
Experimente isto . . . compila, mas ainda não experimentei no Testador de Estratégia. .
Experimente isto . . . compila, mas ainda não experimentei no Testador de Estratégia . .
Estou recebendo 'OrderSend error 130' por alguma razão, embora o SL e TP pareçam estar corretos e os 'OrderSend's estejam dispostos da mesma forma que o código anterior de alguma forma. Por que isto está acontecendo?
Eu tomei esta parte do código
e a colocou na EA anterior (a original) e abre os pedidos, mas não os modifica. Embora eu ache que se o erro do OrderSend fosse corrigido na EA que você forneceu, poderia funcionar.
Ah, e nesta parte,
Para que serve o !?
Muito obrigado,
madmax3
Ah, e nesta parte,
Para que serve o !?
Muito obrigado,
madmax3
Estou recebendo 'OrderSend error 130' por alguma razão, embora o SL e TP pareçam estar corretos e os 'OrderSend's estejam dispostos da mesma forma que o código anterior de alguma forma. Por que isto está acontecendo?
Consegui trabalhar, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito.
O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isto. Alguma idéia por quê?
Obrigado,
madmax3
Consegui que ele funcionasse, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito.
O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isso.
Obrigado,
madmax3
OrderModify retorna um bool . . então ! em relação a um bool NÃO é . . então !OrderModify() significa . . se OrderModify retorna falso, ou seja, falha
Vou dar outra olhada em seu código . . ou meu mod para ele.
Consegui trabalhar, apenas perdi o preenchimento de uma variável (distância de pedido e lance). A documentação da OrderModify não explica o ! Eu acredito.
O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isto. Alguma idéia por quê?
Obrigado,
madmax3
Você quer ter isso modificando o StopLoss para ambos os negócios de Compra e Venda com o mesmo pip ??
Pense novamente se é isso que você quer e você pode descobrir porque não está modificando dessa forma....
Também não modifique as negociações com cada novo ponto na direção certa escolha um trailingstep para permitir a modificação (xx Pontos podem escolher 10 ou mais para evitar muitos erros de contexto de negociação muito ocupados)
"!" é algo como não codificar
O código parece funcionar bem, mas uma questão é que ele só está modificando as operações de compra quando duas operações estão abertas e não tanto as operações de compra e venda, não tenho certeza porque ele está fazendo isso. Alguma idéia por quê?
Verifique se há erros nos logs . . se estiver rodando no Strategy Tester verifique a guia do diário, se estiver em Live ou Demo verifique a guia dos especialistas. Informe-me o que você encontrou . .
2012.04.09 21:21:27 2012.01.17 02:21 MadMax EURUSD,H1: modificar #2 comprar 0.01 EURUSD a 1.26795 sl: 1.26218 tp: 1.27352 ok
2012.04.09 21:21:27 2012.01.17 03:00 MadMax EURUSD,H1: modificar #2 comprar 0.01 EURUSD a 1.26795 sl: 1.26218 tp: 1.27480 ok
Por alguma razão está modificando o comércio de compra duas vezes (a segunda modificação vai para o TP necessário, no entanto, em algumas negociações parece continuar modificando em certos horários inteiros, como 9:00 ou 10:00), mas não parece haver erros reais como tal.