MetaTrader5
Multi Arbitration 1.1xx - MetaTrader 5用システムトレードの進化
今回は、Multi Arbitration 1.000の進化版である「Multi Arbitration 1.1xx」についてご紹介します。
1.000との違い:
このEAは、PERIOD_M1でのみ起動します(詳細は下記の時間枠のパラメーターを参照)。
新たに2つのシンボルを同時にトレードします。2つ目のシンボルは、ExtArrSymbolsの静的配列から取得されます:
string ExtArrSymbols[20]=
{
"EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",
"AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",
"CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",
"EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"
};
//+------------------------------------------------------------------+
//| エキスパート初期化関数 |
//+------------------------------------------------------------------+
int OnInit()
ポジションオープンの原則も変更されました:
新たなBUYポジションは、現在の価格が最も低いBUYポジションよりも低い場合のみオープンできます。
新たなSELLポジションは、現在の価格が最も高いSELLポジションよりも高い場合のみオープンできます。
新しいパラメーター時間枠を使えば、任意のチャートでEAを最適化できます。このエキスパートアドバイザーは、メインシンボルの新しいバーが出現する際に動作します(EAが稼働しているチャートのシンボル):
//+------------------------------------------------------------------+
//| エキスパートティック関数 |
//+------------------------------------------------------------------+
void OnTick()
{
//--- 新バーが生まれる時間のみ作業します
static datetime prevtime=0;
datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);
if(time_0==prevtime)
return;
prevtime=time_0;
ここでのInpTimeFrame変数は、私たちの時間枠入力です。この時間枠の入力によって、EAを任意の時間枠で動作させることができます!
EURUSDでのテスト結果:
2017.11.03