Уточнение:
С работой модификации разобрался, но тралл происходит только для одной позиции и поочередно переходит на следующую после закрытия по стопу, как реализовать модификацию для всех позиций одновременно?
Уточнение:
С работой модификации разобрался, но тралл происходит только для одной позиции и поочередно переходит на следующую после закрытия по стопу, как реализовать модификацию для всех позиций одновременно?
А что у Вас в переменной total?
Поменяйте её на OrdersTotal()
и нужно выбрать очередной ордер в цикле
так же нужна сортировка по Символу и Магику(если есть)
for(t=0; t<OrdersTotal(); t++)
{
int res=OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == OP_BUY){
А что у Вас в переменной total?
Поменяйте её на OrdersTotal()
и нужно выбрать очередной ордер в цикле
так же нужна сортировка по Символу и Магику(если есть)
for(t=0; t<OrdersTotal(); t++)
{
int res=OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == OP_BUY){
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Столкнулся с такой проблемой:
Открыто несколько позиций и для всех позиций должен работать трэйлинг, по началу трейлинг был прописан в том же цикле, что и закрытие, в таком случае трейлинг работал только для одной позиции и поочередно переходил к следующим после закрытия по стопу. Посоветовали перенести трал в другой цикл и желательно другой функцией, что я собственно и сделал, однако теперь модификация не работает вообще. В чем может быть проблема?
Код прилагаю
{
if (OrderType() == OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
{
if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
}
}
}
}
}