Событие - история в терминале обновлена? - страница 2

 
Вчера ночью вспомнил у Komposter`a есть ряд готовых нароботок в этой области, можно на МКЛ4 посмотреть, поминтся мне спец. индикаторы которые показывают кучу статистики по качеству соединения, оттуда и можно выдергивать инфу и анализируя ее принимать решение на обновление графика.
 
Надо будет поискать/посмотреть. Хотя сам я на данный момент противник автоматической торговли :). Просто наткнулся на эффект и решил немного поразмыслить на эту тему.
 
я по-своему пытался сделать это, но пока не очень удачно, если разберешься, кусок кода положи здесь, чтобы голову не ломать
 
Я бы для начала попробовал так: заводится массив на пороговые значения допустим мувинга по интервалам между тиками. По получасовкм или по 15-минуткам. Дальше индикатор просто сравнивет текущее значение с пороговым для этого времении суток (ну и день недели можно прикрутить - тогда двумерный массив) и решает, работать или подождать. А вот заполнить этот массив - надо собирать статистику по интервалам между тиками. Я этого пока не припрёт делать не буду. Но если ты этим займёшься - последил бы с интересом.
 
Хотя нет, для начала я сделал бы не на тиках, а на минутках. Грубее, зато статистику на истории можно собрать. Да и представим, что алгоритм фильтрации для тиков изменится. Вся тонкая настройка псу под хвост может пойти.
 
Просто наткнулся на эффект и решил немного поразмыслить на эту тему.

А это не помогло?
Можно попробовать использовать ArrayCopySeries - если данные не обновлены GetLastError вернет ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления).
 
Можно попробовать использовать ArrayCopySeries - если данные не обновлены GetLastError вернет ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления).

Я думал это кто-то проверил уже. Можно использовать метод из Candid 12.11.06 17:51 с тем же принтом и включением/выключением терминала. Проверю в ближайшее время.
 
Просто наткнулся на эффект и решил немного поразмыслить на эту тему.

А это не помогло?
Можно попробовать использовать ArrayCopySeries - если данные не обновлены GetLastError вернет ERR_HISTORY_WILL_UPDATED (4066 - запрошенные исторические данные в состоянии обновления).


Похоже не помогает. Итак, вставка в код индикатора (вставлять можно в любой правильный) была такая:
if (shift<5) Print ("shift=",shift,", Bars=",Bars,", Time[shift]=",TimeToStr(Time[shift],TIME_DATE|TIME_MINUTES),", High[shift]=",High[shift],", Low[shift]=",Low[shift]);
ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_M1);
error=GetLastError();
if(error==4066) {
  Print("ERR_HISTORY_WILL_UPDATED");
} else {
  if (shift<5) Print(error);
}


Индикатор был повешен на М5. Терминал не выключался, просто была искусственно прервана на некоторое время связь. Лог демонстрирует обсуждаемый эффект, но никаких следов проблем с ArrayCopySeries нет.

2006.11.17 21:17:40	CZZ2 EURUSD,M5: shift=0, Bars=13120, Time[shift]=2006.11.17 20:15, High[shift]=1.2824, Low[shift]=1.2824
2006.11.17 21:17:40	CZZ2 EURUSD,M5: 0
2006.11.17 21:17:40	CZZ2 EURUSD,M5: shift=1, Bars=13120, Time[shift]=2006.11.17 19:50, High[shift]=1.2823, Low[shift]=1.282
2006.11.17 21:17:37	CZZ2 EURUSD,M5: 0
2006.11.17 21:17:37	CZZ2 EURUSD,M5: shift=0, Bars=13119, Time[shift]=2006.11.17 19:50, High[shift]=1.2823, Low[shift]=1.282
2006.11.17 20:55:31	CZZ2 EURUSD,M5: 0
2006.11.17 20:55:31	CZZ2 EURUSD,M5: shift=0, Bars=13119, Time[shift]=2006.11.17 19:50, High[shift]=1.2823, Low[shift]=1.282
Причина обращения: