Итак, я нашел проблему того, что вызывает нулевое деление - я не видел этого раньше до сих пор. Я думал, что закончил работу над своим кодом, пока не появилось это! У меня есть 3 варианта моего советника. Один работает безупречно, два других похожи в этом отношении (код ниже). Я не могу понять, почему это может быть причиной нулевого деления?
Посмотрите на линии со стрелками, указывающими на линии, которые вызывают проблему... Я определил, что это именно эта проблема? Или это, или я получаю аномалию с бэктестом AUDUSD (я загружаю свои исторические данные из Forex Tester 2... кажется, он отлично работает с одним из моих советников).
Я не уверен, что вы нашли проблему... откуда вы знаете, что нашли?
Я не думаю, что код, который вы указали стрелкой, вызовет ошибку деления на ноль, чтобы быть уверенным, замените это ...
if(ema21 - H1_low > Point / 2) // << These parts here?
на это...
double HalfAPoint = Point / 2.0; if(ema21 - H1_low > HalfAPoint)
и попробуйте снова.
Я подозреваю, что ваша ошибка останется, поскольку она находится в другом месте...
Я могу обнаружить только одну проблему /раздел выше.
Деление на ноль не происходит из приведенной выше функции.
Если вы не хотите показывать все коды, тогда:
Отследите все проблемы с делением в ea, custom_indicators и включенных файлах.
Убедитесь, что выражение справа от / не может быть равно 0.
Добавлено:
И еще одно замечание, вам бы очень пригодилась функция ArraySort().
Если вы хотите узнать, является ли Daily_3 самым высоким/самым низким, создайте массив и отсортируйте.
Я не уверен, что вы нашли проблему... откуда вы знаете, что нашли?
Я не думаю, что код, который вы указали стрелкой, вызовет ошибку деления на ноль, чтобы быть уверенным, замените это ...
на это...
и попробуйте снова.
Я подозреваю, что ваша ошибка останется, поскольку она находится в другом месте...
У меня есть "V1-V2-V3" моего советника.
Я скопировал V1 в новый пустой шаблон и изменил часть, которую я проиллюстрировал выше, на (ниже код), и это дало мне ошибку деления нуля во время обратного тестирования на AUDUSD. Имеют ли данные какое-либо отношение к нулевому делению? Когда я запускаю обратный тест всех версий моего советника на EURUSD с 2001-2013 (Forex Tester загрузил данные и импортировал их в ST), я не получаю никаких ошибок ни на одном из моих советников?
PullBack_Bar = Time[1]; // << These parts here? } if(PullBack_Bar > triggerBarTime) // << These parts here? { H1_Buy_Touch = "H1 Buy Touch"; OrderEntry(0); // Pending order Buy Stop function is called. }
Я просто пробежался по другим парам, и эта проблема с нулевым делением, похоже, не проявляется, разве что на AUDUSD с V2 и V3? Поправьте меня, если данные не имеют к этому никакого отношения?
У меня есть "V1-V2-V3" моего советника.
Я скопировал V1 в новый пустой шаблон и изменил часть, которую я проиллюстрировал выше, на (ниже код), и это дало мне ошибку деления нуля во время обратного тестирования на AUDUSD. Имеют ли данные какое-либо отношение к нулевому делению? Когда я запускаю обратный тест всех версий моего советника на EURUSD с 2001-2013 (Forex Tester загрузил данные и импортировал их в ST), я не получаю никаких ошибок ни на одном из моих советников?
Здесь нет людей, читающих мысли. Вы не показали нам код с делением, поэтому никто здесь не сможет вам помочь.
Я лишь задал простой вопрос, имеют ли данные какое-то отношение к этому? Если нет, тогда я больше понимаю о нулевом делении от людей, которые имеют опыт с этим... Не думал, что здесь есть читающие мысли...
Здесь слишком много кода, чтобы постить здесь каждое маленькое деление. Что касается меня, я думал, что я изолировал проблему до того, что я объяснил выше, но, видимо, нет. Это просто немного странно, как я меняю одну крошечную вещь, а затем это не работает, потому что я получаю нулевое деление (маленькая вещь, которую я изменил, это то, что я проиллюстрировал в первом сообщении).
@RaptorUK так по сути это может быть аномалия в цене данных во время моего бэк-теста, в таком случае на AUDUSD. Просто немного странно, что V2 и V3 проходят примерно 1/4 пути безупречно, а затем внезапно наступает нулевое деление и советник перестает работать.
@RaptorUK, по сути, это может быть аномалия в цене данных во время моего бэк-теста, в таком случае, на AUDUSD. Просто немного странно, что V2 и V3 проходят примерно 1/4 пути безупречно, а затем внезапно наступает нулевое деление и советник перестает работать.
Если вы хотите потратить несколько дней на решение этой простой проблемы, то, конечно, не стесняйтесь.... Я бы не стал.
Если вы знаете, когда это происходит во время обратного тестирования, то это легко найти... начните обратное тестирование за день до даты, когда это произойдет... узнайте точно, с точностью до минуты, когда это произойдет... для всех делений в вашем коде... ... да, всех, добавьте Print() перед строкой, содержащей деление, которая выводит делитель и ссылку на соответствующую строку кода....
Например:
if(d == 0.0) Print("a = c / d - divisor d is " + d ); a = c / d;
Когда ваш код завершается с ошибкой деления на ноль, проверьте файл журнала, и в последних нескольких отпечатках будет выведена строка кода, которая привела к ошибке, и какая переменная была установлена в ноль ...
... учитесь работать умнее и искать проблемы логично и эффективно.
Эй, вы правы, извините за неясность!
И вы не учитесь - Вас неоднократно просили предоставить ВЕСЬ (релевантный) код и значения переменных. Почему мы все еще спрашиваем 21 пост спустя? Поместите операторы печати в ваш код и получите некоторую информацию, такую как что и было.
Затем, если вы все еще не можете решить свою проблему, спросите.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Итак, я нашел проблему того, что вызывает нулевое деление - я не видел этого раньше до сих пор. Я думал, что закончил работу над своим кодом, пока не появилось это! У меня есть 3 варианта моего советника. Один работает безупречно, два других похожи в этом отношении (код ниже). Я не могу понять, почему это может быть причиной нулевого деления?
Посмотрите на линии со стрелками, указывающими на линии, которые вызывают проблему... Я определил, что это именно эта проблема? Или это, или я получаю аномалию с бэктестом AUDUSD (я загружаю свои исторические данные из Forex Tester 2... кажется, он отлично работает с одним из моих советников).