ジグザグインジケーターで抽出したボトムの折り返し点のみを抽出する方法は? - ページ 3

 
jackprobe:
ありがとう、デブリーズ。


そして、もしあなたが以下のようなものを入れたら

あなたのコードの中にあるものです.

 
ubzen:

以下はその結果です。上記のdeVriesの結果はチェックしていません(彼が投稿したときにやっていました)。


こんにちは、ubzenさん、あなたのコードは以下のように見えます。

if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift] この2行はどういう意味かわかりません。

この2行のコードを削除してもほとんど何も変わらないことがわかりますが、なぜこの2行を追加したのかがわかりません。

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_width1 1
#property indicator_color2 Yellow
#property indicator_width2 1

double Bottoms[];
double Toppers[];

int init()
{

   IndicatorBuffers(2);

   SetIndexStyle(0,DRAW_SECTION);
   SetIndexBuffer(0,Bottoms);
   SetIndexEmptyValue(0,0.0);

   SetIndexStyle(1,DRAW_SECTION);
   SetIndexBuffer(1,Toppers);
   SetIndexEmptyValue(1,0.0);

  IndicatorShortName("zz show top & bottom");
  return(0);
}

int deinit()
{
  return(0);
}

int start()
{
  int counted_bars=IndicatorCounted();
  int limit=0;
  limit = Bars-counted_bars;
  
  for(int shift=limit-1;shift>=0;shift--)
  {
    int ExtDepth=12; int ExtDeviation=5; int ExtBackstep=3;
    int ZigzagBuffer=0; int HighMapBuffer=1; int LowMapBuffer=2;
    
    Bottoms[shift]=iCustom(
        Symbol(),0,"ZigZag",
        ExtDepth, ExtDeviation, ExtBackstep,
        LowMapBuffer, shift
    );
    
    Toppers[shift]=iCustom(
        Symbol(),0,"ZigZag",
        ExtDepth, ExtDeviation, ExtBackstep,
        HighMapBuffer, shift
    );
    
    if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift];
    if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];
  }
  
  return(0);
}
 
vx0532:


こんにちは、ubzenさん、あなたのコードは以下のように見えます。

if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift] この2行のコードの意味がよく分かりません。

この2行のコードを削除してもほとんど何も変わらないので、なぜこの2行を追加したのかわかりません。


安値にライン、高値にラインのあるジグザグ線
 


EAに以下のようなコードを書いています。

しかし、履歴データでテストすると、「print」はすべて0と表示されるのですが、なぜでしょうか?

for(int shift=99;shift>=0;shift--)
  {
    int ExtDepth=12; int ExtDeviation=5; int ExtBackstep=3;
    int ZigzagBuffer=0; int HighMapBuffer=1; int LowMapBuffer=2;
    
    Bottoms[shift]=iCustom(
        Symbol(),0,"ZigZag",
        ExtDepth, ExtDeviation, ExtBackstep,
        LowMapBuffer, shift
    );
    
    Toppers[shift]=iCustom(
        Symbol(),0,"ZigZag",
        ExtDepth, ExtDeviation, ExtBackstep,
        HighMapBuffer, shift
    );
    if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift];
    if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];
 }
 
 shift=0;
 while(shift<100)
 {
 Print("Bottoms,Toppers:",Bottoms[shift]," , ",Toppers[shift]);
 shift++;
 }
 

1ページ前の私の投稿をお読みください。

deVries 2013.10.19 12:13 #

https://www.mql5.com/en/forum/144092/page2#854926


//+------------------------------------------------------------------+
//|                                              ZigZag practise.mq4 |
//|                                Copyright © 2012, Tjipke de Vries |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Tjipke de Vries"
#property link      ""

//---- input parameters  ZigZag
extern int ExtDepth=12;
extern int ExtDeviation=5;
 
deVries:

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

iCustom()の返り値を受け取るのに、EAのコードでは変数を使うしかないのですね。

あなたの説明では、"それは間違ったバッファであり、どのバーでトップまたはボトムになるかをiの値で見つけなければならない"ということです。

私の理解では、EAで配列x[i]を使ってiCustom()を受け取る場合、代入はOKですが、代入のバーが不確定です。

ということは、iCustom()は単純に値を返すだけでなく、他のものも返すということですね?

しかし、私はまだコードの意味を理解していない: "if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];"

 
vx0532:

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

iCustom()の返り値を受け取るのに、EAのコードでは変数を使うしかないのですね。

あなたの説明では、"それは間違ったバッファであり、どのバーでトップまたはボトムになるかをiの値で見つけなければならない"ということです。

私の理解では、EAで配列x[i]を使ってiCustom()を受け取る場合、代入はOKですが、代入のバーが不確定です。

ということは、iCustom()は単純に値を返すだけでなく、他のものも返すということですね?

しかし、私はまだコードの意味を理解していない: "if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift]; "


ZigZagインジケータからデータを取得するのに苦労している方

なぜあなたは私のコードの中にないものを説明することを望むのですか?

なぜあなたはのコードを研究しませんか?

//+------------------------------------------------------------------+
//|                                              ZigZag practise.mq4 |
//|                                Copyright © 2012, Tjipke de Vries |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Tjipke de Vries"
#property link      ""

//---- input parameters  ZigZag
extern int ExtDepth=12;
extern int ExtDeviation=5;

1ページ前にあるコード全体を研究してみてください...... https://www.mql5.com/en/forum/144092/page2#854926

このコードの動作が理解できれば、EAの同じメソッドを使用しているだけです。

 
  1. deVries: 全体のコードは、1ページ前にあります....
    1ページ前と言わず、その記事へのリンクを貼ってください。あなたの名前の右にある#記号(右クリック、リンクをコピー)1ページ後ろ です。
  2. vx0532: しかし、私はまだコードの意味を理解していない: "if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];"
    if(x> 0.1) x=x;」にどんな意味があると思う?何もありません。修正された コードには、後でこう書かれています。
        if(ZigZag[shift]>0.1 && Low[shift]==ZigZag[shift]) Bottoms[shift]=ZigZag[shift];
        if(ZigZag[shift]>0.1 && High[shift]==ZigZag[shift]) Toppers[shift]=ZigZag[shift];
    
 
WHRoeder:
  1. deVries: コード全体は1ページ前にあります......。
    1ページ前と言わず、正確な投稿へのリンクを貼ってください。あなたの名前の右にある#記号(右クリック、リンクをコピー) 1ページ後ろ です。
  2. vx0532: しかし、私はまだコードの意味を理解していない: "if(Bottoms[shift]>0.1) Bottoms[shift]=Bottoms[shift]; if(Toppers[shift]>0.1) Toppers[shift]=Toppers[shift];"
    if(x> 0.1) x=x;」にどんな意味があると思う?何もありません。修正された コードには、後でこう書かれています。

donehttps://www.mql5.com/en/forum/144092/page2#854926
 

親愛なる皆さん。

ZigZagとコードに関する素晴らしい議論をありがとうございました。私はこの議論に新しいスピンを加えたいと思います
私にとって、ZigZag
インジケータ(与えられた特定のパラメータの セットで)により計算された高値/安値を、その発生時間と共にテキストまたはcsvファイルに抽出できれば大きな価値があります
以下のようなものです。

- Day, Time, High-Value, High(Boolean)
- Day, Time, Low-Value, Low(Boolean)

これらの値を抽出して、MS Excelでさらに分析し、チャートにおける時間帯と振幅の
の発生確率を特定したいと思います。
最終的には、このデータからヒストグラムを作成し、固有の時間帯と
および固有のスイング振幅を特定することによって、チャートにおける値の「サイン」を示すことになります。

もしかしたら、私はここで車輪の再発明をしようとしているかもしれませんし、私がしたいこと(
)を行うコードがそこにあるかもしれません。もしそうでなければ、そのようなコードを開発することは価値があると思います。
私は毎日大量のチャートでこの種の分析を手動で行っています。
価値の本質的な特徴を知ることは、方向転換を予測するチャンスを大幅に向上させることがはっきりわかります。私の意見では、このプロセスは
簡単に自動化することができます... しかし、プログラミング経験のある人からの助けが必要です。
その結果、便利なインジケータか、あるいは重要な転換点で取引する自動MT4 EA (Expert Adviser)
ができるだろう。

ここで、共同作業に興味を持つ人が見つかるといいのですが。しかし、ZigZagインジケータからデータを抽出する方法について、いくつかのヒント
があれば、それも助かります。ありがとうございました。

- spjuliman

理由: