dazamate: Sim, apenas lendo sobre seu comentário novamente e o que eu fiz está errado, não me dará o tempo de abertura do bar, eu teria que usar o Tempo[0]?
Companheiro você tem sido de grande ajuda eu finalmente tenho a ea em um estado agora onde eu posso começar a afinar a estratégia. Muito obrigado, mas duvido que você tenha ouvido o último de mim lamentando dizer haha
Acrescentei algum código que irá rastrear o prejuízo a partir de um valor médio móvel. O código funciona bem em operações de compra, mas não funciona em operações de venda. Eu não consigo identificar nada, talvez vocês consigam.
// Trailing Stop Code if(Tradeopen()==true && emastoptrail==TRUE) // Trades are open and Trailing stop feature is turned on
{
for(int tnumber2 = OrdersTotal()-1; tnumber2 >= 0 ; tnumber2--) //scan through open orders
{
if (OrderSelect(tnumber2, SELECT_BY_POS) &&
OrderMagicNumber()==Mnumber3) // The orders magic number is the same as the magic number used the profit trade
{
if(OrderType()==OP_BUY && (iMA(Symbol(), 60, ematrailperiod, 0, 1, 0, 1) > OrderStopLoss() )) // The stop loss is less than the moving average value
{
OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(), 60, ematrailperiod, 0, 1, 0, 1),OrderTakeProfit(),0); // Modify Stop to MA value
}
if(OrderType()==OP_SELL && (iMA(Symbol(), 60, ematrailperiod, 0, 1, 0, 1) < OrderStopLoss() )) // The stop loss is more than the moving average value
{
OrderModify(OrderTicket(),OrderOpenPrice(),iMA(Symbol(), 60, ematrailperiod, 0, 1, 0, 1),OrderTakeProfit(),0); // Modify Stop to MA value
}
}
}
}
Bem, o código de parada de rastreamento pode não ser o problema. Há um problema com o código que apaga as ordens pendentes após um certo tempo.
// DELETE PENDING ORDERS THAT HAVE NOT BEEN TRIGGERED WITHIN ' int = pendinglimit'if((iBarShift(Symbol(),60 ,tradeopened)>pendinglimit) && Tradeopen()==true) // Check to see if pending orders have expired
{
for(int tnumber = OrdersTotal()-1; tnumber >= 0 ; tnumber--) //scan through open orders
{
if (OrderSelect(tnumber, SELECT_BY_POS) &&
((OrderType()==OP_BUYSTOP)|| (OrderType()== OP_SELLSTOP)) && // The order selected is either a pending buy on stop order or a buy on sell order
((OrderMagicNumber()== Mnumber1) || (OrderMagicNumber()==Mnumber3))) // The orders magic number is the same as the magic number used in this ea
{
OrderDelete(OrderTicket( ) ); // Delete it
}
}
}
Depois que cada negociação é aberta, eu também executo este...
tradeopened = TimeHour(TimeCurrent());
I Comentário ...
(iBarShift(Symbol(),60 ,tradeopened)
e começa a partir de 1000 e continua contando com cada nova barra e não é reiniciada quando eu corro ...
tradeopened = TimeHour(TimeCurrent());
Isto faz com que a verificação para excluir ordens pendentes seja sempre verdadeira e se a negociação não for acionada dentro da próxima barra a ordem pendente é excluída imediatamente -__-
Eu o mudei para que mais uma verificação para eliminar a negociação fosse a de recuar o tempo máximo permitido para que uma ordem pendente pudesse ser aberta e ver se ela correspondia ao tempo em que a negociação foi aberta :)
for(int tnumber = OrdersTotal()-1; tnumber >= 0 ; tnumber--) //scan through open orders
{
if (OrderSelect(tnumber, SELECT_BY_POS) &&
((OrderType()==OP_BUYSTOP)|| (OrderType()== OP_SELLSTOP)) && // The order selected is either a pending buy on stop order or a buy on sell order
((OrderMagicNumber()== Mnumber1) || (OrderMagicNumber()==Mnumber3)) && // The orders magic number is the same as the magic number used in this ea
(iTime( Symbol(), 60, pendinglimit) == tradeopened))
{
OrderDelete( OrderTicket() ); // Delete it
}
}
Eu a mudei para que mais uma verificação para excluir a negociação fosse mudar o tempo máximo permitido para a abertura de uma ordem pendente e ver se ela correspondia ao tempo em que a negociação foi aberta :)
Você quase tem algo parecido com o que eu estava imaginando . . .
Há um problema no uso de sua variável "tradeopened" . . . se houver negócios abertos e a EA for fechada você perde a informação nessa variável . . por que não substituí-la por OrderOpenTime() e fazer algo assim . .
for(int tnumber = OrdersTotal()-1; tnumber >= 0 ; tnumber--) //scan through open orders
{
if (OrderSelect(tnumber, SELECT_BY_POS) &&
((OrderType()==OP_BUYSTOP)|| (OrderType()== OP_SELLSTOP)) && // The order selected is either a pending buy on stop order or a buy on sell order
((OrderMagicNumber()== Mnumber1) || (OrderMagicNumber()==Mnumber3)) && // The orders magic number is the same as the magic number used in this ea
(iBarShift(OrderSymbol(),PERIOD_H1 ,OrderOpenTime()) - pendinglimit) <= 0)); // <----------- this . . .
{
OrderDelete( OrderTicket() ); // Delete it
}
}
Também raptor eu preciso escolher seu cérebro.... novamente :)
Existe uma maneira de transformar um valor médio móvel em graus? Estou apenas procurando no Google agora para ver se consigo encontrar algum forumlas matemático. Dessa forma, seria fácil para a detecção lateral do mercado e esclarecer tendências para cima e para baixo.
Sim, apenas lendo sobre seu comentário novamente e o que eu fiz está errado,
não me dará o tempo de abertura do bar, eu teria que usar o Tempo[0]?
Sim, ou . . . .
Isso o consertou Raptor.
---------> http://clip2net.com/s/14aYs
Isso o consertou Raptor.
---------> http://clip2net.com/s/14aYs
Companheiro você tem sido de grande ajuda eu finalmente tenho a ea em um estado agora onde eu posso começar a afinar a estratégia. Muito obrigado, mas duvido que você tenha ouvido o último de mim lamentando dizer haha
Também muito obrigado à WHRoederSooo... você pensou que tinha acabado rs
Acrescentei algum código que irá rastrear o prejuízo a partir de um valor médio móvel. O código funciona bem em operações de compra, mas não funciona em operações de venda. Eu não consigo identificar nada, talvez vocês consigam.
Bem, o código de parada de rastreamento pode não ser o problema. Há um problema com o código que apaga as ordens pendentes após um certo tempo.
Depois que cada negociação é aberta, eu também executo este...
I Comentário ...
e começa a partir de 1000 e continua contando com cada nova barra e não é reiniciada quando eu corro ...
Isto faz com que a verificação para excluir ordens pendentes seja sempre verdadeira e se a negociação não for acionada dentro da próxima barra a ordem pendente é excluída imediatamente -__-
Ahhh HELP lol
Acho que posso tê-lo consertado ....
Eu o mudei para que mais uma verificação para eliminar a negociação fosse a de recuar o tempo máximo permitido para que uma ordem pendente pudesse ser aberta e ver se ela correspondia ao tempo em que a negociação foi aberta :)
Acho que talvez eu tenha consertado ....
Eu a mudei para que mais uma verificação para excluir a negociação fosse mudar o tempo máximo permitido para a abertura de uma ordem pendente e ver se ela correspondia ao tempo em que a negociação foi aberta :)
Você quase tem algo parecido com o que eu estava imaginando . . .
Há um problema no uso de sua variável "tradeopened" . . . se houver negócios abertos e a EA for fechada você perde a informação nessa variável . . por que não substituí-la por OrderOpenTime() e fazer algo assim . .
Também raptor eu preciso escolher seu cérebro.... novamente :)
Existe uma maneira de transformar um valor médio móvel em graus? Estou apenas procurando no Google agora para ver se consigo encontrar algum forumlas matemático. Dessa forma, seria fácil para a detecção lateral do mercado e esclarecer tendências para cima e para baixo.