MT4, EA別の損益を計算するEA
何種類かEAを作って自動売買させたり、デモ口座でテストを繰り返したりしたのですが、EAの種類が多くなってきた上に、途中自分でトレードしたりしたため EA別の成績が追えなくなってきました。
そもそもMT4の履歴出力でMagicNumber毎の結果が出たらいいのですが、出し方や出せるのかどうかも不明なので MagicNumbre毎の損益を計算して表示するEAを作りました。
履歴には初期の入金や追加の入出金が含まれるためこれらを除外しなければなりませんが、その方法が今のところ不明なので、extern でパラメータとして入力できるようにしました。
【実行結果】
【ソース】
EAの表示結果とMT4の履歴結果とは合致しました。
今後の課題は入出金履歴を取得して手動設定しなくても良いようにすることです。
初期の自作EAはマジックナンバーを付与していませんでしたが、そちらはマイナスの結果になっており、挽回策で投入した EA-No.3, EA-No.4 で回復したことが確認できました。
しかしその後に作った新しいバージョンはマイナスでした。
※
そもそもMT4の履歴出力でMagicNumber毎の結果が出たらいいのですが、出し方や出せるのかどうかも不明なので MagicNumbre毎の損益を計算して表示するEAを作りました。
履歴には初期の入金や追加の入出金が含まれるためこれらを除外しなければなりませんが、その方法が今のところ不明なので、extern でパラメータとして入力できるようにしました。
EX.
extern int ini_dep = 50000; // 初期入金額
extern int ini_dep = 50000; // 初期入金額
extern int add_dep = 3000; // 入金額
extern int wdr = 0; // 出金額
【実行結果】
【ソース】
EAの表示結果とMT4の履歴結果とは合致しました。
今後の課題は入出金履歴を取得して手動設定しなくても良いようにすることです。
初期の自作EAはマジックナンバーを付与していませんでしたが、そちらはマイナスの結果になっており、挽回策で投入した EA-No.3, EA-No.4 で回復したことが確認できました。
しかしその後に作った新しいバージョンはマイナスでした。
※
MT4 自作EAのための input の使い方
解説サイトに明確な記載がなかったので備忘録とします。
input を使って選択肢を作る際は、enum で定義した後、
input [定義名] [選択値を格納する変数名] = 初期値; とします。
#property strict とすることで、後のコメントを選択名に出来ます。
具体例:
#property strict
・
・
・
input MAcalu MAsc = HLC3; // MA選択
//---------------------------------------------------------------------------
// 注意) Close, Open は定義済変数なので使用しないこと。
上記では、変数 MAss の初期値は 0, 変数 MAsc の初期値は 3 になります。
使用例:
input を使って選択肢を作る際は、enum で定義した後、
input [定義名] [選択値を格納する変数名] = 初期値; とします。
#property strict とすることで、後のコメントを選択名に出来ます。
具体例:
#property strict
・
・
・
//---------------------------------------------------------------------------
enum MAtype { // MA方法の選択肢定義
enum MAtype { // MA方法の選択肢定義
Simple=0, // Simple
Smooth=1, // Smooth
Exponential=2 // Exponential
};
input MAtype MAss = Simple; // MA選択
// [定義名], [格納変数名] = [初期値]
enum MAcalu { // MA計算値の選択肢定義
enum MAcalu { // MA計算値の選択肢定義
CLOSE=0, // Close
OPEN=1, // Open
HL2=2, // (H+L)/2
HLC3=3, // (H+L+C)/3
};input MAcalu MAsc = HLC3; // MA選択
//---------------------------------------------------------------------------
// 注意) Close, Open は定義済変数なので使用しないこと。
上記では、変数 MAss の初期値は 0, 変数 MAsc の初期値は 3 になります。
使用例: