Гогеттер Е.А. - страница 14

 

Вот файлы .gif, которые идут вместе с файлами .htm из предыдущего сообщения...

Также сегодня меня попросили предоставить установочный файл сборки 188...

Я искал этот номер сборки, но не нашел его... Я не помню, чтобы я делал сборку 188, может быть, и делал, но мне придется покопаться, чтобы найти ее... Я не знаю, что такого особенного, что кто-то попросил бы меня об этой конкретной сборке... Это была бы очень ранняя версия, если бы я ее делал... ....

Я буду продолжать искать...

Файлы:
ggl3-01.gif  6 kb
ggs3wrsi.gif  9 kb
 

Я забыл упомянуть, что я использую GGS3 на графике 1H и GGL3.01 на графике 30M.

Мне кто-то предложил, что если я смогу предоставить им установочный .exe для Build 188 терминала metatrader 4, то они сделают это за мои деньги. Я провел тестирование в билде 195, и у меня нет билда 188 для терминала... есть ли у кого-нибудь еще такой, которым вы могли бы поделиться?

 

Угадайте, в чем разница между этими двумя тестами?

Настройки? нет

Советник? нет

Стартовый депозит? нет

Диапазоны дат? нет

Валютная пара? нет

Нажимали ли вы кнопку пересчитать перед каждой сделкой? да.

Разница лишь в том, что прибыльная сделка была сделана сразу после того, как рынок открылся в воскресенье. А та, которая не принесла прибыли, была сделана сразу после закрытия рынка в пятницу.

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

Файлы:
 
Maji:
Попробуйте следующее:

int handle;

int init()

{

handle=FileOpen(EAName+"_"+Symbol()+".txt", FILE_CSV|FILE_WRITE, ';');

return(0);

}

int deinit()

{

FileClose(handle);

return(0);

}

Start()

{

.....

FileWrite(handle, TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS), iOpen... ); //declare them as variables and then insert them in the file write routine

[/PHP]

Also, remember to put the routine where it is updated once every bar not every tick. Now you got enough ammo, and figure out the rest

Good luck.

так, у меня получилось вот это ....

[PHP]int handle; //печатать в файл

//+------------------------------------------------------------------+

//| функция инициализации эксперта |

//+------------------------------------------------------------------+

int init()

{

BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

handle=FileOpen(EAName+"_"+Symbol()+".txt", FILE_CSV|FILE_WRITE, ';');//печать в файл

return(0);

}

//+------------------------------------------------------------------+

//| функция деинициализации эксперта |

//+------------------------------------------------------------------+

int deinit()

{

FileClose(handle);//печать в файл

return(0);

}

//+------------------------------------------------------------------+

//| функция запуска эксперта |

//+------------------------------------------------------------------+

int start()

{

Я не знаю, как/где завершить это направление...

...." FileWrite(handle, TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS), iOpen... ); //объявляем их как переменные и затем вставляем в процедуру записи файла."

 

Maji сказал: ...поместите процедуру туда, где она обновляется раз в бар, а не каждый тик.

Кто-нибудь может показать мне, где это? Несмотря на мою иногда возникающую манию компетентности, я действительно ничего не понимаю в этом.

 

Извините, но у меня сейчас нет времени возиться с вашим кодом. Вы должны вставить строку, которая записывает время, open и т.д. как раз там, где ваша система обновляется на новом баре. Пока что, почему бы просто не вставить эту строку перед return(0) в начальном цикле. Что касается того, как сконструировать команду записи в файл, то вам придется разобраться с этим самостоятельно, я дал вам достаточно патронов для этого.

Почему бы вам просто не начать тестировать вашу систему, и таким образом вы сможете сверять ее с вашим бэктестом каждый день и видеть, как она работает?

Удачи.

 
Maji:
Извините, но у меня сейчас нет времени возиться с вашим кодом. Вы должны вставить строку, которая записывает время, open и т.д. как раз там, где ваша система обновляется на новом баре. Пока что, почему бы просто не вставить эту строку перед return(0) в начальном цикле. Что касается того, как построить команду filewrite, это вы должны будете выяснить сами, я дал вам достаточно патронов, чтобы сделать это .

Почему бы вам просто не начать тестировать свою систему, и таким образом вы сможете сверять ее с бэктестом каждый день и видеть, как она работает?

Удачи.

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

Я тестирую вперед. То есть я тестировал, пока мой демо-счет не взорвался в выходные на День труда, он не истек, он просто был закрыт вместе со всеми остальными демо-счетами. Сегодня утром мне пришлось открывать новый заново... не знаю, почему они все были удалены. Я этого не делал. Наверное, какая-то межбанковская анамолия.

 

Допустим, для аргументации я сделаю это и докажу, что он не использует одни и те же данные каждый раз, несмотря на то, что ему говорят об этом, или что он обрабатывает данные по-разному, или что-то еще, тогда что?

У меня есть другие тесты стратегий, которые, похоже, не используют одни и те же диапазоны дат или целые диапазоны дат, когда я им это говорю. Что я или кто-либо другой может с этим сделать? Я думаю, можно предположить, что и у других людей есть подобные нарушения, но что с этим можно сделать?

На данный момент мне это не кажется тестером стратегии. Скорее, как тизер стратегии, потому что я не вижу способа действительно контролировать или стабилизировать его компиляцию/обработку. Он обрабатывает только частичные диапазоны дат, когда существуют полные файлы данных для всего указанного диапазона. Не похоже, чтобы он был на 100% последовательным. Я не знаю, что делать, чтобы исправить это, даже если бы я доказал его несоответствия. Он больше похож на колесо рулетки, чем на инструмент для точного тестирования.

 

ненужный пост

 

вот моя скитома...я не могу понять почему в вышеуказанном включаемом файле https://www.mql5.com/en/forum/general

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

Функция "StoreHighsAndLows" не является ссылочной и будет удалена из exp-файла

Функция "GetPastEquity" не упоминается и будет удалена из exp-файла

Функция "StoreAccountEquity" не ссылается и будет удалена из exp-файла

Функция "CountTrades" не является ссылкой и будет удалена из exp-файла

Функция "CloseOrder" не ссылается и будет удалена из exp-файла

но он вообще не видит IncreaseLots().

Как будто ее не существует....

Чем IncreaseLots() отличается по структуре от других функций, которые он может видеть.

он объявляет функцию, затем у него есть

{

бла

бла

бла

return();

}

что еще должно быть у функции? Это все, что есть у других!!!!

Когда я вызываю IncreaseLots() из советника, я получаю ошибку... функция не определена... как будто ее там нет... но она там есть, ПРЯМО ЗДЕСЬ!!!! Почему все это невидимо для компилятора??????