バックテストをしてみた2(WPR+MACD)

コラム

前回、長期保有しておきたいETFの銘柄について、バックテストを行い、損益がどのくらい出るのか評価してみたのですが、あまり良い結果ではなかったので、エントリー・決済のタイミングを調整し、再度挑戦してみました。

環境設定

  • バックテストはTradingViewを使用(ストラテジーテスター)
  • インジケーターはWPR・MACDを使用
  • 時間足:日足
  • WPR設定(15日)
  • MACD設定(fast:12、slow:26、MACD:9)
  • 検証期間(2020/1/1~2021/8/29現在)

エントリー:WPR売られすぎの場合に買い、決済:MACDデッドクロスの場合に売り

使用プログラム

//@version=4
strategy("WPR MACD Strategy", overlay=true)

start_year = input(title="StartYear", type=input.integer, defval=2020)
start_month = input(title="StartMonth", type=input.integer, defval=01)
start_day = input(title="StartDay", type=input.integer, defval=01)

//開始日時
test_start = timestamp(start_year, start_month, start_day, 00, 00)

end_year = input(title="EndYear", type=input.integer, defval=2050)
end_month = input(title="EndMonth", type=input.integer, defval=12)
end_day = input(title="EndDay", type=input.integer, defval=31)

//終了日時
test_end   = timestamp(end_year, end_month, end_day, 00, 00)

//テスト期間の指定
is_test = test_start <= time and  time <= test_end

length = input(title="length", type=input.integer, defval=15)
_pr(length) =>
	max = highest(length)
	min = lowest(length)
	100 * (close - max) / (max - min)

percentR = _pr(length)

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)  // MACD
aMACD = ema(MACD, MACDLength)                           // Signal
delta = MACD - aMACD                                    // Histogram

shortPosition = crossunder(MACD, aMACD)

if (is_test)
    if (percentR < -80 )
        strategy.entry("Buy", strategy.long, comment="Buy")
    
    if (shortPosition)
        strategy.entry("Sell", strategy.short, comment="Sell")
    

検証結果

分類銘柄コード銘柄名前回勝率前回PF今回勝率今回PF
先進国株式1657iシェアーズ・コア MSCI 先進国株(除く日本) ETF66.67%0.44847.37%0.598
新興国株式1658iシェアーズ・コア MSCI 新興国株 ETF73.68%0.78957.14%0.998
日本株式1306NEXT FUNDS TOPIX連動型上場投信63.64%1.18568.18%5.727
米国株式1557SPDR S&P500 ETF60.00%0.47755.56%0.719
債券1497iシェアーズ 米ドル建てハイイールド社債 ETF(為替ヘッジあり)52.17%0.31839.13%0.426
国債1482iシェアーズ・コア 米国債7-10年 ETF(為替ヘッジあり)68.18%2.22750.00%0.918
貴金属1540純金上場信託(現物国内保管型)50.00%0.89742.11%1.110
貴金属 1542純銀上場信託(現物国内保管型)52.63%0.68064.00%2.286
貴金属 1541純プラチナ上場信託(現物国内保管型)52.38%1.12555.56%1.174
先進国株式VEA Vanguard FTSE Developed Markets ETF 80.95%0.89247.37%0.546
新興国株式VWOVanguard FTSE Emerging Markets ETF63.16%0.73863.16%2.210
米国株式SPYSPDR S&P 500 ETF Trust68.18%1.15860.00%1.134
債券 HYGiShares iBoxx $ High Yield Corporate Bond ETF70.83%1.24368.42%1.138
国債TLTiShares 20+ Year Treasury Bond ETF55.56%0.71160.00%1.235
貴金属GLDSPDR Gold Share59.09%1.07636.84%1.950
貴金属IAUiShares Gold Trust63.64%1.10836.84%2.008
貴金属SLViShares Silver Trust64.71%1.39963.16%0.669
貴金属PPLTAberdeen Standard Physical Platinum Shares ETF65.22%0.89233.33%0.171
石油USOUnited States Oil Fund, LP56.25%0.35758.82%0.354
石油UNGUnited States Natural Gas Fund, LP61.90%1.42736.67%0.399
農産物DBAInvesco DB Agriculture Fund68.42%1.15071.43%1.520
※PF:プロフィットファクター=総利益÷総損失

考察

エントリー条件はWPRインジケータを採用しました。WPRにこだわっていませんが、売られすぎのタイミングであれば良いので、前回と同じにしました。

決済条件はMACDを採用しました。移動平均のゴールデンクロス・デッドクロスではタイミングが遅いため、経験上、MACDにしています(損切りは設定しませんでした)。

前回よりは良くなったのですが、いまいちです。

私の取引スタイルは、信用取引やCFD取引はせず、現物買いですので、次回は上記条件に追加して、含み損の場合は「塩漬け」でシミュレーションしてみようと思います。

タイトルとURLをコピーしました