| / | Форум |
|
max_cpr
17.07.2006 15:30
Дошли руки наконец склепать простенький стенд для проверки
соответствия значений индикаторов в режиме тестирования и
в реале (имеется ввиду время, а не реальный счет :)
Выглядит это дело так: 1. Эксперт пишет потиковые значения котировок в файл, параллельно пишутся значения MA (можно и любой другой индикатор) в другой файл. 2. Из файла котировок делаем fxt файл, который подсовываем тестеру. 3. Запускаем тот же эксперт в тестере. 4. Экперт в тестере опять же пишет котировки и значения MA в раздельные файлики. 5. Сравниваем файлы значений тиков и MA в папках experts\files и tester\files Долго тестировать необходимости нет - достаточно поставить эксперт на M1 больше, чем на 100 минут - ибо тестер работает только при наличии > 100 баров. У меня по результатам тестирования значения файла с тиками совпадают один в один, а вот с MA - расходятся. Пример: Тики: Тестер: otm;ctm;open;low;high;close;volume;flag 17.7.2006 13:4:00;17.7.2006 13:4:18;1.2538;1.2538;1.2538;1.2538;1;1 17.7.2006 13:4:00;17.7.2006 13:4:25;1.2537;1.2537;1.2538;1.2537;1;1 17.7.2006 13:4:00;17.7.2006 13:4:42;1.2537;1.2536;1.2538;1.2536;1;1 17.7.2006 13:4:00;17.7.2006 13:4:58;1.2537;1.2536;1.2538;1.2537;1;1 Реал: otm;ctm;open;low;high;close;volume;flag 17.7.2006 13:4:00;17.7.2006 13:4:18;1.2538;1.2538;1.2538;1.2538;1;1 17.7.2006 13:4:00;17.7.2006 13:4:25;1.2537;1.2537;1.2538;1.2537;1;1 17.7.2006 13:4:00;17.7.2006 13:4:42;1.2537;1.2536;1.2538;1.2536;1;1 17.7.2006 13:4:00;17.7.2006 13:4:58;1.2537;1.2536;1.2538;1.2537;1;1 Значения MA: Тестер: otm, ctm, ma0_10; ma1_10; ma0_100; ma1_10 17.7.2006 13:4:00;17.7.2006 13:4:18;1.25387;1.2539;1.254011;1.25403 17.7.2006 13:4:00;17.7.2006 13:4:25;1.25386;1.2539;1.25401;1.25403 17.7.2006 13:4:00;17.7.2006 13:4:42;1.25386;1.2539;1.25401;1.25403 17.7.2006 13:4:00;17.7.2006 13:4:58;1.25386;1.2539;1.25401;1.25403 Реал: otm, ctm, ma0_10; ma1_10; ma0_100; ma1_10 17.7.2006 13:4:00;17.7.2006 13:4:18;1.25378;1.25376;1.253832;1.253851 17.7.2006 13:4:00;17.7.2006 13:4:25;1.25377;1.25376;1.253811;1.25383 17.7.2006 13:4:00;17.7.2006 13:4:42;1.25377;1.25376;1.253811;1.25383 17.7.2006 13:4:00;17.7.2006 13:4:58;1.25377;1.25376;1.253811;1.25383 Разница налицо... Текст эксперта для желающих: //+------------------------------------------------------------------+ //| tt.mq4 | //| Max | //| | //+------------------------------------------------------------------+ #property copyright "Max" #property link "" //---- input parameters extern int tt=0; int v = 0; string tfn, mfn; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { int fh; tfn = Symbol()+"_tick_log.csv"; mfn = Symbol()+"_ma_log.csv"; fh = FileOpen(tfn,FILE_READ|FILE_WRITE|FILE_CSV,";"); FileSeek(fh,0,SEEK_END); if (FileSize(fh)==0) FileWrite(fh,"otm;ctm;open;low;high;close;volume;flag"); FileClose(fh); fh = FileOpen(mfn,FILE_READ|FILE_WRITE|FILE_CSV,";"); FileSeek(fh,0,SEEK_END); if (FileSize(fh)==0) FileWrite(fh,"otm, ctm, ma0_10; ma1_10; ma0_100; ma1_10"); FileClose(fh); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ string ctm(){ int ct = CurTime(); return (TimeDay(ct)+"."+TimeMonth(ct)+"."+TimeYear(ct)+" "+ TimeHour(ct)+":"+TimeMinute(ct)+":"+TimeSeconds(ct)); } string otm(){ int ct = CurTime(); return (TimeDay(ct)+"."+TimeMonth(ct)+"."+TimeYear(ct)+" "+ TimeHour(ct)+":"+TimeMinute(ct)+":00"); } int start(){ int fh; double ma0_10, ma1_10, ma0_100, ma1_100; string od,cd; od = otm(); cd = ctm(); ma0_10 = iMA(NULL,0,10 ,0, MODE_SMA,PRICE_OPEN, 0); ma1_10 = iMA(NULL,0,10 ,0, MODE_SMA,PRICE_OPEN, 1); ma0_100 = iMA(NULL,0,100,0, MODE_SMA,PRICE_OPEN, 0); ma1_100 = iMA(NULL,0,100,0, MODE_SMA,PRICE_OPEN, 1); fh = FileOpen(tfn,FILE_READ|FILE_WRITE|FILE_CSV,";"); FileSeek(fh,0,SEEK_END); FileWrite(fh,od,cd,Open[0],Low[0], High[0], Close[0],1,1); FileClose(fh); fh = FileOpen(mfn,FILE_READ|FILE_WRITE|FILE_CSV,";"); FileSeek(fh,0,SEEK_END); FileWrite(fh,od,cd,ma0_10, ma1_10, ma0_100, ma1_100); FileClose(fh); return(0); } //+-------------------------------------------------------------+ Ссылку на утиль для преобразования в fxt дам по необходимости.. Буду рад, если кто-то воспроизведет тот же сценарий - тем же или другим способами, что и я.. Особенно буду рад, если результаты тестирования не совпадут с моими. |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
Integer
17.07.2006 19:23
А зачем проверять? Я например, как джентельмен наслово верю.
|
|
liveexpert
23.01.2008 17:51
Ну и где ответ разработчиков? проблема между прочим актуальная,
такая ботва практически со всеми встроенными результатами
отсюда и разница работы эксперта на реале и в тестере.
|
|
SK.
23.01.2008 20:59
liveexpert писал (а):
Ну и где ответ разработчиков? проблема между прочим актуальная, такая ботва практически со всеми встроенными результатами отсюда и разница работы эксперта на реале и в тестере.
|
3646 |
Renat
24.01.2008 02:26
SK. писал (а): А где доказательства? Человек просто задал вопрос без доказательной
базы.liveexpert писал (а):
Ну и где ответ разработчиков? проблема между прочим актуальная, такая ботва практически со всеми встроенными результатами отсюда и разница работы эксперта на реале и в тестере.
Первый вопрос в теме, описание условий и сам пример совершенно не подходят для доказательств. Соответственно, нет и реакции разработчиков. |
|
vaa20003
24.01.2008 10:11
Renat писал (а) : А где доказательства? Человек просто задал вопрос без доказательной базы. Первый вопрос в теме, описание условий и сам пример совершенно не подходят для доказательств. Соответственно, нет и реакции разработчиков. Ага! То что приводят результаты работы тестера (т.e фактический результат) - это все не доказательства. У меня, например, ЗигЗаг четко видит следующий перелом на другом ТФ!(а не только Close следующего бара) - но это тоже не доказательства. В принципе - зачем разработчикам парится. Тем более что интересы разработчиков и ДС совпадают (одним меньше работы - другим больше бабок). У меня все больше создается впечатление, что это все сделано специально(я про глюки) - только единицы смогут одновременно побороть терминал и рынок :) Это не обсужение и не притензия - так, крик души :) max_cpr дай ссылку на конвертер. |
|
komposter
24.01.2008 10:22
vaa20003 писал (а): В таком виде - нет. Пока есть только бездоказательные обвинения.
Ага! То что приводят результаты работы тестера (т.e фактический результат) - это все не доказательства. Я обычно против таких резких высказываний (со стороны разработчиков), а сейчас понимаю что без них не дойдет... |
|
timbo
24.01.2008 10:23
vaa20003 писал (а): Вот это не по-детски. Но на самом деле щупальца заговора тянутся
гораздо дальше! Настоящая параноя не должна останавливаться
на пол-пути!Ага! То что приводят результаты работы тестера (т.e фактический результат) - это все не доказательства. У меня, например, ЗигЗаг четко видит следующий перелом на другом ТФ!(а не только Close следующего бара) - но это тоже не доказательства. В принципе - зачем разработчикам парится. Тем более что интересы разработчиков и ДС совпадают (одним меньше работы - другим больше бабок). У меня все больше создается впечатление, что это все сделано специально(я про глюки) - только единицы смогут одновременно побороть терминал и рынок :) Все знают, что многие хорошие прибыльные советники через какое-то время перестают быть прибыльными и начинают бодро сливать. Почему? Расхожий ответ - "мол рынок изменился". Нифига! Это заговор метаквотов и ДЦ-ов. Сервера дилеров регулярно отсылают информацию на сервер метаквотов о прибыльных экспертах, и метаквоты одновляют свою программу таким образом, чтобы данный конкретный подход к трейдингу перестал работать, и рассылают автоматическое обновление для всех ДЦ. Т.е. ещё вчера прибыльный советник перестаёт приносить прибыль и уже никогда ни в одном ДЦ не будет прибыльным. Оставайтесь с нами и я расскажу страшную-престрашную историю про чёрный-пречёрный чемоданчик, что стоит в чёрной-пречёрной комнате... |
|
vaa20003
24.01.2008 10:44
timbo писал (а): Но я же не говорил что это так. Я описал свои ощущения. И привел
мотивы :) |
|
timbo
24.01.2008 11:25
vaa20003 писал (а): Это просто праздник какой-то... Что не сообщение, то перл достойный
Доски Почёта.Но я же не говорил что это так. Я описал свои ощущения. И привел мотивы :) Например так. vaa20003 это чудак на букву М. Я не утверждаю, что это так, а просто описываю свои ощущения. И даже могу привести мотивы. А теперь мы посмотрим, как vaa20003 будет отмываться и доказывать, что он не то самое... |
|
Prival
24.01.2008 11:52
Если допустим использовался вот этот сборщик тиков 'Построитель равнообъёмных баров' То могло произойти следующее 1. не совпадают массивы, т.е в тестере для расчета 1-го значения МА есть история, а для подсунутого массива истории нет (или она другая) 2. Как то не так произведен сбор. Но если все правильно, то это аналогично утверждению, что функция iMA(NULL,0,10 ,0, MODE_SMA,PRICE_OPEN, 0); При подстановке ей значений допустим 1 2 3 4 5, выдает ответ 3.8. А второй раз все тоже самое 1 2 3 4 5 но ответ другой допустим 3.81. И меня терзают смутные сомнения :-), что ошибка в 1 и 2 пунктах, а не iMA (). Иначе тут бы форум уже давно раскалился 70% индикаторов используют эту функцию. |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий