после компиляции с #property strict советник тестируется только до 2012 года,а без #property strict нет ограничений с любой даты по любую..
- почему советник показывает разные результаты с компиляцией #property strict и без неё?
- Что это за crash
- Тестер стратегий, что то не так(
почему так может выходить?)
Смотрите журналы. Скорее всего, фатальная ошибка выскакивает в районе 2012-го года.
Возможно даже 21 декабря )))
Смотрите журналы. Скорее всего, фатальная ошибка выскакивает в районе 2012-го года.
Возможно даже 21 декабря )))
void time(){ tradetime=true; if(usetimefilter)if(checktime(summergmtshift,wintergmtshift,mondayfilter,mondayhour,mondayminute,weekfilter, starthour,startminute,endhour,endminute,tradesunday,fridayfilter,fridayhour,fridayminute))tradetime=false; } bool checktime(int summergmtshift,int wintergmtshift,bool mondayfilter,int mondayhour,int mondayminute,bool weekfilter, int starthour,int startminute,int endhour,int endminute,bool tradesunday,bool fridayfilter,int fridayhour,int fridayminute){ sum[2012-1999]=D'2012.03.28 02:00:00';win[2012-1999]=D'2012.10.31 03:00:00';sum[2011-1999]=D'2011.03.29 02:00:00';win[2011-1999]=D'2011.10.25 03:00:00'; sum[2010-1999]=D'2010.03.30 02:00:00';win[2010-1999]=D'2010.10.26 03:00:00';sum[2009-1999]=D'2009.03.29 02:00:00';win[2009-1999]=D'2009.10.25 03:00:00'; sum[2008-1999]=D'2008.03.30 02:00:00';win[2008-1999]=D'2008.10.26 03:00:00';sum[2007-1999]=D'2007.03.25 02:00:00';win[2007-1999]=D'2007.10.28 03:00:00'; sum[2006-1999]=D'2006.03.26 02:00:00';win[2006-1999]=D'2006.10.29 03:00:00';sum[2005-1999]=D'2005.03.27 02:00:00';win[2005-1999]=D'2005.10.30 03:00:00'; sum[2004-1999]=D'2004.03.28 02:00:00';win[2004-1999]=D'2004.10.31 03:00:00';sum[2003-1999]=D'2003.03.30 02:00:00';win[2003-1999]=D'2003.10.26 03:00:00'; sum[2002-1999]=D'2002.03.31 02:00:00';win[2002-1999]=D'2002.10.27 03:00:00';sum[2001-1999]=D'2001.03.25 02:00:00';win[2001-1999]=D'2001.10.28 03:00:00'; sum[2000-1999]=D'2000.03.26 02:00:00';win[2000-1999]=D'2000.10.29 03:00:00';sum[1999-1999]=D'1999.03.28 02:00:00';win[1999-1999]=D'1999.10.31 03:00:00'; if(TimeCurrent()<win[TimeYear(TimeCurrent())-1999] && TimeCurrent()>sum[TimeYear(TimeCurrent())-1999])gmtshift=summergmtshift; else gmtshift=wintergmtshift;
Я ж говорю - журналы. Хотя уже по коду видно, что происходит выход за пределы массивов win и sum. Проверки то никакой нет. Нельзя вот так в лоб подходить к индексации, запихивая туда вызов двух функций и не проверяя результат.
Я ж говорю - журналы. Хотя уже по коду видно, что происходит выход за пределы массивов win и sum. Проверки то никакой нет. Нельзя вот так в лоб подходить к индексации, запихивая туда вызов двух функций и не проверяя результат.
но без
#property strict
как сделать чтобы работало одинаково что с property strict,что без него?)
но без
#property strict
как сделать чтобы работало одинаково что с property strict,что без него?)
Для этого нужно писать без ошибок :)
Для этого нужно писать без ошибок :)
в данном коде стоит ведь ограничение по 2012 год..разве нет?)поэтому и не тестируется по 2012 год и дальше тест не идёт)
исправить разве данную ошибку в этом коде который прикрепил не видится возможным?)
в данном коде стоит ведь ограничение по 2012 год..разве нет?)поэтому и не тестируется по 2012 год и дальше тест не идёт)
исправить разве данную ошибку в этом коде который прикрепил не видится возможным?)
#property strict специально придумали, чтобы сильно бить по шаловливым ручкам тех кто бездумно работает с массивами, кто вызывает функции без проверки и тому подобное.
Повторю последний раз: пишите код грамотно, а не пуляйте индексы массивов в космос.
но без
#property strict
как сделать чтобы работало одинаково что с property strict,что без него?)
Раньше (без strict) терминал не обращал внимание на такие мелочи, как фатальная ошибка. Код попросту продолжал выполняться дальше с непредсказуемыми последствиями. Сейчас, благодаря директиве strict, такого можно избежать.
в данном коде стоит ведь ограничение по 2012 год..разве нет?)поэтому и не тестируется по 2012 год и дальше тест не идёт)
исправить разве данную ошибку в этом коде который прикрепил не видится возможным?)
Это не код, а лишь его часть. Ведь запустить его невозможно. Чтобы исправить что-либо, нужно запустить это у себя.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования