そこで、私はゼロ除算を引き起こしている問題を見つけました。これが出てくるまで、自分のコードは完成していると思っていました。私のEAには3つのバリエーションがあります。1つは完璧に動作し、他の2つはこの部門で類似しています(以下のコード)。なぜこれがゼロディバイドを引き起こすのか、理解できません。
矢印のついたラインは、問題を起こしているラインを表しています。私はそれがここにこの問題であることを分離しましたか?それともAUDUSDのバックテストで異常が発生しているのでしょうか(Forex Tester 2から履歴データをダウンロードしています。私のEAの1つではうまく動作しているようです。)。
私は、あなたが問題を見つけたかどうか確信が持てません ... ... どうやってあなたが見つけたことを知るのですか?
私は、あなたが矢印で示したコードがゼロによる除算エラーを引き起こすとは思いません。
if(ema21 - H1_low > Point / 2) // << These parts here?
をこのように置き換えてください.
double HalfAPoint = Point / 2.0; if(ema21 - H1_low > HalfAPoint)
に置き換えて、もう一度試してみてください。
あなたのエラーは他の場所にあるため、残るのではないかと思います ... ...
問題が見つかったかどうかは分かりませんが ... ... どうして分かったのでしょうか?
あなたが矢印で示したコードがゼロによる除算エラーを引き起こすとは思えません。
をこれに置き換えてください.
に置き換えて、もう一度試してみてください。
私は、あなたのエラーは他の場所にあるので、残っていると思います。
私のEAの「V1-V2-V3」があります。
V1を新しい白紙のテンプレートにコピーして、上で説明した部分を(下のコード)に変更したところ、AUDUSDのバックテスト中にゼロディバイドエラーが 発生しました。データはゼロディバイドと関係あるのでしょうか?2001年から2013年までのEURUSDの全バージョンのEAのバックテスト(Forex TesterでデータをダウンロードしてSTでインポート)を行うと、どのEAもエラーにならないのですが?
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. }
私はちょうど他のペアを実行して、このゼロ除算の問題は、V2とV3で、そのAUDUSDを除いて表示されていないようです?データが関係ないのなら訂正してください。
私のEAの「V1-V2-V3」があります。
V1を新しい白紙のテンプレートにコピーして、上で説明した部分を(下のコード)に変更したところ、AUDUSDのバックテスト中にゼロディバイドエラーが発生しました。データはゼロディバイドと関係あるのでしょうか?2001年から2013年までのEURUSDの全バージョンのEAのバックテスト(Forex TesterでデータをダウンロードしてSTでインポート)を行うと、どのEAもエラーにならないのですが?
ここには読心術師はいません。あなたは割り算のコードを見せてくれないので、ここでは誰もあなたを助けることはできません。
私が聞いたのは素朴な疑問で、データは関係あるのでしょうか?もしそうでないなら、ゼロディバイドについて 経験者の話を聞いた方が理解できるのですが...。ここに読心術師がいるとは思わなかった...。
このサイトでは、コードが多すぎて、細かいディバイドをいちいち投稿できません。私としては、上で説明したことに問題を分離したつもりだったのですが、どうやらそうではないようです。ただ、1つの小さなことを変更したら、ゼロ除算になってしまい、うまくいかないのはちょっと不思議です(私が変更した小さなことは、最初の投稿で図解したものです)。
@RaptorUK だから本来は私のバックテスト中のデータの価格の異常かもしれない、その場合、AUDUSDで。ただ、V2とV3が1/4くらいは完璧に動いているのに、突然ゼロ除算になり、EAが一斉に動かなくなるのは少し変ですね。
@RaptorUK なので、本来は私のバックテスト中のデータの価格の異常かもしれませんが、その場合はAUDUSDで。ただ、V2とV3が1/4ほど完璧に動いていたのに、突然ゼロ除算になり、EAが一斉に動かなくなるのは少し変ですね。
この単純な問題を解決するのに何日もかけたいのなら、どうぞご自由に ... ....私はそうしません。
バックテスト中にいつ起こるかが分かれば、見つけるのは簡単です。... そう、それらすべてについて、除数を含む行の前にPrint()を追加して、除数と問題のコードの行への参照を表示します ... ....
例えば
if(d == 0.0) Print("a = c / d - divisor d is " + d ); a = c / d;
あなたのコードがゼロによる除算エラーで終了したとき、ログファイルをチェック し、最後のいくつかのプリントに、エラーを発生させたコード行とどの変数がゼロに設定されたかを示すプリントがあります ...
... 賢く働くことを学び、論理的かつ効率的に問題を追い詰めることができます。
おい、その通りだ!曖昧で悪かったな。
そして、あなたは学習しない - あなたはすべての(関連する)コードとあなたの変数の値を繰り返し要求されています。なぜ21回も質問する必要があるのでしょうか?あなたのコードにprint文を入れて、何や何だったかのようないくつかの情報を取得します。
それから、それでも問題が解決しない場合は、質問してください。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
そこで、私はゼロ除算を引き起こして いる問題を見つけました。これが出てくるまで、自分のコードは完成していると思っていました。私のEAには3つのバリエーションがあります。1つは完璧に動作し、他の2つはこの部門で類似しています(以下のコード)。なぜこれがゼロディバイドを引き起こすのか、理解できません。
矢印のついたラインは、問題を起こしているラインを表しています。私はそれがここにこの問題であることを分離しましたか?それとも、AUDUSDのバックテストで異常が発生しているのでしょうか (Forex Tester 2から履歴データをダウンロードしています。私のEAの1つでは問題なく動作しているようです。)