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

 
Nerd Trader #:
ObjectsDeleteAllがあるのは知りませんでした。

あらゆる場所で使っています

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

あらゆる場所で使っています

私はC言語ですべてを自分でやらなければならないことに慣れていますが、mql4には既成のソリューションがあります。
 
Nerd Trader #:
ObjectsDeleteAllがあることを知らなかったので、今度はその真相を知りたいです。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

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

アルチョム・トリシキン さん 2021.09.30 05:31

削除していただいて結構です。すでに理解しているのであれば、一度理解した方が、二度とやろうと思わないかもしれません。

配列からオブジェクトを削除すると、次のオブジェクトの位置が配列内で移動し、ループインデックスは現在どこを指しているのでしょうか?考えてみてください。


 
Artyom Trishkin #:

了解です、ありがとうございます。
 
Valeriy Yastremskiy #:

2番目のifの前と2番目のifの中に番号、チケット、注文の種類を印刷します。

了解です。試してみました。カウントしているのですが、なかなかうまくいきません。ティック単位で注文をカウントしています。グリッドの一番上に最後の1つのオーダーが必要です。価格が下落し、別の注文が開始された場合、最後尾の注文はOrderOpenPriceが最大の注文となります。

 
ObjectsDeleteAllは 問題ありません。しかし、「すべて」ではなく「すべて」を削除する必要がある場合、条件付きのループなしではできません。そこで黄金律となるのが、「最後から二番目のスタート」なのです
 
pribludilsa #:
mql5プログラムの中で、ファイルをディスクに書き込まず、RAMだけで作業し、高速化する方法。mql5のプログラムから自分のコンピュータのプログラムにデータを転送したい。

これです。

https://www.mql5.com/ru/articles/503

Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
 
makssub #:

たどり着いた。試してみました。カウントしているのですが、なかなかうまくいきません。ティック単位で注文をカウントしています。グリッドの一番上に最後の1つのオーダーが必要です。価格が下落し、別の注文が開始された場合、最後尾の注文はOrderOpenPriceが最大の注文となります。

double FindOpenPrice(int a=-1)// 0 - макс, 1 - мин
{
   double maxopenprice=0;
   double minopenprice=DBL_MAX;
   double openprice=0;
   
   for(int cnt=OrdersTotal()- 1 ; cnt>=0; cnt--)
   {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            if (OrderType() == OP_SELL || OrderType() == OP_BUY)
            {
               if (a==0 && maxopenprice<OrderOpenPrice())
               {
               maxopenprice = OrderOpenPrice(); openprice=maxopenprice ;
               }
               if (a==1 && minopenprice>OrderOpenPrice())
               {
               minopenprice= OrderOpenPrice(); openprice=minopenprice;
               }
            }
         }
      }
   }
   return(openprice);
}
 
makssub #:

たどり着いた。試してみました。カウントしているのですが、なかなかうまくいきません。ティック単位で注文をカウントしています。グリッドの一番上に最後の1つのオーダーが必要です。価格が下落し、別の注文が開始された場合、最後尾の注文はOrderOpenPriceが最大の注文となります。

だから、値段で探すのではなく、開店時間で探すこと。
 
MakarFX #:

最後の1枚が出るのであって、ペナントマイムが出るわけではありません(