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

 

何一つ理解できない。私の質問は司会者によってMKL5からMKL4に移されました。リンクをたどってみると......たしかに私の質問はそこにぶら下がっていますが、最後の回答は2018.2.5です。Came here - also MKL4 and life is boiling...So why is the moderator throwing in a dead thread?よし、次に行こう。さて、本題ですが、私の「問題」をここに投げかけます。


Vladimir Karputov:

条件1には魔法数ID+1、条件2には魔法数+2、といった具合に配置します。そうすれば、このポジションは条件1によって開かれたのか、条件2によって開かれたのか、理解することができます・・・。

午後私はBAYの1ポジションしか成功したことがないんです。販売用のマジコンセットがなぜか動かない。もちろん、マジシャンを除いては、すべてがまったく同じです。私は何か悪いことをしたのだろうか?

int total=OrdersTotal();

      for(int i=OrdersTotal()-1;i>=0;i--)

      {

        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

         {

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && (MathAbs(WPR1)<5))

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow); 

        

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && OrderMagicNumber==111 && MathAbs(WPR1)<20)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow);

      

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && OrderMagicNumber==222 && MathAbs(WPR1)>97.55)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow); 

           

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && MathAbs(WPR1)>96)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow);               

         }

       continue;  

      } 
 
novichok2018:

何一つ理解できない。私の質問は司会者によってMKL5からMKL4に移されました。リンクをたどってみると......たしかに私の質問はそこにぶら下がっていますが、最後の回答は2018.2.5です。Came here - also MKL4 and life is boiling...So why is the moderator throwing in a dead thread?よし、次に行こう。さて、本題ですが、私の「問題」をここに投げかけます。


午後1ポジションのBAYにしか効果がなかった。SELLに設定したマジコンがなぜか動作しない。もちろん、マジシャン自身を除いては、すべてがまったく同じである。何がいけなかったのか?

1. mql4がわからない。

2.マジック222で注文をクローズするには、まずマジック222でオープンする必要があります。どのウィザードでSELL注文を出すか確認する。

3.OrderMagicNumberの後に、()をつけてください。

if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && OrderMagicNumber==222 && MathAbs(WPR1)>97.55)

4.なぜ、その状態でハイライトされているのか?

if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && (MathAbs(WPR1)<5))
 

みんな、ここで質問なんだけど、一次元の配列に変数の値を入れるにはどうしたらいいの?

ヘルプに送らないでください - そのような問題のための例はありません。


ある条件下で変化する変数aがあるとする。

この変数の最後の3つの値を格納するための配列が欲しいのです。mql4ではどのように実装されているのですか?


int mas[3]を書いています。

mas[]=a; ループ内で、aを変化させる条件の後。

コンパイラは ']' を出力しますが、論理的にはそうなるはずなのに、何も動作しません。- の式が予想通り、mas[]=aの括弧の中に未知の式を入れるように要求されました。

MQL4には、ループの反復ごとに配列に変数値を入れるような関数はありますか?


 
John Smith:

みんな、ここで質問なんだけど、一次元配列に変数の値を入れるにはどうしたらいいんだろう?

このような問題に対応する例はありません。


ある条件下で変化する変数aがあるとする。

この変数の最後の3つの値を格納するための配列が欲しいのです。mql4ではどのように実装されているのですか?


int mas[3]を書いています。

mas[]=a; ループ内で、aを変化させる条件の後。

コンパイラは ']' を出力しますが、論理的には動くはずなのに、何も動きません。- mas[]=aの括弧の中に未知の式を入れるように要求されました。

MQL4には、ループの反復ごとに配列に変数値を入れるような関数はありますか?


mas[]=a;のように、変数'a'の値は配列のどのセルに入るのでしょうか?

ヘルプに送るから、最初から読んでね :)

 
John Smith:

みんな、ここで質問なんだけど、一次元の配列に変数の値を入れるにはどうしたらいいの?

ヘルプに送らないでください - そのような問題のための例は ありません。


ある条件下で変化する変数aがあるとする。

この変数の最後の3つの値を格納するための配列が欲しいのです。mql4ではどのように実装されているのですか?


int mas[3]を書いています。

mas[]=a; ループ内で、aを変化させる条件の後。

コンパイラは ']' を出力しますが、論理的にはそうなるはずなのに、何も動作しません。- mas[]=aの括弧の中に未知の式を入れるように要求されました。

MQL4には、ループの反復ごとに配列に変数値を入れるような関数はありますか?


もしかしたら、コードサンプルだけでなく、他の文字も読んだ方がいいかもしれませんね。

以下は、ドキュメントからの引用です。

配列を操作するための関数群

4次元以上の配列は 許されない。各次元は0から dimension_size-1までの インデックスを 持ち, 50個の 要素を持つ 1次元配列の 場合 最初の要素をarray[0]とすると,最後の要素はarray[49] となる.

 
Alexey Viktorov:

1.彼はmql4を知らない。

2.マジック222でオーダーをクローズするには、まずマジック222でオープンする必要があります。どのウィザードでSELL注文を出すか見てみましょう

3.OrderMagicNumberの後に、()をつけてください。

4.なぜ、コンディションに表記があるのですか?

ご返信ありがとうございました。まずはマジックを使って開幕する必要があるのは明らかです。orderticketを削除し、コメントでロジックを確認しました。ポジションのクローズは、最初にオープンしたポジションの条件に従って行われることが判明しました。つまり、まず条件1で買いまたは売りのポジションを建て、次に同じ条件だが条件2で2つ目のポジションを建てた場合、他のマジックにもかかわらず、クローズ条件は無視され、2つ目のポジションも条件1でクローズされます。

注文終了後にブレークをかけましたが同じ種類のポジションが1つでも開かれていれば いいという中途半端な解決 策になっています。例えば、買いポジションが開閉されている間に、先に売りポジションが開かれ、まだ閉じられていない場合、売りポジションは、他の売りポジションが開かれ、その条件に従って閉じられるまで、閉じられるべき条件を見ないことになります。そして、BAYが再びオープンしてクローズすると、再びクローズ条件を逃すことになる。では、どうすればいいのか?

 
皆さん、こんにちは。プログラマーの皆様、Alert3.Lv1;2;3ごとにサウンドファイルを指定し、指定した別の音を鳴らす機能を持つ行を挿入するのを手伝ってください。私自身は、コーディングやプログラミングは苦手です。
ファイル:
 
プログラマーさん、MQL愛好家の皆さん、こんにちは。私は、ニュースに基づいて自動売買を停止する、非常に優れたExpert Advisorを持っています。ネットで調べても、動作しないものや動作が悪いものがありました。あるいは、ウルダラのインジケータをベースにしたものをどなたか書いていただけませんか?
 
こんにちは、皆さん。Trade context is busy]エラーを解消する方法を教えてください。
 
Rustam Bikbulatov:
こんにちは、皆さん。Trade context is busy]エラーを解消する方法を教えてください。
if(!IsTradeContextBusy())   //торговый поток свободен
  {
 // здесь оформляем запрос
 // на торговую операцию

  }