あなたが何をしようとしているにせよ、これはおそらく、それを得るための方法ではないでしょう。
Custiom indicators, experts and strategy testing' を見てください -- iCustomを使う方法を説明しました...
インジケータを変更して、データを取得するために2つのバッファを追加する必要があると思います。
低値は例えばLOWbuff[]です。
高値はHIGHbuff[]です。
もし、新しい高値(インジケータ内)があれば、今保存されている値と異なるかどうかをチェックします。
例えば、1.2815 ZigZag maxです。
バー1
バー2
バー3
...
barxの新しい値は、1.2755となります。
HIGHBUFF[1.2815,1.2815,...,1.2815,1.2755,1.2755... .] のような値になるはずです。
そして、Icustom(NULL,0, "ZigZag",3,0); を使えば、ほら!あなたの数字が出来上がりました。
というわけで、こんな感じです。
ゾレロ
Custiom indicators, experts and strategy testing' を見てください -- iCustomを使う方法を説明しました...
インジケータを変更して、データを取得するために2つのバッファを追加する必要があると思います。
低値は例えばLOWbuff[]です。
高値はHIGHbuff[]です。
もし、新しい高値(インジケータ内)があれば、今保存されている値と異なるかどうかをチェックします。
例えば、1.2815 ZigZag maxです。
バー1
バー2
バー3
...
barxの新しい値は、1.2755となります。
HIGHBUFF[1.2815,1.2815,...,1.2815,1.2755,1.2755... .] のような値になるはずです。
そして、Icustom(NULL,0, "ZigZag",3,0); を使えば、ほら!あなたの数字が出来上がりました。
というわけで、こんな感じです。
ゾレロ
zolero:
あなたが何をしようとしているにせよ、これはおそらく、それを得るための方法ではないでしょう。
Custiom indicators, experts and strategy testing' を見てください -- iCustomを使う方法を説明しました...
インジケータを変更して、データを取得するために2つのバッファを追加する必要があると思います。
低値は例えばLOWbuff[]です。
高値はHIGHbuff[]です。
もし、新しい高値(インジケータ内)があれば、今保存されている値と異なるかどうかをチェックします。
例えば、1.2815 ZigZag maxです。
バー1
バー2
バー3
...
barxの新しい値は、1.2755となります。
HIGHBUFF[1.2815,1.2815,...,1.2815,1.2755,1.2755... .] のような値になるはずです。
そして、Icustom(NULL,0, "ZigZag",3,0); を使えば、ほら!あなたの数字が出来上がりました。
というわけで、こんな感じです。
ゾレロ
いえいえ、実はよくわからないんです。 あなたが何をしようとしているにせよ、これはおそらく、それを得るための方法ではないでしょう。
Custiom indicators, experts and strategy testing' を見てください -- iCustomを使う方法を説明しました...
インジケータを変更して、データを取得するために2つのバッファを追加する必要があると思います。
低値は例えばLOWbuff[]です。
高値はHIGHbuff[]です。
もし、新しい高値(インジケータ内)があれば、今保存されている値と異なるかどうかをチェックします。
例えば、1.2815 ZigZag maxです。
バー1
バー2
バー3
...
barxの新しい値は、1.2755となります。
HIGHBUFF[1.2815,1.2815,...,1.2815,1.2755,1.2755... .] のような値になるはずです。
そして、Icustom(NULL,0, "ZigZag",3,0); を使えば、ほら!あなたの数字が出来上がりました。
というわけで、こんな感じです。
ゾレロ
ジグザグがどちらを向いているかをEAに認識させたいだけなんです。どのようにそれを行うために行くのでしょうか?
ジグザグインジケータがどちらを向いているかをEAに認識させたいだけです。どのようにすればよいでしょうか?
おそらく、最後の2つの値を知りたいのでしょう(ジグザグは常に値を持つわけではないので)。そこで、インジケータの最後の2つの値を読み取る必要があります:int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }zig -- 最後の値、zag -- その前の値
if(zag>zig)indicator shows down
if(zig>zag) indicator shows up
zolero
zolero:
もし(zag>zig)なら、インジケータは下を示す。
if(zig>zag) インジケータは上昇する。
ゾロ目
ありがとうございます。
ジグザグインジケーターがどちらを向いているかをEAに認識させたいだけです。 どのようにすればよいでしょうか?
おそらく、最後の2つの値を知りたいのでしょう(ジグザグは常に値を持つわけではないので)。 ですから、インジケータの最後の2つの値を読み取る必要があります。int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }ここで、zig -- 最後の値、zag -- その前の値、という2つの数値があります。
もし(zag>zig)なら、インジケータは下を示す。
if(zig>zag) インジケータは上昇する。
ゾロ目
c0d3:
テストした結果
もし(zag<zig)なら、インジケータは下に表示されます。
(zig<zag)であれば、インジケータは上昇します。
(zag>zig)と(zig>zag)では方向が逆になっていたのですが、それが正しいようです。
zolero:
もし(zag>zig)なら、インジケータは下を示す。
if(zig>zag) インジケータは上昇する。
ゾロ目
ありがとうございます。 ジグザグインジケーターがどちらを向いているかをEAに認識させたいだけです。 どのようにすればよいでしょうか?
おそらく、最後の2つの値を知りたいのでしょう(ジグザグは常に値を持つわけではないので)。 ですから、インジケータの最後の2つの値を読む必要があるのです。int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }zig -- 最後の値、zag -- その前の値。
もし(zag>zig)なら、インジケータは下を示す。
if(zig>zag) インジケータは上昇する。
ゾロ目
テストした結果
もし(zag<zig)なら、インジケータは下に表示されます。
(zig<zag)であれば、インジケータは上昇します。
(zag>zig)と(zig>zag)では方向が逆になっていたのですが、それが正しいようです。
c0d3:
私はチャート上ですでに最終ラインを見ていました。これは、最終ラインが下向き[または上向き]になっていたことを意味します。しかし、これを上下のシグナルとするには少し問題があります。 ジグザグは自分自身を描き直すことができる(そしてしばしばそうする)のです。それはおそらく上がるだろうが、いくつかの動きの後、新しいラインダウン(1.2900から1.2820まで)など、大きなチャンスがある。私が言いたいのは、チャート上に線があるからといって、その方向への動きが終わったとは限らないということです。
(zag>zig)と(zig>zag)で逆方向を与えていたのですが、その通りだと思います。
int n, i; double zag, zig;
i=0;
while(n<2)
{
if(zig>0) zag=zig;
zig=iCustom(NULL, 0, "ZigZag", 0, i);
if(zig>0) n+=1;
i++;
}
&nbint n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++;}sp;int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; } .......................1.......1......1.1.1......1.0
誤信号の意味を示すために、ジグザグのコードを少し修正した。「一枚の絵は千の言葉を語る」と言われるように...。
![](https://c.mql5.com/mql4/forum/2006/09/zigzag_modified.gif)
赤い線はオリジナルのジグザグで、下から上へ、そしてまた最高の瞬間に戻ってくる...少なくともこのように見える。しかし、もしあなたがEAをコーディングしているなら、EAは黄色い線に近いシグナルを得ることになります。
このコードは、次の線が引かれるまで、上か下の線を再描画し、赤い線が引かれるまで、黄色の線を段階的に変化させる(最大値と最小値を削除する)ものだ。
![](https://c.mql5.com/mql4/forum/2006/09/zigzag_modified.gif)
赤い線はオリジナルのジグザグで、下から上へ、そしてまた最高の瞬間に戻ってくる...少なくともこのように見える。しかし、もしあなたがEAをコーディングしているなら、EAは黄色い線に近いシグナルを得ることになります。
このコードは、次の線が引かれるまで、上か下の線を再描画し、赤い線が引かれるまで、黄色の線を段階的に変化させる(最大値と最小値を削除する)ものだ。
![MQL5 - MetaTrader 5クライアントターミナルにビルトインされたトレードストラテジーの言語](https://c.mql5.com/i/registerlandings/logo-2.png)
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
今のところ、こんな感じです。
ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);
チャートに線が引かれていますが、プログラムを実行するとZigZagHighとZigZagLowが共に0になってしまいます。
icustom関数でZigZagインジケータのトレンドを判断するにはどうしたらよいでしょうか?
ありがとうございます。