いつも悩むことがあります。
「いったいどのマジックナンバーが空いているのか!?」
かつては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.");
}
#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 件のコメント:
コメントを投稿