Всем, кто хотел видеть графики без пропущенных баров - сюда =) - страница 9

 
Я разобрался по какой причине разработчики запретили работу экспертов на офлайновых графиках.
Я думаю это связано с тем, что для офлайновых графиков Bid и Ask возвращают 0. То есть для экспертов, которые хотят открыться по рынку это невозможно. Но для моего эксперта, который работает исключительно с отложниками я придумал следующее решение проблемы. Меняем Bid и Ask на _Bid() и _Ask() с помощью автозамены. _MarketInfo() возвращает спред для инструмента, на которой происходит торговля.

int _MarketInfo(string symb_for_work)
{
   if(symb_for_work=="USDCHFm") return(4);
   if(symb_for_work=="CHFJPYm") return(5);
   if(symb_for_work=="GBPUSDm") return(3);
   if(symb_for_work=="USDCADm") return(5);
   if(symb_for_work=="USDJPYm") return(3);
   if(symb_for_work=="EURGBPm") return(4);
   if(symb_for_work=="AUDUSDm") return(4);
   if(symb_for_work=="EURCHFm") return(4);
   if(symb_for_work=="EURJPYm") return(5);
   if(symb_for_work=="EURUSDm") return(2);
   if(symb_for_work=="NZDUSDm") return(6);
   if(symb_for_work=="AUDJPYm") return(6);   
 
return(0);
}
 
double _Bid()
{
   return(Close[0]);
}
 
double _Ask()
{
   return(Close[0]+_MarketInfo(symbol_for_trade)*Point);
}
В общем думаю идея понятна. Судя по первым результатам работы доработанного эксперта ордера открываются нормально. Сейчас правда уже выходные и более детально буду тестировать когда начнётся торговля на следующей неделе. Думаю, что мне удастся довести до конца то, что хотелось бы получить изначально.
 
ИМХО, бред ...
Если разработчики увидели что "для офлайновых графиков Bid и Ask возвращают 0",
то что мешает им это исправить?
 

Ну офлайновые графики могут обновляться например достаточно редко. И за интервал обновления например за 1-2 минуты реальные Ask и Bid могут достаточно далеко уйти от того, что отображается в офлайновом графике. И RefreshRates() здесь совершенно не поможет. Ну наверное были ещё какие-то причины, кроме уже обнаруженной. Но на это только разработчики могут ответить.

 
solandr:

Ну офлайновые графики могут обновляться например достаточно редко. И за интервал обновления например за 1-2 минуты реальные Ask и Bid могут достаточно далеко уйти от того, что отображается в офлайновом графике. И RefreshRates() здесь совершенно не поможет. Ну наверное были ещё какие-то причины, кроме уже обнаруженной. Но на это только разработчики могут ответить.

Правильно, если график не обновлять, то Бид устареет.
Но и Close[0] тоже!

Нельзя использовать в торгующем советнике заведомо неправильные цены.
Используй MarketInfo( MODE_BID ) и MarketInfo( MODE_ASK ) для получения свежей цены )
 

Да в принципе при игре отложниками меня вполне устраивает и устаревший на несколько минут Close[0] ;o)
Я никуда не тороплюсь. Я даже ещё специально и "притормаживаю" ;o) работу советника по модификации отложников по следующему принципу:

1. Если текущая цена находится не ближе 50 пипсов от отложника, то модификация отложника экспертом разрешена только при необходимости подвинуть ордер не менее чем на 10 пипсов.
2. Если текущая цена находится в интервале 25...50 пипсов от отложника, то эксперт может двигать отложник только при необходимости подвинуть на 5 и более пипсов.
3. Если текущая цена ближе 25 пипсов к ордеру, то советник двигает отложники на 2 и более пипсов.

Такая схема позволила сократить количество передвижений отложников ну минимум раз в 5, если не более! :o) Получается в среднем от 0 (ночью) до 20 (во время новостей) передвижений в час на общую массу порядка 60 отложников (для 12 валют)! То есть в сутки набегает наверное примерно не более 200 подвижек, да и то не каждый день. В общем думаю, что при ручной торговле люди могут двигать ордера ещё больше, если в точности следуют какой-то определённой стратегии и играют на таком же количестве валютных пар! ;o)

 

komposter, ещё раз БОЛЬШУШЕЕ СПАСИБО за разработку эксперта, который сшивает дневные свечки воскресенья с понедельником!!!
Я уже месяц как работаю с Вашим скриптом на реале. Скрипт запускаю на обработку 19 валютных пар (все доступные на InterbankFX) по 600 дневных баров в каждой, установил время обновления графиков 1 минута. Всё работает без сбоев на процессоре VIA C3 800МГц!

Заметил одну небольшую фичу, я так предполагаю, что это фича уже терминала, а не эксперта, к которому у меня лично претензий нет! Когда работает эксперт и в Metaeditor я провожу компиляцию любого эксперта, который даже не подвешен на какой-либо из графиков, то происходит появление ошибки в логах терминала. При этом этот факт стабильно проявляется как на процессоре 800МГц, так и на P4 3ГГц и на Celeron 2ГГц. Билд 198. На 200 не пробовал, так как на InterbankFX какие-то проблемы с обновлением (Приглашение обновиться появляется, но билд не качается - но это уже не важно)
******************************
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileFlush
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteDouble
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileWriteInteger
2006.12.09 03:26:29 WithoutSunday_4: invalid handle -1 in FileSeek
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_AUDNZDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_NZDJPYm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_AUDCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_EURCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_EURAUDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
2006.12.09 03:26:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory( "WS_GBPCHFm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29 WithoutSunday_4: FileOpen - too many opened files
*****************************

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

А пишу я к Вам вот с какой просьбой. У меня работает по формируемым этим скриптом котировкам эксперт расчёта каналов линейной и параболической регрессий, упоминаемый выше в этой ветке. Расчёт регрессий базируется по усреднённым параметрам бара, то есть в качестве отсчёта берётся значение (O+H+L+C)/4. Но судя по моим длительным наблюдениям у меня имеются предположения, что данная модель отсчётов (O+H+L+C)/4 выбрана не совсем удачно. Стоп для ордера, открываемого на границе 95% доверительного интервала я ставлю на границу 99, 9%. Так вот присутствуют случаи, когда цена выходила за границу 99,9% доверительного интервала всего на несколько пипсов. При этом количество таких случаев выше допустимого значения согласно статистическим данным! Поэтому ОЧЕНЬ ХОТЕЛОСЬ БЫ ПРОВЕРИТЬ моё предположение о том, что если взять в качестве основы для расчётов модель по High и Close, то эта граница будет статистически обеспечена более точно. Эксперт очень громоздкий - 184кБ в файле mq4. В многих местах происходит обращение к котировкам. Если я стану корректировать эксперт под новую модель, то кроме того, что это достаточно трудоёмко, очень высока вероятность занесения ошибки в достаточно сложный расчётный алгоритм, который на мой взгляд уже неплохо обкатан и надёжно работает.

Поэтому я хотел бы Вас попросить доработать последний вариант скрипта таким образом, чтобы он из получаемых дневных свечек формировал котировки периода H12.
Бар H12, который открывается в 00:00, должен иметь значения O=H=L=C=Low исходного дневного бара.
Бар H12, который открывается в 12:00, должен иметь значения O=H=L=C=High исходного дневного бара.
Также эксперт должен иметь возможность менять местами эти значения. То есть Бар H12 в 00:00 = High исходного дневного бара, Бар H12 в 12:00 = Low исходного дневного бара.
Во время обновления графиков при работе риалтайм последний(-ие) бар(-ы) H12 текущего дня эксперт должен передавать без обработки, то есть с текущими значениями O,H,L,C для каждого бара H12.
Описанная обработка баров должна происходить лишь после закрытия дневной свечки, когда никаких больше изменений с барами H12 закрытого дня уже не произойдёт.
Если Вы сможете помочь доработать уже имеющийся скрипт согласно описанной методе, то это ОЧЕНЬ СИЛЬНО УСКОРИТ проверку модели High-Low в плане статистического анализа построения каналов. Обещаю представить результаты сравнений здесь. Думаю, что многим, интересующимся статистической обработкой данных, будет интересно с ними ознакомиться. Заранее БЛАГОДАРЮ!!!

 
solandr:

на InterbankFX какие-то проблемы с обновлением (Приглашение обновиться появляется, но билд не качается - но это уже не важно)

С новых реальных серверов в самом деле не обновляется. С демо сервером liveupdate коннектится без проблем.
 

Со своей стороны я попробую сначала проверить расчёт каналов только по High и только по Low по отдельности. Посмотрю результаты. Если каналы, получаемые по разным отсчётам, совпадают по длине, то наверное можно будет обойтись и без нового скрипта для периода H12. То есть для верхних границ каналов используем данные расчёта по High, а для нижних границ - данные по Low. А то вдруг я Вас зазря беспокою своими просьбами, если всё можно решить гораздо проще у себя в эксперте? Думаю, что это не трудно реализовать в моём эксперте.

 
komposter Тут проблемкау меня возникла, не подскажешь что подправить. Все подробности здесь http://forum.kimiv.ru/viewtopic.php?t=177
 
solandr:

Заметил одну небольшую фичу, я так предполагаю, что это фича уже терминала, а не эксперта, к которому у меня лично претензий нет! Когда работает эксперт и в Metaeditor я провожу компиляцию любого эксперта, который даже не подвешен на какой-либо из графиков, то происходит появление ошибки в логах терминала.

Извините, что долго не отвечал - только из отпуска...

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

А при следующем "старте" файлы открываются заново, но уже "не хватает места" (максимум 32 открытых файла).

Сам эксперт не совсем корректно обрабатывает эту ситуацию - даже если файл не открылся, он пытается туда писать данные.
Ошибку исправил - добавил одну строку =)
if ( HistoryHandle[curChart] < 0 ) continue;


Эксперта приложил.



По поводу графиков Н12. "Время есть а денег нет" - это не про меня =)
Хотя у меня тоже эти 2 величины связаны обратно-пропорционально - чем больше свободного времени, тем меньше денег, и наоборот.

Сейчас ну ни как не могу заниматься благотворительностью - очень много работы.
А ещё форума 5 страниц (*30 тем) не читано....
Файлы:
Причина обращения: