Начните с поиска закономерности, при каких обстоятельствах тралит, а при каких - не тралит. И код гораздо удобней читать, если его с помощью Ctrl+Alt+M вставлять.
evillive:
Начните с поиска закономерности, при каких обстоятельствах тралит, а при каких - не тралит. И код гораздо удобней читать, если его с помощью Ctrl+Alt+M вставлять.
Начните с поиска закономерности, при каких обстоятельствах тралит, а при каких - не тралит. И код гораздо удобней читать, если его с помощью Ctrl+Alt+M вставлять.
согласен, не каждый может переходить в телепатический режим..
в коде есть загадочная CalkZero()
сомнительно чтобы она могла давать корректную цену, если все нужные цены есть в ордере, кроме того Ask и Bid могут быть не актуальны на момент расчетов..
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем добрый вечер!
Написал функцию трала для совы, вроде ничего особенного в ней нет, просто тралит на определенном расстоянии и всё. Ошибок никаких в журнал не пишет и вроде бы всё зашибись, НО! функция OrderModifi() не всегда срабатывает.
Все условия проверял - работают. Написал принт перед модифи - работает а модифи НЕТ!!! и в журнале тишина, что делать уже незнаю.
int Bezub() { double SL; for (int trade = OrdersTotal() - 1; trade >= 0; trade--) { if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol()&& OrderMagicNumber() ==Martinmagic ) { if (OrderType()== OP_SELL) { if (CalkZero(OP_SELL,Martinmagic)-Ask>trallpips*Point ) { if((OrderStopLoss()>Ask+(trallpips+trailingstep)*Point) || OrderStopLoss()==0) { SL=NormalizeDouble(Ask+trallpips*Point,Digits); if(OrderStopLoss()!=SL) { Print(OrderStopLoss(),"; ",SL); OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Red);} } } } if (OrderType()== OP_BUY) { if(Bid-CalkZero(OP_BUY,Martinmagic)>trallpips*Point) { if((OrderStopLoss()<Bid -(trallpips+trailingstep)*Point) || OrderStopLoss()==0) { SL=NormalizeDouble(Bid-trallpips*Point,Digits); if(OrderStopLoss()!=SL){ Print(OrderStopLoss(),"; ",SL); OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(),0,Red);} } } } } } }