Ошибки, баги, вопросы - страница 687

 
hrenfx:

00:02 - {NAN, 1.2310, 1.2290, 1.2305} (OHLC);

Где изъян?

Здесь изъян, что надо постоянно прописывать функционал, для определения недостающих параметров бара. Необходимость примера, что Вы приводите - это частный случай.

hrenfx:

00:00 - {NAN, NAN, NAN, NAN} (OHLC);

Где изъян?

Такая конструкция мне не понятна, поскольку советник работает в рамках тика и для подавляющего большинства советников совершенно безразлично время прихода нового тика.

Возможно, что такая конструкция нужна для упрощения мультивалютной синхронизации, но отсутствие этой конструкции с успехом можно заменить функционалом поиска последнего состоявшегося бара.

Присутствие такой конструкции на истории может затруднить анализ в большинстве случаев ибо надо постоянно идентифицировать отсутсвие недостающих параметров бара. 

p.s. Работа с приведенными Вами конструкциями серьёзно усложняет обработку. Куда проще найти последний состоявшийся бар.

 

abolk:

1. Вы постоянно начинаете строить бар по "ценам предложения"?

2. Что это за цены?

3. Откуда они нам известны?

1.  И правильно делает.  Вы пока не доказали некорректность такой схемы. А всего лишь указали, что "есть варианты".

2, 3.  Цены предложения транслируются брокером.  Называются Bid и Ask.  И являются актуальными ценами, пока не сменились другими. Сделки вообще не критерий, на форексе транслируются только изменения цены, а сделок по фиксированным ценам может быть сколько угодно - пока не исчерпаются объёмы ближайших лимитников в стакане, цены которых и являются текущим предложением брокера. Текущие Bid и Ask. Запомнили? Если что - спросите у документации или у яндекса с гуглом.

 
abolk:
 Здесь изъян, что надо постоянно прописывать функционал, для определения недостающих параметров бара. Необходимость примера, что Вы приводите - это частный случай. 

Это ничто по сравнению с рассинхронизацией, однако, чтобы и этот напрягающий изъян убрать, звучало и альтернативное предложение:

hrenfx:

При этом, если цена предложения на момент наступления минуты отсутствует (открытие торговой сессии), то бар не формируется, ...

Для того же примера: 

  1. Открытие торговой сессии 00:00:00.
  2. Первая цена появляется в 00:02:34 - 1.2301. Затем в течение минуты цена меняется в диапазоне 1.2290 - 1.2310. И на конец 00:02 минуты становится 1.2305

Будет так:

  • бары 00:00 и 00:01 - отсутствуют.
  • 00:02 - {1.2301, 1.2310, 1.2290, 1.2305} (OHLC);

Какие еще изъяны?

P.S. Вариант c NAN с точки зрения логики самый точный. Компромиссный же вариант позволяет избавится от условного оператора if на каждом баре, но синхронизацию мультиФИ баров надо будет делать на стыке открытия/закрытия торговой сессии.

 
MetaDriver:

Запомнили? Если что - спросите у документации или у яндекса с гуглом.

Не понимаю. К чему этот постоянный высокомерный тон?

Какая-то ничем не обоснованная мания всезнайства, всеумейства и всеправильности.

Удалюсь-ка я "в сад".

 
abolk:
По присутствию/отсутствию "несостоявшихся" баров ничего сказать не могу - для меня это некритично. Также неизвестны проблемы реализации. Может они существенные и компромисно пока текущее решение. Если это так важно и в терминале этого нет, "отрисовку" "несостоявшихся" баров можно и реализовать самостоятельно.
Андрей.  У меня к вам просьба - не встревайте, пожалуйста, в темы которые для вас некритичны.  Такое встревание похоже на попытку "поумничать" на неважную тему - безопасно и можно при случае статусное "очко" гребануть у присутствующих. Если удачную мысль удастся сморозить. Вы не продумывали текущую область многократно, потому и не можете ничего толкового сказать в данном случае. Толкового - значит полезного для того, для кого это критично. Я  же не лезу с советами и ответами на тему "графопостроения" в терминале. Думаете у меня мыслей нету на эту тему?  Есть.  Просто я понимаю что "не в теме", поскольку в ежедневной практике этим не пользуюсь.  Без обид, Андрей.  Просто просьба.  Вы вправе обнародовать Ваше мнение (уже сделали), но затевать и продолжать этот спор с вашей стороны просто глупо. Вы просто "не в теме". 
 
abolk:

Не понимаю. К чему этот постоянный высокомерный тон?

Какая-то ничем не обоснованная мания всезнайства, всеумейства и всеправильности.

Удалюсь-ка я "в сад".

Он не высокомерный, а насмешливый в данном случае.  Откровенный насмешливо-издевательский, не без того. 

Что странно - не раскаиваюсь, ибо глупите отчаянно, на грани притворства.

 
MetaDriver:
Андрей.  У меня к вам просьба - не встревайте, пожалуйста, в темы которые для вас некритичны.  Такое встревание похоже на попытку "поумничать" на неважную тему - безопасно и можно при случае статусное "очко" гребануть у присутствующих. Если удачную мысль удастся сморозить. Вы не продумывали текущую область многократно, потому и не можете ничего толкового сказать в данном случае. Толкового - значит полезного для того, для кого это критично. Я  же не лезу с советами и ответами на тему "графопостроения" в терминале. Думаете у меня мыслей нету на эту тему?  Есть.  Просто я понимаю что "не в теме", поскольку в ежедневной практике этим не пользуюсь.  Без обид, Андрей.  Просто просьба.  Вы в праве обнародовать Ваше мнение (уже сделали), но затевать и продолжать этот спор с вашей стороны просто глупо. Вы просто "не в теме". 

Ну, насчёт выссказывать или не выссказывать своё мнение - это, позвольте, мне решать. И также позвольте мне не спрашивать у Вас разрешения выссказаться по той или иной теме, будь я "в теме" или "не втеме". Если Вы обладаете правами модератора, то можете мои посты удалить и оставить свои. Но поскольку прав модератора у Вас нет, а есть только указательный палец, то ... и ковыряйтесь им в своём личном "правильном понимании темы".

 
Бросьте вы эту тему - в ближайшее время изменений на этом фронте не предвидится.
 

Почему каждый мой советник флудит удалением отложек?  Ордер выставляется и тут же удаляется.И заново.

Вот пример:2011.01.24   М1   ,время выставления ордеров 2:00. ДЦ metaquotes-demo.

 

 

MqlTradeResult resultU,resultD;MqlTradeRequest request;MqlTick latest_price; MqlDateTime ctime;
int OnInit()
{ request.symbol = _Symbol; // символ
request.volume = 0.1; // количество лотов для торговли
request.magic = 52; // Magic Number
request.type_filling = ORDER_FILLING_AON; // тип исполнения ордера - все или ничего
request.deviation=40; // проскальзывание от текущей цены
request.comment= "TL";
request.type_time=ORDER_TIME_GTC;
request.type_filling=ORDER_FILLING_RETURN;
return(0);
}
void OnTick()
{
if(OrderSelect(resultD.order) || OrderSelect(resultU.order) )
{ OrderSelect(resultU.order);
if(OrderGetDouble(ORDER_PRICE_OPEN)!=1.36207)
{ Print("bbb ",OrderGetDouble(ORDER_PRICE_OPEN));
request.action = TRADE_ACTION_REMOVE; // немедленное исполнение
request.order=resultU.order;
OrderSend(request,resultU);
request.order=resultD.order;
OrderSend(request,resultD);

return;
}
OrderSelect(resultD.order);
if(OrderGetDouble(ORDER_PRICE_OPEN)!=1.35855)
{Print("sss ",OrderGetDouble(ORDER_PRICE_OPEN));
request.action = TRADE_ACTION_REMOVE; // немедленное исполнение
request.order=resultU.order;
OrderSend(request,resultU);
request.order=resultD.order;
OrderSend(request,resultD);
return;
}
//nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
//nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
}else//новый ордер
{ TimeCurrent(ctime);
if(ctime.hour==2){
request.action = TRADE_ACTION_PENDING;
request.type=ORDER_TYPE_BUY_STOP;
request.price=1.36207;
request.sl=1.36031;
request.tp=0;
OrderSend(request,resultU);

request.type=ORDER_TYPE_SELL_STOP;
request.price=1.35855;
request.sl=1.36031;
request.tp=1.34484;
OrderSend(request,resultD);
}
}
}

 

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
уже полгода я мучаюсь с этим багом в разных советниках((((((
Причина обращения: