2025年5月20日火曜日

マジックナンバー使用履歴出力スクリプト!!!

いつも悩むことがあります。

いったいどのマジックナンバーが空いているのか!?

かつてはExcelに「マジックナンバー管理表」とか作ってました。

でも……証券会社の口座ごとに1シートとかムリ!

いつの間にか、謎のセルに「123456」とかだけ書いてあって、

「これ何のEAだっけ……」って白目でモニター見つめる日々。

ということで、魔法数字から精神衛生を守る防御の盾を作りました!


じゃじゃーん!

スクリプト「MagicLister」

過去の取引履歴から使用したマジックナンバーを完全抽出するスクリプト!!!



◆使用方法

・スクリプトなので、MQL4/Scripts に入れてください。

インジじゃないです!EAでもないです!スクリプトです!

チャートにのせると静かに動作し静かに終わります。

・口座の「口座履歴」タブで、右クリック → 表示期間を「全履歴(H)」にしてください。

「1ヶ月」とか「3ヶ月」とか選んでると、その期間しか検索しません。



◆出力先は「エキスパート」ですが、マジックナンバーが大量になるとみにくいので

CSVファイル出力もします。(MQL4/Files/magic_list.csv に保存されます)


マジックナンバー、ちゃんと管理できる人はスゴい!

でもぼくには難しい。なら、コンピューターにやらせよう。

このスクリプト、控えめに言って「人類の怠惰に優しい」とおもいます。


// (c)TACA.AMSER 2025.5.20  
#property strict
void OnStart()
  {
   int MagicArray[5000]={},Cnt = 0;
   for (int i = 0; i < OrdersHistoryTotal(); i++)
     {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
      int Magic = OrderMagicNumber();
      bool Flag = false;
      for (int j = 0; j < Cnt; j++)
        {
         if (MagicArray[j] == Magic)
           {
            Flag = true;
            break;
           }
        }
      if (!Flag)MagicArray[Cnt++] = Magic;
     }
   ArrayResize(MagicArray, Cnt);
   ArraySort(MagicArray, WHOLE_ARRAY, 0, MODE_ASCEND);
   int Handle = FileOpen("magic_list.csv", FILE_WRITE | FILE_CSV);
   for (int i = 0; i < Cnt; i++)
     {
      FileWrite(Handle, MagicArray[i]);
      Print("MagicNumber: ", MagicArray[i]);
     }
   FileClose(Handle);
   Print("Created magic_list.csv in MQL4/Files.");
  }







0 件のコメント:

コメントを投稿