遅行性OI(建玉) - ページ 6

 
Renat Akhtyamov:

そのために個室を用意したそうです。

そして、今はマスコミに書いているから、議論をしているわけです。

また、シンクロナス(synchronous)を使えと明言した。

私はシンクロナスを使っていますが、潜水艦から他に何ができるのでしょうか。

 
Dmi3:

......、でも、プロストトレーダーが曲者魔道士で使っている仕組みには不満があります。


曲者」魔道士の本質を全く理解していないか、理解する気がないのでしょう。

https://www.mql5.com/ru/blogs/post/557544

Отслеживание ордера, после команды OrderSendAsync
Отслеживание ордера, после команды OrderSendAsync
  • 2016.10.29
  • www.mql5.com
Отслеживание ордера, после команды OrderSendAsync Михаил | 23 апреля, 2015 В статье рассказывается принцип отслеживания ордера после команды OrderSendAsync, если нет события TradeTransaction
 
prostotrader:

曲者」のマジシャンを全く理解していないか、理解する気がないのでしょう。

https://www.mql5.com/ru/blogs/post/557544

なぜ?その仕組みはよく理解しています。でも、"ストレート "の魔道士がいなくなるのは嫌なんです。これがなければ、自分の口座に今何があるのか、すぐに確認することは難しいでしょう。

 
Dmi3:

なぜ?その仕組みはよく理解しています。でも、"ダイレクト "メジはなくしたくないんです。これがなければ、今どこに何があるのか、すぐに把握することは難しいでしょう。

majikは大きく、定数部分(例えばストラテジーID)と「変数」部分(リクエスト番号)の両方を包むことができる。

 
Stanislav Korotky:

majikは大きいので、定数部分(例えばストラテジーID)と「変数」部分(クエリ番号)の両方を包むことができます。

彼はlongではなくintを持っています
 
Renat Akhtyamov:
彼はlongではなくintを持っています

信じられないかもしれませんが:)intマジックでも1000以上のEAを取引でき、それぞれのストラテジーの組み合わせは 1000000通り以上です。

 
prostotrader:

鐘の音が聞こえても、それがどこなのかわからない。

掲示されたコードを "打つ"。

......

コードの書き方が悪いと、どうして結果について 語れるんだ?

......

多くのExpert Advisorのライターは、株式やデリバティブ市場での取引の多くの基本的なことさえ知らないで、MICEXの仕事を把握しています。


作りすぎだよ!?特に、BASICでコンピュータサイエンスの成績も通らずにマーケットで売り手を確保しようとする隣のトピックの登場人物に比べれば、少女は立派にやっていたのです))。

 
Aleksey Mavrin:

信じられないかもしれませんが:)intマジックでも1000以上のEAを取引でき、それぞれのストラテジーの組み合わせは1000000通り以上です。

それに、脳にロジックがあれば、マジックを使わなくても大丈夫です。

ちなみに、あまりに面白ければロングにするintの話をしたところです。

いわばプログラマーから...
 
Aleksey Mavrin:


大げさなんだよ!特に、基礎テストも通らずにセールスマンとしてマーケットに行く、隣のスレッドの登場人物に比べれば、その女の子は大丈夫だったのだ)。

どうしたんだ?

アウトプットがどうあるべきか、そのために何をすべきかを理解していないのです。

経験豊富な人も、トリッキーな問題は教えてくれなかった。

しかし、私は5年ほどこのテーマに取り組んできたので、正しい結果を得るための方法を知っています。

 
Dmi3:

なぜ?その仕組みはよく理解しています。でも、"ダイレクト "メジはなくしたくないんです。これがなければ、自分の口座に今何があるのか、すぐに確認することは難しいでしょう。

そう書くと、すべての仕組みを理解して いないことになる!

マジックの上位ビットはシンボルの名前から形成され、さらに各EAにIDを割り当てることができ、下位ビットは

は、一連の子マジックを作成します。

だから、その仕組みを理解していると主張しなければならないのです

//+------------------------------------------------------------------+
//|                                                    AutoMagic.mqh |
//|                                 Copyright 2017-2018 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//version   "1.02
ulong symb_magic;
int exp_id;
//-------------------------------------------------------------------+
// Split string function                                             |
//+------------------------------------------------------------------+
string SplitString(const string a_str,ulong &a_month,ulong &a_year)
  {
   int str_size=StringLen(a_str);
   int str_tire=StringFind(a_str, "-");
   int str_tochka=StringFind(a_str, ".", str_tire);
   if((str_tire>0) && (str_tochka>0) &&(str_size > 0))
     {
      a_month= ulong(StringToInteger(StringSubstr(a_str,str_tire+1,str_tochka-str_tire-1)));
      a_year = ulong(StringToInteger(StringSubstr(a_str,str_tochka+1,str_size-str_tochka-1)));
      if((a_month > 0) && (a_year > 0)) return(StringSubstr(a_str, 0, str_tire));
     }
   return("");
  }
//-------------------------------------------------------------------+
// Get Magic function                                                |
//+------------------------------------------------------------------+
ulong GetMagic(const string a_symbol, const int sov_id)
{
  exp_id = -1;
  symb_magic = 0;
  if(SymbolSelect(Symbol(), true) == false)
  {
    Print(__FUNCTION__, ": Нет такого символа!");
    return(0);
  }
  ulong month = 0;
  ulong year = 0;
  string new_str = SplitString(a_symbol,month,year);
  if(StringLen(new_str)>0)
  {
    uchar char_array[];
    int result=StringToCharArray(new_str, char_array, 0, WHOLE_ARRAY, CP_ACP);
    if(result>0)
   {
     ulong value;
     for(int i = 0; i < result - 1; i++)
     {
       value=ulong(char_array[i]);
       value<<=(56 -(i*8));
       symb_magic += value;
     }
     month<<=24;
     symb_magic += month;
     year<<=16;
     symb_magic += year;
     exp_id = sov_id;      //New!!!
     int s_id = exp_id;
     s_id<<=8;             //New !!!   
     symb_magic += s_id;   //New !!!
     return(symb_magic);
   }
 }
  return(0); 
}
//-------------------------------------------------------------------+
// Is my magic function                                              |
//+------------------------------------------------------------------+
bool IsMyMagic(const ulong m_magic)
{
  if(m_magic > 0)
  {
    ulong stored_magic = symb_magic;
   // stored_magic>>=16;
    stored_magic>>=8;   //New!!!
    ulong in_magic = m_magic;
   // in_magic>>=16;
    in_magic>>=8;      //New!!!
    if(in_magic == stored_magic) return(true);
  }  
  return(false);
}
//-------------------------------------------------------------------+
// Get stored magic function                                         |
//+------------------------------------------------------------------+
ulong GetStoredMagic()
{
  if(symb_magic > 0) return(symb_magic);
  return(0);  
}
//-------------------------------------------------------------------+
// Get expert ID function                                            |
//+------------------------------------------------------------------+
int GetExpertId()
{
  return(exp_id);                //New!!!
}
//+------------------------------------------------------------------+

チェックする

//+------------------------------------------------------------------+
//|                                                   Test_magic.mq5 |
//|                                      Copyright 2021 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021 prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
#include "AutoMagic.mqh"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ulong new_magic = GetMagic(Symbol(), 22);
   Print("Magic is: ", new_magic);
   ulong f_magic = new_magic;
   ulong a_letter = (f_magic>>56)&255;
   Print("7 byte: ", CharToString(uchar(a_letter)));   
   f_magic = new_magic;
   a_letter = (f_magic>>48)&255;
   Print("6 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>40)&255;
   Print("5 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>32)&255;
   Print("4 byte: ", CharToString(uchar(a_letter))); 
   f_magic = new_magic;
   a_letter = (f_magic>>24)&255;
   Print("3 byte (month): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic>>16)&255;
   Print("2 byte (year)): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic>>8)&255;
   Print("1 byte (expert id or series of magics): ", a_letter);
   f_magic = new_magic;
   a_letter = (f_magic&255);
   Print("0 byte (series of magics): ", a_letter);
//---
   return(INIT_SUCCEEDED);
  }

結果

2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       Magic is: 5138409554846225920
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       7 byte: G
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       6 byte: O
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       5 byte: L
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       4 byte: D
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       3 byte (month): 3
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       2 byte (year)): 21
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       1 byte (expert id or series of magics): 22
2021.01.19 03:05:15.363 Test_magic (GOLD-3.21,M1)       0 byte (series of magics): 0

EAのシンボルとIDを122に変更する

2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        Magic is: 5932457868670630400
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        7 byte: R
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        6 byte: T
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        5 byte: S
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        4 byte: 
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        3 byte (month): 3
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        2 byte (year)): 21
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        1 byte (expert id or series of magics): 122
2021.01.19 03:07:06.225 Test_magic (RTS-3.21,M1)        0 byte (series of magics): 0

コードに追加

   for(int i = 0 ; i<256;i++)
   {
     Print("My magic: ", string(IsMyMagic(new_magic + ulong(i))));
}Print("My magic: ", string(IsMyMagic(new_magic + ulong(256))));

結果

2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
2021.01.19 10:25:45.855 Test_magic (RTS-3.21,M1)        My magic: true
.......................................................................
2021.01.19 10:53:40.451	Test_magic (RTS-3.21,M1)	My magic: false

シンボル名+EA idで、マジックのユニークさを確認することができます。

で、0バイトには、一連の子マジック(これもユニーク)。

ビッジは自動的に作成されます。

FORTS標準のログインは30tr./secまでなので、1byteなくても子魔力256個で十分です。

そして、このような「ナックルダンス」が必要となるのは、接続が切れた(MT5のサーバーがクラッシュした)とき、チケット注文を受け取って いないときなど、極端なケース に限られるのです。

Документация по MQL5: Предопределенные переменные / _Symbol
Документация по MQL5: Предопределенные переменные / _Symbol
  • www.mql5.com
_Symbol - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5