Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот файлы .gif, которые идут вместе с файлами .htm из предыдущего сообщения...
Также сегодня меня попросили предоставить установочный файл сборки 188...
Я искал этот номер сборки, но не нашел его... Я не помню, чтобы я делал сборку 188, может быть, и делал, но мне придется покопаться, чтобы найти ее... Я не знаю, что такого особенного, что кто-то попросил бы меня об этой конкретной сборке... Это была бы очень ранняя версия, если бы я ее делал... ....
Я буду продолжать искать...
Я забыл упомянуть, что я использую GGS3 на графике 1H и GGL3.01 на графике 30M.
Мне кто-то предложил, что если я смогу предоставить им установочный .exe для Build 188 терминала metatrader 4, то они сделают это за мои деньги. Я провел тестирование в билде 195, и у меня нет билда 188 для терминала... есть ли у кого-нибудь еще такой, которым вы могли бы поделиться?
Угадайте, в чем разница между этими двумя тестами?
Настройки? нет
Советник? нет
Стартовый депозит? нет
Диапазоны дат? нет
Валютная пара? нет
Нажимали ли вы кнопку пересчитать перед каждой сделкой? да.
Разница лишь в том, что прибыльная сделка была сделана сразу после того, как рынок открылся в воскресенье. А та, которая не принесла прибыли, была сделана сразу после закрытия рынка в пятницу.
Так скажите мне, почему бэктестеру должно быть все равно, открыт рынок или нет, когда он тестирует диапазон дат, который полностью хранится в центре истории?
Попробуйте следующее:
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) в начальном цикле. Что касается того, как сконструировать команду записи в файл, то вам придется разобраться с этим самостоятельно, я дал вам достаточно патронов для этого.
Почему бы вам просто не начать тестировать вашу систему, и таким образом вы сможете сверять ее с вашим бэктестом каждый день и видеть, как она работает?
Удачи.
Извините, но у меня сейчас нет времени возиться с вашим кодом. Вы должны вставить строку, которая записывает время, 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() из советника, я получаю ошибку... функция не определена... как будто ее там нет... но она там есть, ПРЯМО ЗДЕСЬ!!!! Почему все это невидимо для компилятора??????