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

 
Alexandr Nikolaev:
つまり、OrderSelect by ticket from closed and deleted ordersは、端末に読み込まれた履歴の中からしか検索しないことがわかったのですね。これについては、ハンドブックに記載がありません。

実際、EAがアクセスできるのは、ターミナルで見られるデータだけです

これはチャート履歴にも適用され、制限した場合、EAはターミナルで見ることのできないチャートバーにアクセスすることもできなくなります


アレクセイ・マヴリン

OrdersHistoryTotalの説明には、次のように書かれています。

チケットで注文を選択する場合。

poolパラメータは無視されます

https://docs.mql4.com/ru/trading/orderselect
 
フォルダ内の最新ファイルの名前がわからずにハンドルを取得する方法をどなたか教えてください。つまり、スクリプトを実行するときに、一番最近作成されたファイルを参照する必要があるのですが、これをループの中にどう入れたらいいのかがわからないのです。MQL4
 
hoka777:
どなたか、フォルダ内の最新のファイルの名前がわからないのに、そのファイルのハンドルを取得する方法を教えてください。つまり、スクリプトを実行するときに、一番最近作成されたファイルを参照する必要があるのですが、ループの中に何を入れればいいのかが分かりません。MQL4

FileFindFirst、FileFindNext、FileGetInteger

 

このエントリーの意味するところは?

int tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;
 
Seric29:

このエントリーの意味するところは?

イコール、これです。

int tf=1|2|4|8|16|32|64;

誰かがどこかで国旗を何かに使っている。このエントリでは、変数tfに格納されているフラグが7つあり、それらがすべて上がっていることを述べています。

 

注文の追跡

フォーラムの皆さん、こんにちは。

コピー機の注文を追跡する必要性に直面し、問題の複雑さに驚きました。

タスク

成行注文や未決済注文の開始、終了、変更を、システムに対して可能な限り少ない遅延と負荷で追跡すること。

考えられる解決策

1.オーダーリスト全体を1ティックごとに監視するのは、まだあまり魅力的ではありません。

2.MQL5 には優れたOnTrade()と OnTradeTransaction()関数がありますが、MQL4には 類似の関数が見当たりません。

3. OnChartEvent を使って、Last order lines とそのTPSL をチャート上でモニターすることに魅力を感じるかもしれませんが、これらのオブジェクトは目に見えないので、この関数では処理さ れません。もしかしたら、表示方法があるのでは?

4.今、考えているのは、一般的なログからの情報取得の可能性です。そこでもモニターは必要ですが、少ないです。

まだ満足のいく解決策が見つかっていないのですが、もしかしたら誰かがすでに調べてくれているのでしょうか?

 
Artyom Trishkin:

イコール、これです。

どこかの誰かが、何かのために国旗を使っている。このエントリでは、変数tfに格納されているフラグが7つあり、それらがすべて上がっていることを述べています。

int tf=1|2|4|8|16|32|64;

そして、なぜ、この使い方を縦棒で書かれているのか。このフラグの各部分にアクセスすることは可能ですか?こんなコードです。

    if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}// выбор старшего ТФ, с него скрипт рисует на младших ТФ
    if(_Period==240) {diff=14340; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020;}
    if(_Period==60)  {diff=3540;  tf=0x0001|0x0002|0x0004|0x0008|0x0010;}
    if(_Period==30)  {diff=1740;  tf=0x0001|0x0002|0x0004|0x0008;}
    if(_Period==15)  {diff=840;   tf=0x0001|0x0002|0x0004;}
    if(_Period==5)   {diff=240;   tf=0x0001|0x0002;}  

    cl_timeM1=op_timeM1 + diff ;                    // координата даты и времени бара М1 по цене CLOSE старшего ТФ
    cl_NumBarM1=iBarShift(NULL,PERIOD_M1,cl_timeM1);// индекс бара М1
    cl_priceM1=iClose(NULL,PERIOD_M1,cl_NumBarM1);  // координата цены CLOSE бара М1
      
//--- трендовые линии -----------------------------------------------+ 
   for(i=0;i<1000000;i++){name1="Point_"+i; if(ObjectFind(name1)<0) break;}     // позволяет рисовать множество объектов с одинаковым именем, добавляя к имени порядковый номер
  
   ObjectCreate(0,name1,OBJ_TREND,0,op_timeM1,op_priceM1,cl_timeM1,cl_priceM1); // создать объект трендовая линия с координатами цены и времени  
   ObjectSet(name1,OBJPROP_COLOR,clrWhite);                                     // задать цвет объекта
   ObjectSet(name1,OBJPROP_STYLE,STYLE_DASH);                                   // задать стиль объекта (пунктир, линия...)
   ObjectSet(name1,OBJPROP_RAY,false);
   Строчка ниже будет отрисовываться нужное количество раз или что?
   ObjectSet(name1,OBJPROP_TIMEFRAMES,tf);    
 
Seric29:

そして、なぜ縦棒を通して使い方が書かれているのでしょうか?

縦棒と呼ぶ限り、このコードは読めません

ヘルプを読むhttps://www.mql5.com/ru/docs/basis/operations/bit

 
Igor Makanu:

バーチカルスティックと呼ぶ限り、このコードは読めません。

ヘルプを読むhttps://www.mql5.com/ru/docs/basis/operations/bit

読んでみて(もう何度目かわからないが)、使用例がなく、何のために使うのか不明なため、理解が浅い。一例あり

int a=305;
int b=a;      
int shift=37; 
shift++; 
a=a>>shift;   // 38 в двоичном представлении будет выглядеть как '100110', младшие 5 бит '00110' представляют число 6 
b=b>>6;

この行を作る方法はありますか?

if(_Period==1440){diff=86399; tf=0x0001|0x0002|0x0004|0x0008|0x0010|0x0020|0x0040;}

は、カウンターを通して短く書き込むことができるのでしょうか?

 
Seric29:

何度読んでも(何度読んでも)、使い方の例がなく、何のためにあるのか分からないので、理解が浅い。例があります。

あなたは間違った例を読んでいます。

ビット毎OR演算

xとyの2値表現のビットごとのOR。式の値は、x または y が 0 を含まないすべての場所で 1 を含み、他のすべての場所で 0 を含む。

b=x|yである。

 char a='a',b='b';
//--- операция ИЛИ
   char c=a|b;
   Print("a = ",a,"  b = ",b);
   Print("a | b = ",c);
// Результат будет такой:
// a = 97   b = 98
// a | b = 99