MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 277

 
mila.com:
こんにちは。
最初のバーのMA価格と前の4つのバーのMA価格を比較するのを手伝ってください。価格が上昇し、その差がNより大きい場合は、バッファを埋める。私はこの方法を試しています。

どの価格が上昇したのか、MA?連続する各バー(バー上の値)に対して、あるいは4つのうちのどれに対しても上昇したか?

 
Aleksey Vyazmikin:

どの価格が上昇したのか、MA?その後の各バー(バー上の値)に対して相対的に上昇したのか、それとも4本のうちのどれかと相対的に 上昇したのか?

はい、どのバーにも。

条件:最初のバーのMAの値が、その前の4本のバーのいずれかのMAの値に対してNだけ増加している場合、バッファリングする。

MA の値が「N」ピップ上昇したことを知る必要があり、どの期間でも構わないのですが、限られたバーでの 比較以外には思いつきません。

 
mila.com:

はい、誰にでもです。

条件:最初のバーのMA線の値が、前の4本のバーのいずれかのMA線の値に対してNだけ増加した場合、バッファリングする。

MA値が "N "pips上昇したことを知りたいのですが、時間に関係なく、限られたバーで 比較する以外には思いつきません。


だから、なぜあなたは他のから1つのMAの値を減算し、デルタを見ていない - 安値にそれを比較し、なぜこれらのサイクル?

 
Aleksey Vyazmikin:

では、なぜ、一方のMA値を他方から引き、デルタを見ないのか - 最小値と比較し、なぜこのようなサイクルになるのか?

価格は数本のバーでゆっくりと変化し、1ピップずつ(観念的に)5番目はあなたが探している変化となることができます。

 
mila.com:

価格は複数のバーでゆっくりと変化することがあります。


そこで、4バー前のインジケータ値と現在の値を取って比較し、平均化期間が超浅くなければ、スムーズに増加する......というわけです。

 

それとも、異なる設定をしたインジケーターがあるのでしょうか?

 
Aleksey Vyazmikin:

そこで、4バー前のインジケータ値と現在の値を取って比較します。平均化期間が超浅くなければ、上昇はスムーズなのですが......。

あなたが探している違いは、2番目の小節にあるのかもしれませんが、あなたは1番目と4番目の小節を比較することを提案しています。

 
mila.com:

あなたが探している違いは、2本目の小節にあるのかもしれませんが、あなたは1本目と4本目を比較することを提案しています。


MAの平均化期間って何だろう......と思っていたら、休みが必要なのか。

 
mila.com:

MA指標は1つ。ループに協力してもらえるか?


もし私があなたの望みを正しく理解しているなら、ここにスクリプトがあります - それに対処してください。

#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int period_iMA=16;
input double N_=0.005;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double DeltaMA=0.0;
   int Nbar=0;
   for(int i=1;i<5;i++)
     {
      DeltaMA=iMAf(1)-iMAf(i);
      if(DeltaMA<0)DeltaMA=DeltaMA*(-1);
      if(N_-DeltaMA<0) {Nbar=i; break;}
     }
   Print("Бар привышения - ",Nbar);

  }
//+------------------------------------------------------------------+
double iMAf(int index)
  {
   return NormalizeDouble(iMA(Symbol(),0,period_iMA,0,0,0,index),Digits);
  }
//+------------------------------------------------------------------+

デルタを正の値にして、+か-で判断する必要がある場合は、if(DeltaMA<0)DeltaMA=DeltaMA*(-1); の行を削除して、(-と+の)比較用の定数を別に考慮 する。

 
Aleksey Vyazmikin: では、これが台本です、対処して ください。
ありがとうございました。