if ((OrderType() == OP_SELL) && (SredTPSell != OrderTakeProfit())) Result=OrderModify(OrderTicket(),OrderOpenPrice(),0,SredTPSell,0);
Всем привет! Тема понимаю заезжена, но прошу проявить терпение. Сова уже год, как работает на впс, всё было замечательно. Начал её модифицировать и в Тестере выдаёт постоянно ошибку ordermodify error 1. Я взял с ВПС не тронутую моим гением сову, запустил в тестере и опять та же ошибка. Перерыл интернет и форум, понял что советник жалуется, при модификации ордера, что цена мол такая уже есть, мол чего её менять. Вообщем я в тупике помогите!!!. Вот кусок кода:
...
Логика кода следующая: Открываем сделку, в рынке уже минимум одна сделка если добрались до этого места. Складываем цены открытия делим на общее количество сделок, получаем средний ТП SredTPSell Далее в цикле перебираем все сделки sell и изменяем их ТП на SredTPSell.
Ну вот, ответ на ваш вопрос вы уже сами и написали, осталось исправить код. Что именно вам кажется сложным в сравнении ТП ордера с предлагаемым к модификации ТП?
О, пока писал, уже и конкретный код подсказали. Но если вам всё время готовые подсказки давать, так ничего и не выучите.Спасибо!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет! Тема понимаю заезжена, но прошу проявить терпение. Сова уже год, как работает на впс, всё было замечательно. Начал её модифицировать и в Тестере выдаёт постоянно ошибку ordermodify error 1. Я взял с ВПС не тронутую моим гением сову, запустил в тестере и опять та же ошибка. Перерыл интернет и форум, понял что советник жалуется, при модификации ордера, что цена мол такая уже есть, мол чего её менять. Вообщем я в тупике помогите!!!. Вот кусок кода:
// Выставляем новый ордер
ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,0,0,comment,Magic,0,Red);
if(ticket<0)
{ Alert(Symbol()," Ошибка продажи"); return; }
RefreshRates();
Sum = 0; countt=0; // Вычисляем усредненную цену открытия ордеров
for(t=0; t<OrdersTotal(); t++)
if(OrderSelect(t,SELECT_BY_POS))
if(OrderMagicNumber() == Magic && OrderSymbol() ==Symbol())
if(OrderType() == OP_SELL) { Sum+=OrderOpenPrice(); countt++; }
SredTPSell=NormalizeDouble(Sum/countt-PlusTP*Point, Digits);
for(t=0; t<OrdersTotal(); t++) // Модифицируем ордера, ставим TakeProfit
if(OrderSelect(t, SELECT_BY_POS))
if(OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderType() == OP_SELL)
Result=OrderModify(OrderTicket(),OrderOpenPrice(),0,SredTPSell,0);
}
}
Логика кода следующая: Открываем сделку, в рынке уже минимум одна сделка если добрались до этого места. Складываем цены открытия делим на общее количество сделок, получаем средний ТП SredTPSell Далее в цикле перебираем все сделки sell и изменяем их ТП на SredTPSell.