Текущий Билд - 136 - страница 10

 
Разработчикам:
Объясните, как работает 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 п. ставится нормально.
 
странно но у меня почему-то терминал выдает "неверный счет"? после установки 136 билда ничего не изменилось
логин -115
 
Уже 136 билд, а я... и не заметил...
Что может быть такое? после проблемы с 134 билдом, я занового его скачал и установил, и теперь не предлагает обновится :(
А файл LiveUpdate.exe не запускается...
Мне теперь новые билды только скачивать теперь, да ?
:(
 
Прощу прощения за панику... уже всё нормально...
 
Kombat, LiveUpdate работает тогда, когда сервер считает возможным предоставлять такой сервис. Если слишком много пользователей одновременно качает обновления, то сервер контролирует их количество, не позволяя себе перенапрягаться. Как только нагрузка спадает - остальные пользователи тоже могут скачивать обновления.
 
avm, к сожалению, Вы не указали окружения, в котором работает код да и сам код - тоже.

Какие ошибки:
1) грубейшая ошибка - использование ненормализованной цены в качестве стоплосса
    SLoss=iMA(NULL,0,50,0,MODE_LWMA,PRICE_WEIGHTED,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);
  }
 
Baloven, значит вводите неверные уровни стопов.
 
Все контроли есть. Благодарю за пояснения, попробую с нормализацией. Не сочтите за критику, но не понятно зачем такие строгости с нормализацией, во-первых, и стоп на расстоянии >50 п ставится спокойно и всегда без всякой нормализации, т.е. SLoss с уровнем отстающем от цены на 50 п. по выше приведенной схеме стоп не поставит, а конструкция Bid-50*Point поставит. Или во втором случае цена как бы уже нормализована?
 
Заметил несовпадение в хелпе:
Datetime Time[] – Closing time of the current bar in 24-hour HHMM format.

А выдает-то она все таки секунды...
 
Renat.
С LiveUpdate оказалась банальная вещь... я когда переустановил терминал не указал своему фаерволу что надо разрешить использовать этот файл, и он как хороший жандарм :) просто втихую (без сообщений) не "пускал его в эфир"...
Сейчас всё нормально, просто учту это на будущее.