FX MT4 システムトレード

ボリンジャーバンドによる売買シグナルEA、色々な通貨ペアでバックテスト

スポンサードリンク

Contents

他の通貨ペアでもバックテストをやってみた

これまでUSD/JPYのみでバックテストを行ってきましたが、
他の通貨ペアでは結果がどうなるか気になったので
バックテストを行ってみました。

バックテストで用いたのはボリンジャーバンドの
売買シグナルで自動売買する自作EAです。

バックテストはいずれも、期間2016/01/01~2016/12/31
チャート日足で行いました。

前回から多少手直しをしたのでソースを公開します。

MT4にはpipsという概念がないので、
pipsを通貨ペアごとのポイントに変換するロジックを追加しています。

currencyUnitPerPipsが新たに追加したロジックです。

//+------------------------------------------------------------------+
//|                                                           BB.mq4 |
//|                                    Copyright (c) 2017, Ichizo FX |
//|                                             http://fx.ichizo.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright (c) 2017, Ichizo FX"
#property link      "http://fx.ichizo.biz"

// マイライブラリー
//#include <MyLib.mqh>

// マジックナンバー
extern int Magic  = 2017022101;

// 外部パラメータ
extern double Lots = 0.01;
extern int Slippage = 3;
extern string Comments = "BB";
extern double Loss = 50;
extern double Profit = 50;

// エントリー関数
extern int BBPeriod = 15;  // ボリンジャーバンドの期間
extern int BBDev = 2;      // 標準偏差の倍率
extern datetime EffectiveTerm = 10; // 注文の有効期間

double perPips = 0;
int Calculated_Slippage = 0;
int Ticket = 0;
int Adjust_Slippage = 0;
datetime Bar_Time = 0;
bool Closed = false;
datetime Close_Time = 0;
double pos = 0;
int Order_Type = 0;

//+------------------------------------------------------------------+
//|【関数】1pips当たりの価格単位を計算する                           |
//|                                                                  |
//|【引数】 IN OUT  引数名             説明                          |
//|        --------------------------------------------------------- |
//|         ○      aSymbol            通貨ペア                      |
//|                                                                  |
//|【戻値】1pips当たりの価格単位                                     |
//|                                                                  |
//|【備考】なし                                                      |
//+------------------------------------------------------------------+
double currencyUnitPerPips(string aSymbol)
{
  // 通貨ペアに対応する小数点数を取得
  double digits = MarketInfo(aSymbol, MODE_DIGITS);
 
  // 通貨ペアに対応するポイント(最小価格単位)を取得
  // 3桁/5桁のFX業者の場合、0.001/0.00001
  // 2桁/4桁のFX業者の場合、0.01/0.0001
  double point = MarketInfo(aSymbol, MODE_POINT);
 
  // 価格単位の初期化
  double currencyUnit = 0.0;
 
  // 3桁/5桁のFX業者の場合
  if(digits == 3.0 || digits == 5.0){
    currencyUnit = point * 10.0;
  // 2桁/4桁のFX業者の場合
  }else{
    currencyUnit = point;
  }
 
  return(currencyUnit);
}

int AdjustSlippage(string Currency, int Slippage_Pips)
{
   int Symbol_Digits = MarketInfo(Currency, MODE_DIGITS);
   
   if (Symbol_Digits == 2 | Symbol_Digits == 4)
   {
      Calculated_Slippage = Slippage_Pips;
   }
   else if (Symbol_Digits == 3 | Symbol_Digits == 5)
   {
      Calculated_Slippage = Slippage_Pips * 10;
   }
   return (Calculated_Slippage);
}

int init()
{
   perPips = currencyUnitPerPips(Symbol());
   Adjust_Slippage = AdjustSlippage(Symbol(), Slippage);
   
   Loss = Loss * perPips;
   Profit = Profit * perPips;
   return(0);
}

// スタート関数
int start()
{
   if (Bars < BBPeriod) {
      return(0);
   }
   if (Bar_Time == Time[0]) {
      return(0);
   } else if (Bar_Time != Time[0]) {
      Bar_Time = Time[0];
   }
   
   // ボリンジャーバンドの計算
   double bbH1 = iBands(NULL, 0, BBPeriod, BBDev, 0, PRICE_OPEN, MODE_UPPER, 0);
   double bbL1 = iBands(NULL, 0, BBPeriod, BBDev, 0, PRICE_OPEN, MODE_LOWER, 0);

   // 買いシグナル
   if(OrdersTotal() == 0 && Ask <= bbL1)
   {
      // 下値ボリンジャーバンドに届いたら買い
      Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Adjust_Slippage, Ask - Loss, Ask + Profit, Comments, Magic, EffectiveTerm, Magenta);

   }
   // 売りシグナル
   if(OrdersTotal() == 0 && Bid >= bbH1)
   {
      // 高値ボリンジャーバンドに届いたら売り
      Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Adjust_Slippage, Bid + Loss, Bid - Profit, Comments, Magic, EffectiveTerm, Aqua);
   }
   
   return(0);
}

USD/CHF(US Dollar vs Swiss Franc)

アメリカドル/スイスフラン

純益 9.81
総取引数 28

総利益 76.17
総損失 -66.36

売りポジション(勝率%) 12(58.33%)
買いポジション(勝率%) 16(50.00%)

勝率(%) 15(53.57%)
負率(%) 13(46.43%)

GBP/USD(Great Britain Pound vs US Dollar)

イギリスポンド/アメリカドル

純益 0.00
総取引数 30

総利益 75.00
総損失 -75.00

売りポジション(勝率%) 15(53.33%)
買いポジション(勝率%) 15(46.47%)

勝率(%) 15(50.00%)
負率(%) 15(50.00%)

EUR/USD(Euro vs US Dollar)

ユーロ/アメリカドル

純益 20.00
総取引数 22

総利益 65.00
総損失 -45.00

売りポジション(勝率%) 13(53.85%)
買いポジション(勝率%) 9(66.67%)

勝率(%) 13(59.09%)
負率(%) 9(40.91%)

AUD/USD(Australian Dollar vs US Dollar)

オーストラリアドル/アメリカドル

純益 -10.00
総取引数 22

総利益 50.00
総損失 -60.00

売りポジション(勝率%) 10(50.00%)
買いポジション(勝率%) 12(41.67%)

勝率(%) 10(45.45)
負率(%) 12(54.55%)

EUR/GBP(Euro vs Great Britain Pound)

ユーロ/イギリスポンド

純益 25.10
総取引数 26

総利益 94.14
総損失 -69.04

売りポジション(勝率%) 16(56.25%)
買いポジション(勝率%) 10(60.00%)

勝率(%) 15(57.69%)
負率(%) 11(42.31%)

EUR/CHF(Euro vs Swiss Franc)

ユーロ/スイスフラン

純益 4.96
総取引数 19

総利益 49.77
総損失 -44.81

売りポジション(勝率%) 10(40.00%)
買いポジション(勝率%) 9(66.67%)

勝率(%) 10(52.63%)
負率(%) 9(47.37%)

EUR/JPY(Euro vs Japanese Yen)

ユーロ/日本円

純益 -17.83
総取引数 32

総利益 62.34
総損失 -80.17

売りポジション(勝率%) 16(37.50%)
買いポジション(勝率%) 16(50.00%)

勝率(%) 14(43.75%)
負率(%) 18(56.25%)

GBP/CHF(Great Britain Pound vs Swiss Franc)

イギリスポンド/スイスフラン

純益 34.72
総取引数 27

総利益 84.32
総損失 -49.60

売りポジション(勝率%) 7(57.14%)
買いポジション(勝率%) 20(65.00%)

勝率(%) 17(62.96%)
負率(%) 10(37.04%)

CAD/JPY(Canadian Dollar vs Japanese Yen)

カナダドル/日本円

純益 17.83
総取引数 26

総利益 66.88
総損失 -49.05

売りポジション(勝率%) 11(54.55%)
買いポジション(勝率%) 15(60.00%)

勝率(%) 15(57.69%)
負率(%) 11(42.31%)

GBP/JPY(Great Britain Pound vs Japanese Yen)

イギリスポンド/日本円

純益 0.00
総取引数 36

総利益 80.26
総損失 -80.26

売りポジション(勝率%) 18(55.56%)
買いポジション(勝率%) 18(44.44%)

勝率(%) 18(50.00%)
負率(%) 18(50.00%)

AUD/NZD(Australian Dollar vs New Zealand Dollar)

オーストラリアドル/ニュージーランドドル

純益 -3.62
総取引数 25

総利益 43.14
総損失 -46.76

売りポジション(勝率%) 13(38.46%)
買いポジション(勝率%) 12(58.33%)

勝率(%) 12(48.00%)
負率(%) 13(52.00%)

AUD/CHF(Australian Dollar vs Swiss Franc)

オーストラリアドル/スイスフラン

純益 19.83
総取引数 22

総利益 64.47
総損失 -44.64

売りポジション(勝率%) 11(45.45%)
買いポジション(勝率%) 11(72.73%)

勝率(%) 13(59.09%)
負率(%) 9(40.91%)

AUD/JPY(Australian Dollar vs Japanese Yen)

オーストラリアドル/日本円

純益 31.23
総取引数 31

総利益 84.74
総損失 -53.51

売りポジション(勝率%) 15(46.67%)
買いポジション(勝率%) 16(75.00%)

勝率(%) 19(61.29%)
負率(%) 12(38.71%)

CHF/JPY(Swiss Franc vs Japanese Yen)

スイスフラン/日本円

純益 4.44
総取引数 29

総利益 66.87
総損失 -62.43

売りポジション(勝率%) 12(50.00%)
買いポジション(勝率%) 17(52.94%)

勝率(%) 15(51.72%)
負率(%) 14(48.28%)

NZD/JPY(New Zealand Dollar vs Japanese Yen)

ニュージーランドドル/日本円

純益 13.39
総取引数 27

総利益 66.89
総損失 -53.50

売りポジション(勝率%) 19(57.89%)
買いポジション(勝率%) 8(50.00%)

勝率(%) 15(55.56%)
負率(%) 12(44.44%)

NZD/USD(New Zealand Dollar vs US Dollar)

ニュージーランドドル/アメリカドル

純益 -10.00
総取引数 20

総利益 45.00
総損失 -55.00

売りポジション(勝率%) 13(53.85%)
買いポジション(勝率%) 7(28.57%)

勝率(%) 9(45.00%)
負率(%) 11(55.00%)

まとめ

各通貨ペアのバックテストの結果を純益順に並べてみました。

純益 総取引数 総利益 総損失 売り
ポジション
勝率% 買い
ポジション
勝率% 勝数 勝率
(%)
負数 負率
(%)
USD/JPY 42.01 33 66.56 -24.55 16 75.00 17 70.59 24 72.73 9 27.27
GBP/CHF 34.72 27 84.32 -49.60 7 57.14 20 65.00 17 62.96 10 37.04
AUD/JPY 31.23 31 84.74 -53.51 15 46.67 16 75.00 19 61.29 12 38.71
EUR/GBP 25.10 26 94.14 -69.04 16 56.25 10 60.00 15 57.69 11 42.31
EUR/USD 20.00 22 65.00 -45.00 13 53.85 9 66.67 13 59.09 9 40.91
AUD/CHF 19.83 22 64.47 -44.64 11 45.45 11 72.73 13 59.09 9 40.91
CAD/JPY 17.83 26 66.88 -49.05 11 54.55 15 60.00 15 57.69 11 42.31
NZD/JPY 13.39 27 66.89 -53.50 19 57.89 8 50.00 15 55.56 12 44.44
USD/CHF 9.81 28 76.17 -66.36 12 58.33 16 50.00 15 53.57 13 46.43
EUR/CHF 4.96 19 49.77 -44.81 10 40.00 9 66.67 10 52.63 9 47.37
CHF/JPY 4.44 29 66.87 -62.43 12 50.00 17 52.94 15 51.72 14 48.28
GBP/USD 0.00 30 75.00 -75.00 15 53.33 15 46.47 15 50.00 15 50.00
GBP/JPY 0.00 36 80.26 -80.26 18 55.56 18 44.44 18 50.00 18 50.00
AUD/NZD -3.62 25 43.14 -46.76 13 38.46 12 58.33 12 48.00 13 52.00
AUD/USD -10.00 22 50.00 -60.00 10 50.00 12 41.67 10 45.45 12 54.55
NZD/USD -10.00 20 45.00 -55.00 13 53.85 7 28.57 9 45.00 11 55.00
EUR/JPY -17.83 32 62.34 -80.17 16 37.50 16 50.00 14 43.75 18 56.25

一番純益が大きかったのがUSD/JPYでした。

続いて2位がGBP/CHF(イギリスポンド/スイスフラン)、
3位がAUD/JPY(オーストラリアドル/日本円)となりました。

一番損失が出たのがEUR/JPY(ユーロ/日本円)となりました。

通貨ペアによって結果に大きな違いがでました。

-FX, MT4, システムトレード
-, , , ,

© 2024 FX・ビットコイン・オプションのシステムトレード開発と取引録 Powered by AFFINGER5