[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 282

 

皆さん、インジケーター(FX5_Divergence_V2.1.mq4)からEAにダイバージェンスシグナルを 取り込む方法を教えてください。

インジケーターのバッファ2、3はEMPTY_VALUEを出力する。

 
どなたか、tickの到着時間、asc、bidのようなtick履歴を 保存するtickコレクターを持っていませんか? コードベースには、ascなしのtickコレクターしかありません。
 
Sergey_Rogozin:

皆さん、インジケーター(FX5_Divergence_V2.1.mq4)からEAにダイバージェンスシグナルを 取り込む方法を教えてください。

インジケーターのバッファ2、3はEMPTY_VALUEを出力する。

私があなたの脚本を書いたのですか?すべてが詰まっているんです。Alertのメッセージ出力の代わりに、あなたの処理を書いてください。DoubleToString()でゼロを出力する場合、小数点以下6桁ではなく、8桁と書くことができます。いずれにせよ、信号は存在し、スクリプトはそれを読み取る。心と労力をかけてください。
 
artmedia70:
私が台本を書いたか?すべてが詰まっているんです。Alertでメッセージを出力するのではなく、処理を書いてください。DoubleToString()でゼロを出力する場合、小数点以下6桁ではなく、8桁と書くことができます。いずれにせよ、信号は存在し、スクリプトはそれを読み取る。心と労力をかけてください。
なんて頑固な人なんだろう。もう一度、指をくわえて説明してあげよう。
矢印のあるバッファの空値は、ゼロの代わりに、2147483647に等しい数値EMPTY_VALUEで 埋められる。矢印がある場合は、0.000031のように値が異なる。
比較すると2147483647という数字のように見えるので、プログラムで「空」の値をフィルタリングする必要があります。
例えば、私はこのようにやっていますが、うまくいっています。より賢い人が、より美しくすることができるのです。

double buy=iCustom(NULL,0,"FX5_Divergence_V2.1",2,CountBar);
// отфильтровывает значения EMPTY_VALUE, заменяя их на 0 
if(buy==EMPTY_VALUE) buy=0.0;
// теперь значения buy могут быть либо 0, либо значением стрелки, например, 0,000032
 
granit77:
なんて頑固な人なんだろう。もう一度、指をくわえて説明してあげよう。
矢印のあるバッファの空値は、ゼロの代わりに、2147483647に等しい数値EMPTY_VALUEで埋められます。矢印がある場合は、0.000031のように値が異なる。
比較すると2147483647という数字のように見えるので、プログラムで「空」の値をフィルタリングする必要があります。
例えば、私はこのようにやっていますが、うまくいっています。より賢い人が、より美しくすることができるのです。

これで、バッファ2と3は0しか出力しないと書く人が出てくるでしょう :)))

バッファの値がEMPTY_VALUEと 等しくない場合、このバー上に矢印があることを意味し、したがって、信号であることを意味します。
そして、この空虚な価値をどう見せるか、何と比較するかは、好みの問題である。

 
artmedia70:

ここは何もかもが血まみれだ...


島へ!!!:)

同じ数値(Expert Advisor経由)を持っているのに、DataウィンドウにEMPTY_VALUEと表示されるのです。これを解決する方法はありますか?


 
granit77:
頑固者。もう一度、指をくわえて説明してあげよう。
矢印のあるバッファの空の値は、ゼロの代わりに2147483647に等しい数値のEMPTY_VALUEで埋められる。矢印がある場合は、0.000031のように値が異なる。
比較すると2147483647という数字のように見えるので、プログラムで「空」の値をフィルタリングする必要があります。
例えば、私はこのようにやっていますが、うまくいっています。より賢い人が、より美しくすることができるのです。



を大まかに理解した。

 

artmedia70へ

本当にスクリプトが使えなかったんです。granit77 さんとほぼ同じことをやってみましたがこちらもうまく いきませんでした。

If(buy==EMPTY_VALUE) buy=0.0 ; - 結果は常に "0 "です。インジケータからアラートが出ますが、Expert Advisorに添付されたアラートが機能しません。

なるほど、ありがとうございます!これからも「苦しむ」ことにします.)

 
Sergey_Rogozin:

artmedia70へ

本当にスクリプトが使えなかったんです。granit77 さんとほぼ同じことをやってみましたがこちらもうまく いきませんでした。

If(buy==EMPTY_VALUE) buy=0.0 ; - 結果は常に "0 "です。インジケータからアラートが出ますが、Expert Advisorに添付されたアラートが機能しません。

なるほど、ありがとうございます!これからも「苦しむ」ことにします.)

って、もうインジケータを修正してるんですけどね(笑)))
 
todem:

同じ数字が(EA経由で)表示されるのですが、DataウィンドウにEMPTY_VALUEと表示されるのです!?これを解決する方法はありますか?

バッファの値を画面に出力するときは、どうするのですか?どうせ出力されるのは数値データなんだから。空の文字列、または「空の値」「EMPTY_VALUE」を出力したい場合は、文字列変数として出力してください。
すなわち
文字列val;
if(buffer value==EMPTY_VALUE)val="EMPTY_VALUE";
しかし、if(buffer value!=EMPTY_VALUE)val=DoubleToString(buffer value, 8);
で、バッファの値ではなく、変数valの 値を表示します。
例えば、こんな感じです。コメント(「Value = ",val」)。