ICustom機能 - ページ 4

 
TheRumpledOne:
もし、それが「ジャンク」なら、なぜ全く投稿しないのでしょうか?

私も似たようなことを思っていました...。

 

iCustomについて一つ質問です。

iCustomのコマンドでLineとShiftの変数について、説明と例を教えてください。

ありがとうございます。

 
matrixebiz:
iCustomについて一つ質問です。

iCustomコマンドのLine変数とShift変数について、説明と例を教えてください。

ありがとうございます

iCustom - MQL4 ドキュメント

mode- ラインインデックス。0から7で、SetIndexBuffer 関数のいずれかで使用されるインデックスと一致しなければなりません。shift- インジケータバッファから取得した値のインデックス(現在のバーから一定期間前に相対的にシフト)。

MODEを使用して、どのようなバッファを使用するかを指定します。 例えば、抵抗線にバッファ0(MODE=0)を使用し、支持線にバッファ1(MODE=1)を使用することができます。

SHIFTは、iCustomから呼び出されたインジケータのBar(SHIFT)の値を使用するように言っています。

これって役に立ちますか?

 
TheRumpledOne:
iCustom - MQL4 ドキュメント

mode- 行のインデックス。0から7で、SetIndexBuffer 関数のいずれかで使用されるインデックスと一致しなければなりません。shift- インジケータバッファから取得した値のインデックス(現在のバーから一定期間前に相対的にシフトします)。

MODEを使用して、どのようなバッファを使用するかを指定します。 例えば、抵抗線にバッファ0(MODE=0)を使用し、支持線にバッファ1(MODE=1)を使用することができます。

SHIFTは、iCustomで呼び出されたインジケータのBar(SHIFT)の値を使用するように言っています。

これで解決?

OK、Shiftはわかったけど、Modeについてはもっと読まないといけないね。

コーディングしますか?私は私のEAから呼び出すこの指標を持っていますが、それを正しく設定する方法がわからない。写真を見てください。

それはちょうど2つのラインを持っており、青が変化し、他のラインと並ぶと、Long信号が生成されます(赤と同じ考え)。

VQインジケータで使用したコードのように、いくつかの異なるコードを試してみました。

double Entry1 = iCustom(NULL, 0, "VQ", 24, 30...., 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", 24, 30......, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", 24, 30......, 1, 2)。

double Down2 = iCustom(NULL, 0, "VQ", 24, 30......, 2, 2)です。

ただ、うまく取引できません。

ありがとうございます。

ファイル:
ci.jpg  66 kb
 
matrixebiz:
OK、Shiftを取得し、モードについてもっと読む必要があります。

コーディングはしていますか?私は私のEAから呼び出すこのインジケータを持っていますが、それを正しく設定する方法がわかりません。写真を見てください。

これは2本の線があり、青が変化してもう一方の線と並ぶと、Longシグナルが発生します(赤も同じ考え方です)。

VQインジケータで使用したコードのように、いくつかの異なるコードを試してみました。

double Entry1 = iCustom(NULL, 0, "VQ", 24, 30...., 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", 24, 30......, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", 24, 30......, 1, 2)。

double Down2 = iCustom(NULL, 0, "VQ", 24, 30......, 2, 2)です。

ただ、正しく取引できていない。

感謝

一番下の「#MTF CI」という名前のインジケータのことでしたら、おそらくそのインジケータには、各ラインの2色にそれぞれ1つずつ、計4つのバッファがあるのではないかと思います。データウィンドウ(ctrl-D)を表示して、インジケータがどのバッファを持っているか、またそのインデックス(iCustomコールの MODE引数)を確認することができます。

 
matrixebiz:
OK、私はShiftを取得し、モードについてもっと読まなければならないでしょう。

コーディングしてますか?

ありがとうございます。

私はこれまで、インジケーターの1つや2つ(何百個も)コーディングすることで知られてきました...笑

 
ralph.ronnquist:
一番下の「#MTF CI」という名前のインジケータのことでしたら、おそらくそのインジケータには4つのバッファがあり、各行の2色にそれぞれ1つずつあるのだと思われます。データウィンドウ(ctrl-D)を表示させれば、どのバッファを持っているか、インデックス(iCustomコールのMODE引数)を確認することができます。

はい、その通りです。これらをiCustomしてTradeを作成するにはどうすればよいのでしょうか?

他の2つ(QQEA 4バッファとVQ 2バッファ)が動作している場合、私はこれを使用しています。

double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);

double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);

double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);

double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);

double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);

//購入

qqe0_0>qqe1_0 && qqe0_1Entry2 && ....

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

ファイル:
data.jpg  24 kb
 
matrixebiz:
そうだ、これをiCustomしてTradeを作成するにはどうすればいいんだ?

動作している他の2つ(QQEA 4バッファとVQ 2バッファ)については、次のように使っています。

double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);

double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);

double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);

double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);

double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);

//購入

qqe0_0>qqe1_0 && qqe0_1Entry2 && ....

ラルフさん、ありがとうございます。

一般に、複数の色を持つインジケータ・ラインを見た場合、それは通常、複数のバッファで実装されています。バッファのインデックスは、データウィンドウで確認することができます。バッファに値があるとプロットされます(LINE描画スタイルの場合は2つ以上の連続した値が必要です)。

もしインジケーターのソースコードがあれば、それを覗いて、SetIndexBuffer関数の 呼び出しからバッファのインデックスを学ぶ方が簡単な場合があります。

また、インジケータはディスプレイに「オブジェクト」を描画することがありますが、これらはiCustomコールでアクセスすることはできません。その代わり、「オブジェクト名」を知っている必要があり、そのプロパティを読み取ることができます。

したがって、どのインジケータ・バッファから読み取るかを常に明確にし、そのインデックスをiCustomの2番目の最後の引数として使用する必要があります。

例えば、VQインジケータの使用は、(私が見たソースによると)そのバッファ[1]と[2]はそれぞれ緑と赤のラインに使用され、それらが両方とも空ではないケースは決してないので、全く正しくないと思われます。つまり、「Up2==Down2」は、両方が「空」である場合、つまりVQ線が緑でも赤でもなく、黄色である場合を除き、常に偽となるのです。

それは別として、あなたのやり方は正しいと思います。もちろん、変数名の選択について議論することは可能ですが、それは学術的なことです。iCustomコールで目的の値を選び、取引条件の中で特定の要求値の関係を表現するのが正しいやり方です。

 
ralph.ronnquist:
一般的に、複数の色を持つインジケータがある場合、それは複数のバッファで実装されています。バッファのインデックスはデータウィンドウで確認することができ、一番上のバッファのインデックスは0であり、下に向かって増えていきます。バッファは値を持つと描画されます (LINE描画スタイルの場合は、2つ以上の連続した値を必要とします)。

インジケーターのソースコードがあれば、それを覗いて、SetIndexBuffer関数の呼び出しからバッファのインデックスを学ぶ方が簡単な場合があります。

また、インジケータは「オブジェクト」を表示することがありますが、これらはiCustomコールでアクセスすることはできません。その代わり、「オブジェクト名」を知っている必要があり、そのプロパティを読み取ることができます。

したがって、どのインジケータ・バッファから読み取るかを常に明確にし、そのインデックスをiCustomの2番目の最後の引数として使用する必要があります。

例えば、VQインジケータの使用は、(私が見たソースによると)そのバッファ[1]と[2]はそれぞれ緑と赤のラインに使用され、それらが両方とも空ではないケースは決してないので、全く正しくないと思われます。つまり、「Up2==Down2」は、両方が「空」である場合、つまりVQラインが緑でも赤でもなく、黄色である場合を除き、常に偽となるのです。

それは別として、あなたのやり方は正しいと思います。もちろん、変数名の選択について議論することは可能ですが、それは学術的なことです。iCustomコールで目的の値を選び、取引条件の中で特定の要求値の関係を表現するのが正しいやり方です。

残念ながら、私は上に挙げた3つのインジケータのソースを持っていません。もし、各インジケータの色が変わる瞬間にのみ、買いか売りの条件をチェック させたい場合、どのようにコードを書けばいいでしょうか?

ありがとうございます。

 

ソースの不足は問題ではありません。画像の中のインジケータウィンドウ2に注目してみましょう。4つのバッファを持つインジケータが表示されています。インジケーターの上でマウスを左右に動かせば、どのバッファがどの色に使われているかが分かります。

ここでは、1番目のバッファ([0])が上の行の青色表示、2番目のバッファ([1])が上の行の赤色表示、同様に[2] と [3] が下の 行の青と赤だと仮定しましょう。そうすると、次のようにインジケータを読み出すことができます。

double top_is_blue = iCustom( ..., 0, 1 );

double top_was_blue = iCustom( ..., 0, 2 );

double top_is_red = iCustom( ..., 1, 1 );

double top_was_red = iCustom( ..., 1, 2 );

double bot_is_blue = iCustom( ..., 2, 1 );

double bot_was_blue = iCustom( ..., 2, 2 );

double bot_is_red = iCustom( ..., 3, 1 );

double bot_was_red = iCustom( ..., 3, 2 );

[/PHP]

Then you can summarise them as follows:

[PHP]bool top_goes_blue = ( top_is_blue == top_was_red );

bool top_goes_red = ( top_is_red == top_was_blue );

bool bot_goes_blue = ( top_is_blue == top_was_red );

bool bot_goes_red = ( top_is_red == top_was_blue );

bool both_go_blue = ( top_goes_blue && bot_goes_blue );

bool both_go_red = ( top_goes_red && bot_goes_red );

どうするかは、何を求めるかによります。特に

特に、2つの行の非同時的な読み取りを組み合わせたい場合は、より複雑なコーディングになるかもしれません。例えば、boolean変数 "both_go_blue "は、2本の線の同時読み取りを意味し、「片方の線が青くなり、少し遅れてもう片方も青くなる」ことは捕らえられない。