Отложенный ордер открывается, при модификации принтует 131 (неправильный объем).
Нормализацию ордера провожу, стоп левелы и заморозку проверяю, вообще убрал установку стопов и тейков. Пробовал просто поставить лот 1.00 для проверки и все так же.
Попробовал на демо другого ДЦ все нормально работает. В поддержке говорят, что все нормально.
Знаю я это "нормально", когда деньги на кошельке сперли в поддержке кошелька тоже пели, что у них нормально, а на следующий день деньги исчезли.
Вообщем напишите, как решить эту проблему или она не решаема?
какой то винегрет ...
какой то винегрет ...
По делу ответить можете или троллить пришли?
По делу ответить можете или троллить пришли?
что по делу - фигню какую то нацарапал а ты напрягай мозги решай проблему ...
в коде ни коментов ни что по чём и откуда - кинул огрызок и хочет что бы всю картину нарисовали ...
По делу ответить можете или троллить пришли?
а чё бы не потролить -раз есть кого ...
Неправильное сравнение двух вещественных чисел. Либо оба нормализуйте, либо (что лучше) сравнивайте разность с десятой частью пункта.
Ну а ошибка 131, скорее всего, появляется в другом месте кода. OrderModify не должен приводить к ней. Или же, перепутали номер ошибки со 130-й. Такая может возникать при OrderModify.
Многое зависит от того, от куда вы Ticket_ взяли.
Ticket_ правильный, в принты выводил он соответствует номеру, что в терминале, берется из цикла перебора ордеров.
Total=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if(OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if(OrderSymbol()!=Symb)continue; // Не наш фин. инструм Tip =OrderType(); // Тип выбранного орд. if(Tip!=1 && Tip!=3)continue; // Не наш тип ордера Total++; // Счётчик рыночн. орд Ticket=OrderTicket(); // Номер выбранн. орд. Price =OrderOpenPrice(); // Цена выбранн. орд. SL =OrderStopLoss(); // SL выбранного орд. TP =OrderTakeProfit(); // TP выбранного орд. Lot =OrderLots(); // Количество лотов if(Tip==1){tradeP(Ticket,Price,SL,TP);} if(Tip==3){tradeO(Ticket,Price,SL,TP);} } }
Ticket_ правильный, в принты выводил он соответствует номеру, что в терминале, берется из цикла перебора ордеров.
ну и что мы модифицируем если стопы и профиты остались без изменений
Неправильное сравнение двух вещественных чисел. Либо оба нормализуйте, либо (что лучше) сравнивайте разность с десятой частью пункта.
Ну а ошибка 131, скорее всего, появляется в другом месте кода. OrderModify не должен приводить к ней. Или же, перепутали номер ошибки со 130-й. Такая может возникать при OrderModify.
Нормализую лот так:
Lts=NormalizeDouble(1.00,Digits); Ticket=OrderSend(Symb,OP_SELLLIMIT,Lts,price,20,0,0,NULL,0,tf,clrGreen);
пробовал еще вместо Digits просто 2 поставить.
Ошибка точно 131.
Отложенный ордер открывается, именно потом, когда условия меняются при модификации ошибка происходит.
И строка:
Print("Ошибка модификации ордера. Код ошибки=",GetLastError());
есть только в этом блоке кода.
ну и что мы модифицируем если стопы и профиты остались без изменений
Цену открытия отложенного ордера. Если, что я и со стопами и тейками пробовал)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Отложенный ордер открывается, при модификации принтует 131 (неправильный объем).
Нормализацию ордера провожу, стоп левелы и заморозку проверяю, вообще убрал установку стопов и тейков. Пробовал просто поставить лот 1.00 для проверки и все так же.
Попробовал на демо другого ДЦ все нормально работает. В поддержке говорят, что все нормально.
Знаю я это "нормально", когда деньги на кошельке сперли в поддержке кошелька тоже пели, что у них нормально, а на следующий день деньги исчезли.
Вообщем напишите, как решить эту проблему или она не решаема?