Разработчикам:
Объясните, как работает OrderModify:
Эта конструкция ни в какую не двигает лося:
OrderModify(OrderTicket(),OrderOpenPrice(),SLoss,OrderTakeProfit(),0,CLR_NONE);
1.Позиция Buy, от OpenPrice до Bid 50 п. SLoss (значение мувинга) находится посередине, т.е. достаточно далеко от всех уровней. При этом если включить Ask manual confirmation, то окно с уровнем стопа в окошке (который, собственно и есть SLoss) исправно вылетает. И после кнопки Ок, стоп спокойно ставится.
2.OrderModify всё-таки ставит стоп, но не ближе 45-50 п. В то время, когда он не срабатывает GetLastError возвращает код 130. Что это за ошибка?
3.Ваш трейлинг 15 п. ставится нормально.
Уже 136 билд, а я... и не заметил...
Что может быть такое? после проблемы с 134 билдом, я занового его скачал и установил, и теперь не предлагает обновится :(
А файл LiveUpdate.exe не запускается...
Мне теперь новые билды только скачивать теперь, да ?
:(
Kombat, LiveUpdate работает тогда, когда сервер считает возможным предоставлять такой сервис. Если слишком много пользователей одновременно качает обновления, то сервер контролирует их количество, не позволяя себе перенапрягаться. Как только нагрузка спадает - остальные пользователи тоже могут скачивать обновления.
Все контроли есть. Благодарю за пояснения, попробую с нормализацией. Не сочтите за критику, но не понятно зачем такие строгости с нормализацией, во-первых, и стоп на расстоянии >50 п ставится спокойно и всегда без всякой нормализации, т.е. SLoss с уровнем отстающем от цены на 50 п. по выше приведенной схеме стоп не поставит, а конструкция Bid-50*Point поставит. Или во втором случае цена как бы уже нормализована?
Renat.
С LiveUpdate оказалась банальная вещь... я когда переустановил терминал не указал своему фаерволу что надо разрешить использовать этот файл, и он как хороший жандарм :) просто втихую (без сообщений) не "пускал его в эфир"...
Сейчас всё нормально, просто учту это на будущее.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Объясните, как работает OrderModify:
Эта конструкция ни в какую не двигает лося:
OrderModify(OrderTicket(),OrderOpenPrice(),SLoss,OrderTakeProfit(),0,CLR_NONE);
параметр SLoss=iMA(NULL,0,50,0,MODE_LWMA,PRICE_WEIGHTED,1);
1.Позиция Buy, от OpenPrice до Bid 50 п. SLoss (значение мувинга) находится посередине, т.е. достаточно далеко от всех уровней. При этом если включить Ask manual confirmation, то окно с уровнем стопа в окошке (который, собственно и есть SLoss) исправно вылетает. И после кнопки Ок, стоп спокойно ставится.
2.OrderModify всё-таки ставит стоп, но не ближе 45-50 п. В то время, когда он не срабатывает GetLastError возвращает код 130. Что это за ошибка?
3.Ваш трейлинг 15 п. ставится нормально.
логин -115
Что может быть такое? после проблемы с 134 билдом, я занового его скачал и установил, и теперь не предлагает обновится :(
А файл LiveUpdate.exe не запускается...
Мне теперь новые билды только скачивать теперь, да ?
:(
Какие ошибки:
1) грубейшая ошибка - использование ненормализованной цены в качестве стоплосса
вместо
int digits=MarketInfo(Symbol(),MODE_DIGITS); SLoss=NormalizeDouble(iMA(NULL,0,50,0,MODE_LWMA,PRICE_WEIGHTED,1),digits);2) возможно, нет кода распознавания типа ордера (BUY , SELL) и ставится неверный стоплосс (ниже рынка, хотя должен быть выше) на SELL ордере
3) есть контроль за частотой и обоснованностью изменения стопов?
Вот рабочий пример (без проверки частоты и обоснованности смены стопа)
int start() { double SLoss; int digits=MarketInfo(Symbol(),MODE_DIGITS); double point=MarketInfo(Symbol(),MODE_POINT); //---- OrderSelect(0,SELECT_BY_POS,MODE_TRADES); if(OrderType()==OP_BUY) { SLoss=NormalizeDouble(iMA(NULL,0,50,0,MODE_LWMA,PRICE_WEIGHTED,1),digits); Print("New SL=",DoubleToStr(SLoss,6)); OrderModify(OrderTicket(),OrderOpenPrice(),SLoss,OrderTakeProfit(),0,CLR_NONE); } else { SLoss=NormalizeDouble(OrderClosePrice()+30*point,digits); Print("New SL=",DoubleToStr(SLoss,6)); OrderModify(OrderTicket(),OrderOpenPrice(),SLoss,OrderTakeProfit(),0,CLR_NONE); } //---- return(0); }Datetime Time[] – Closing time of the current bar in 24-hour HHMM format.
А выдает-то она все таки секунды...
С LiveUpdate оказалась банальная вещь... я когда переустановил терминал не указал своему фаерволу что надо разрешить использовать этот файл, и он как хороший жандарм :) просто втихую (без сообщений) не "пускал его в эфир"...
Сейчас всё нормально, просто учту это на будущее.