どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 852

 
複数のバーの中からHigh[]の最大 値を見つけるにはどうすればよいですか?
 

mql4の新機能CopyHighと 数学関数MathMaxを 使用するのがベストです

またはiHighest

 

おはようございます、間違いの箇所を教えてください。

/////////////////////////////////////////////////////////////////////////////////////////////////////

  //////////////////////////////////Зона консолидации/////////////////////////////////////////////////

  ///////////////////////////////////////////////////////////////////////////////////////////////////

  if(Hour()>=10)

  {

   for(x9=2; x9<=5; x9++)

   {

    x10=Hour()-x9;//x10 -номер свечи от которой считаем восемь свечей назад

    if(x10>=0)

    {

     int Minn=iLowest(NULL, PERIOD_H1, MODE_LOW , x10+8, x10);

     int Maxx=iHighest(NULL, PERIOD_H1, MODE_HIGH, x10+8, x10);

     z11 =iHigh(NULL,PERIOD_H1,Maxx);

     z12 =iLow(NULL, PERIOD_H1,Minn);

     ZPB     =iTime(NULL,PERIOD_H1,x10+8);

     ZPB1     =iTime(NULL,PERIOD_H1,x10);

     if(z11-z12<=z10)

     {

      y4=ObjectCreate("Зона консолидации",OBJ_RECTANGLE,0,0,0,0,0);

      y4=ObjectSet("Зона консолидации",OBJPROP_WIDTH,2);

      y4=ObjectSet("Зона консолидации",OBJPROP_COLOR,Blue);

      y4=ObjectSet("Зона консолидации",OBJPROP_BACK,true);

      y4=ObjectMove("Зона консолидации",0,ZPB,z11);

      y4=ObjectMove("Зона консолидации",1,ZPB1,z12);

     }

    }

   }

  }

  ////////////////////////////////////////////////////////////////////////////////////////////////////

アイデアは、各反復でコードがチャンネル幅をチェックし、それが現在の値(z11-z12<=z10)以下であれば、矩形を描くべきであるということですが、出力は、すべての反復が最初に渡され、その後、整合性のチェックがあります。
 
AlexeyVik:

mql4の新機能CopyHighと 数学関数MathMaxを 使用するのがベストです

またはiHighest

CopyHigh ならArrayMaximum、IMHOなら...。
 

エラー番号1(ERR_NO_RESULT エラーなし、ただし結果は不明)に対する対処方法を教えてください。

EURUSDで 1ドル(0.01ロットで100ピップ)以上損失している注文がある場合、Expert Advisorは注文を修正しようとします(注文のTakeProfitをそのオープンプライスに配置します)。

このエラーが表示されます。

 
evillive:
CopyHigh ならArrayMaximum、IMHOなら...。
ああ、そういうことだったのか......。多少のズレや誤解があるかもしれません。1ヶ月半ほど前、第5回フォーラムで同じ質問がありました。そこでArrayMaximumの話をしたのですが、ここでちょっとごちゃごちゃになってしまって......。
 

こんにちは、私は2000本の移動平均(MA)を使って仕事をしています。

タスクは、Close[1]でのMA価格の繰り返し回数を計算することです。

- この作業を最小限のリソースで実施するにはどうしたらいいのか。

 
Top2n:

こんにちは、私は2000本の移動平均(MA)を使って仕事をしています。

タスクは、Close[1]でのMA価格の繰り返し回数を計算することです。

- この作業を最小限のリソースで実施するにはどうしたらいいのか。

Close 価格で period 1 を使用しない場合、繰り返し回数は 0 回となります。しかし、ある範囲に入ることを考えれば、その課題は解決可能であり、より興味深いものになります。あるいは、最大値、最小値を求める。その差をレンジで割るのです。そして、各ミュービングに入る範囲を定義する(ここでは、範囲や区間に対応する配列を考える)。最大ヒット数の配列インデックスが 勝者となる。よくわからなかったかもしれませんね。この課題は、別のトピックで解決した方がいい。解決策にはいくつかのバリエーションがあるかもしれません。そして将来、誰かがそれを必要とするかもしれない。そして、ここではその後、その終わりを見つけることができないのです。
 

こんにちは、チュートリアルを読んで、GVの変数にたどり着きました。その仕組みが理解できない。例えば、チュートリアルでは、GVの変数はdouble型しか 使えないと書いてあります。よし、2倍だ、2倍)。しかし、GlobalVariableSet(),GlobalVariableGet(),GlobalVariableDel()関数をリストアップ する際に、あるものは時間を返し、別のものはブールを 返すなどと書かれています。頭の中が混乱して、どう整理していいのかわからなくなった。私も最近MQL4の勉強を始めたのですが、新しい情報がたくさん入ってきました。できれば、教科書に載っている問題の一例を説明してほしい(自分で作ったものでも可)。

タスク24複数のExpert Advisorがターミナルで同時に動作します。入金額は10,000ドルです。すべての未決済注文の合計金額は、預託金額の30%を超えてはなりません。各Expert Advisorには、同じ金額を割り当てる必要があります。取引金額の計算を含むExpert Advisorプログラムを作成する。

intエキスパート//Expert Advisorの数。専門家の

double Depo=10000.0, // 指定された預金

Persent=30と した。// 与えられた割合

お金 です。// 検索される資金。

string Quantity="GV_Quantity"; // GV 変数の名前

//--------------------------------------------------------------------

int init()/Specialです。関数init

{

Experts=GlobalVariableGet(Quantity); // テキスト値を取得します。

Experts=Experts+1; // Expertsの数。

GlobalVariableSet(Quantity, Experts); // 新しい値

Money=Depo*Persent/100/Experts;/Exp.Money=Depo*Persent/100/Experts。

Alert("For the expert in the window ", Symbol()," allocated ",Money);

返します// init()の終了

}

//--------------------------------------------------------------------

int start()// スペシャル機能開始

{

int New_Experts= GlobalVariableGet(Quantity);// 新しいExpertsの数。

if (Experts!=New_Experts) // 変更があった場合

{

Experts=New_Experts; // これで、現在の数値は

Money=Depo*Persent/100/Experts; // Exper の新しい値です。

Alert("専門家の新しい値 ",Symbol(),": ",Money)"を表示します。

}

/*

...

Expert Advisor のメインコードをここに指定する必要があります。

これは変数 Moneyの 値を使用する

...

*/

返します。// start()から抜ける

}

//--------------------------------------------------------------------

int deinit()//プロパーです。 デフィニット関数

{

if (Experts ==1)// 専門家が一人しかいない場合。.

GlobalVariableDel(Quantity); //... GV変数を削除 します。

さもなくば// それ以外の場合.

GlobalVariableSet(Quantity, Experts-1); //...1だけ減らす

Alert("EA is unloaded from the window ",Symbol()); // アンロードを通知する

返します// deinit() の終了

}

 
Vinin:
終値でピリオド1を使用しない場合、繰り返し回数は0回になります。でも、ある程度の範囲に当たるものをカウントすれば、問題は解けるかもしれないし、もっと面白いかもしれませんね。あるいは、最大値と最小値を求めることもできる。その差をレンジで割るのです。そして、各ミュービングに入る範囲を定義する(ここでは、範囲や区間に対応する配列を考える)。最大ヒット数の配列インデックスが勝者となる。よくわからなかったかもしれませんね。この課題は、別のトピックで解決した方がいい。解決策にはいくつかのバリエーションがあるかもしれません。そして将来、誰かがそれを必要とするかもしれない。そして、ここではその後、その終わりを見つけることができないのです。

考えてみますね、ありがとうございます。

separate topic - https://forum.mql4.com/ru/66882