ICustom機能 - ページ 15

 

2つのタイムフレームを同じバッファで取得するために、icustom関数を使用する例はありますか?

2つのタイムフレームのバッファが同じ名前なので、どのように異なるタイムフレームを決定することができますか?

現在のタイム フレーム

double trend = iCustom(NULL, 1, "HA01", 0, 1500, 0, 0);

上位のタイムフレーム

double trend = iCustom(NULL, 5, "HA01", 0, 1500, 0, 1);

 
このように試してみてください。
double trend1minute = iCustom(NULL, 1, "HA01", 0, 1500, 0, 0); double trend5minute = iCustom(NULL, 5, "HA01", 0, 1500, 0, 1);

そして、必要に応じて2つの変数を使用します(例: if (trend1minute == ... && trend5minute ==... ) do something)

mtuppers:
2つのタイムフレームを同じバッファで取得するために、icustom関数を使用する例はありますか?

2つのTFバッファが同じ名前なので、異なるタイムフレームをどのように判断すればよいのでしょうか?

現在のタイムフレーム

double trend = iCustom(NULL, 1, "HA01", 0, 1500, 0, 0);

上位のタイムフレーム

double trend = iCustom(NULL, 5, "HA01", 0, 1500, 0, 1);
 

iCustomをEAで使用する、シングルインスタンス

皆さん、こんにちは。

私はカスタムインジケータを 使用するためにEAを書くことに取り組んでいます、私がバックテストするとき、私はそれがiCustom関数に呼び出されるたびにインジケータの新しいインスタンスをロードするように見えることに気づいた。どなたか、カスタムインジケータを一度ロードし、それを連続的に参照する方法をご存知でしょうか?

void OnBar()

{

RSIPL = iCustom(NULL,0,"NCH_DI",0,4,BarIndex);

TSL = iCustom(NULL,0,"NCH_DI",0,5,BarIndex);

HAOpen = iCustom(NULL,0,"HeikenAshi",0,2,BarIndex);

HAClose = iCustom(NULL,0,"HeikenAshi",0,3,BarIndex);

PACHigh = iMA(NULL,0,5,0,MODE_SMMA,PRICE_HIGH,BarIndex);

PACLow = iMA(NULL,0,5,0,MODE_SMMA,PRICE_LOW,BarIndex);

// DO MY OTHER STUFF HERE

}

上記のコードでは、NCH_DIの新しいインスタンスを呼び出すたびにロードしています。

ありがとうございます。

 

できないこと

これがMT4の動作方法です。最良の解決策は、コード内のiCustom()呼び出しの数を最小限に抑えることです。HAは通常、新しいバーが形成されたときにのみ呼び出される必要があります。ティックごとに 呼び出すのは最適ではありません。

 
CodeMeister:
MT4はそのように動作します。最良の解決策は、コード内のiCustom()呼び出しの数を最小限に抑えることです。HAは通常、新しいバーが形成されたときにのみ呼び出される必要があります。ティック毎に呼び出すのは最適ではありません。

私は新しいバーフォーメーションにすべてのコールを設定しています。NCH_DIは、残念ながら、比較的メモリを消費するコードです。古いインスタンスをダンプする方法について、何か提案はありますか?

 

これを試す

ストラテジーテスターは、このEAの最終目標ではありません。チャート上でライブに動作させることが目的です。iCustom()の読み込みは、十分なメモリがあればチャート上で一度だけ行われると思いますので、Strategy Testerの特殊性に合わせて何かを作ることに多くの時間を費やすことはないでしょう。iCustom()の他の選択肢としては、EAに直接インジケータをコーディングすることです。

 

EAに再コード化することも考えたのですが......。今回はそれが現実的でないと判断しました。インジケーターの#property indicator_separate_windowを コメントアウトすると、呼び出しが完了した時点でロードとアンロードが行われることがわかりました。ありがとうございます。

 

iCustom Indicatorの 不具合について

こんにちは。

私のEAはiCustomで独自のインジケータを使用しています。

新しいローソク足が始まると、iCustomによってインジケータが呼び出されます。

今、iCustom[1]の値が前のバーのiCustom[0]と同じでないことに気づきました。

iCustom[1]の値は前のバーのiCustom[0]と同じですが、RSIなどで確認した値と全く同じというわけではありません。

どこに原因があるのでしょうか?

すべてのヒントをありがとうございました。

カミロ

 

カスタムインジケータが 使用している価格に依存します。もしカスタムインジケータが終値、高値、安値、または現在のローソク足の展開中に変化する他の価格を使用している場合、[0]インデックスの値は変更されます。

例えば、カスタム価格を使用しているインジケーターを呼び出し、[0]の値を比較し、バーが閉じた後に[1]の結果と比較すると、卵は卵なので、値が異なることはほぼ間違いないでしょう。しかし、カスタムインディケータをクローズではなく、オープン価格を使うように設定した場合、その値は等しくなります(オープン価格はローソク足の展開中に変化しないためです)。

 

Kalenzoさん、ありがとうございます。

私は[2]の値をチェック し、[1]→[2]についてはすべて大丈夫そうだと気づきました。

ここに私のインジケータの値の例があります。

.... [0]..........[1].........[2]

t4 31,8711 42,6700 52,1915

t3 44,6881 52,1915 60,3014

t2 53,0572 60,3014 67,6553

t1 59,8860 67,6553 74,5797

ということで、バーのオープニングの識別が問題のようです。

以前、チェックしたように使っているだけです。

if(Volume[0]>1)リターン。

というチェックをしているのですが、これでいいのでしょうか?