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

 
trader781:

1) 2次元目を入れないとコンパイラが文句を言い、「クラス型を指定してください、パラメータが不明です」とすぐにポップアップ表示される

2)の場合、起動時に「critical error array out of range」と表示され、ロボットが即死します。

3) setint count1=-1; で、ループを 抜ける。どうしたんですか?

たまには答え合わせに目を通してみてください。一と 二と 三と・・・。

一週間以上同じことを繰り返し、すでに答えが出ていて間違いも指摘されているのに、回を重ねるごとにひどくなっていくのです。つまり、最初のコードでは2次元がないことにコンパイラは文句を言わなかったのに、それ以降のコードでは文句を言い始めたということですか?コンパイラの調子が悪くなったのでしょうか?また、配列を使ったどんなコードでも開いて、どのように配列が作られるかを見て、同じように操作することができます。

 
Artyom Trishkin:

そんなものはない。MAはすでに多くの人に使い古されたものであり、新たな志を持ったトレーダーの斬新な発想を待つだけでよいのです。冗談です。

実は、長年MAボトルで突っ張ってきたことに疲れてしまったんです。遅れをとっている。おそらく別の分野で使うべきもので、トレンド・フローを捉えるためのものではありません。

いろんなマシュカがあるんですね。

大体、どこもかしこも押し屋しかいない。

 
Victor Nikolaev:

いろいろなマッシュアップがありますね。

大体、どこもかしこもキノコだらけで使われている

だから、私は何を言っているのだろう。そういうことです。装いを変えて、真正面からではないのです。
 
Vitaly Muzichenko:


まだできていない。他の方と同じようなものを見つけていたら、ここに書き込まなかったと思います。数値列と構造体のリストは同じではないということは、あなた自身が理解していると思いますが、そうでなければ、未知数の数が無限にある別の方程式が存在することになります。

アルチョム・トリシキン

これはどうでしょう?



#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1);
         orders[count1-1].Ticket=OrderTicket();
         orders[count1-1].lot=OrderLots();
         orders[count1-1].orderopenprice=OrderOpenPrice();
         orders[count1-1].ordertype=OrderType();
         orders[count1-1].profit=OrderProfit();
         orders[count1-1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
そして、コードをここに投げることについては、誰かがそれを投稿して、ページをスクロールしなければならないとき、私は腹が立ちます。この方がコンパクトになります。
 
trader781:
するまでは。他の人と同じようなものを見つけていたら、ここに書いていないでしょう。
コードをファイルとしてではなく、メッセージとして貼り付けてください。携帯電話からの見え方はこんな感じ?
 
trader781:
するまでは。他の人にも同じようなことがあったら、ここに書き込まなかったでしょう。数列と構造のリストが同じでないことはご自身で理解されていると思いますが、そうでないと、また未知数の無限大の方程式が出来てしまいます。
#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         orders[count1].lot=OrderLots();
         orders[count1].orderopenprice=OrderOpenPrice();
         orders[count1].ordertype=OrderType();
         orders[count1].profit=OrderProfit();
         orders[count1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
そして、コードをここに投げることについては、誰かがそれを投稿して、ページをスクロールしなければならないとき、私は腹が立ちます。この方がコンパクトになります。

間違っている。配列の大きさをコードからトレースしてください。

少しは考えないとね。当てなくていいんです。考える。プログラムのすべてのステップをそれとも、誰かが書いてくれるのを待っているのでしょうか?これはフリーランスのサービスなのですが、関数を書くことを命じられることもあります。

 
Artyom Trishkin:

間違っている。配列の大きさをコードからトレースしてください。

少しは考えたらどうなんだ。推測しようとしないほうがいい。考えてみてください。プログラムのすべてのステップをそれとも、誰かが書いてくれるのを待っているのでしょうか?これはフリーランスのサービスなのですが、関数を書くことを命じられることもあります。

私の見方

1) 注文が見つかったら0に加算する

2) サイズを0に変更し、10を予約する

3) 0を1次番号、1を2次番号と書くなどしてください。

フリーランスに関しては、何でも書いてくれることに異論はないが、やはり自分で書き直さなければならない。ノンストップで行かなくてもいいんです。
 
trader781:
するまでは。もし、他の人と同じことが分かっていたら、ここに書き込まなかったでしょう。数値列と構造体のリストが同じでないことは、あなた自身が理解していると思いますが、そうでなければ、未知数の数が無限にある別の方程式になってしまいます。
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
そして、コードをここに投げることについては、誰かがそれを投稿して、ページをスクロールしなければならないとき、私は腹が立ちます。その理由は、コーディングはプロジェクトの品質に影響を与えないからです。

あまり多くは書かず、少しビデオで反応を 記録しただけです。

アルテムは確かにできる限り助けてくれるが、魚をくれるわけではなく、釣竿をくれるだけだ)

trader781さん、 時々ドキュメントに目を通してみてください、今はどこもいっぱいです。
 
trader781:

俺の目にはこう映る

1) 注文が見つかったら0に加算する

2) サイズを0に変更し、10を予約する

3) 0を1次番号、1を2次番号などと表記する。

フリーランスのエージェントについては、何でも書いてくれることに異論はないが、やはり自分で書き直さなければならない。ノンストップで行ってはいけない。

また、サイズがゼロの配列に何かを書き込むにはどうしたらいいのでしょうか?

持っていない財布にお金を入れる...。

 
Artyom Trishkin:

また、サイズが0の配列に何かを書き込むにはどうしたらいいのでしょうか?

存在しない財布にお金を入れること.

は投稿844を修正しましたので、もうここにコードを書く必要はありません。

0サイズの配列については、0は整数であったり、ブール値のfalsに相当するものであったり、voidであったり、出発点であったりと様々です。