DMM FX
Pineスクリプト

Pine Script(Pineスクリプト)入門解説(15)ストラテジーの「最適化」をめぐるTradingViewとMetaTraderの違い

はじめに

今回はPineScript入門ガイドの15回目です。前回は、TradingViewのストラテジーとバックテストの概要をご紹介しました。今回はストラテジーのパフォーマンスの「最適化」について、まとめたいと思います。

最適化とは

最適化(Optimization)とは、「ストラテジーの変数(パラメーター)をいろいろと試して、収益性や安定性の高いパラメーターの組み合わせを見つける作業」を言います。

MetaTraderでは、ストラテジーのことをEA(エキスパート・アドバイザー)と呼び、EAを開発してバックテストをするだけでなく、EAを最適化する機能があります。MetaTrader4(MT4)に最適化の機能はありますが、MetaTrader5(MT5)では最適化の機能がとても進化しています。したがって、EAの開発とバックテスト・最適化までをMT5で行って、実際のEAの運用はMT4(VPS利用)で行う方法が現実的であると思います。(私の自作EAは、このかたちで開発・運用しています。)

MT5による最適化は、本当に便利です。8コアのCPUでしたら、8つの作業を同時に動かせますし、さらにクラウド上の別のマシンを使ったりするサービスも利用できますので、MT4で数十時間かかる最適化作業も、MT5では数分で終えたりすることができます。

MT5による最適化については、別の記事として書きたいと思います。

TradingViewでストラテジーの最適化はできる?

一方、TradingViewの現行バージョンのストラテジー・テスターでは、いわゆる「最適化」のメニューはありません。

MetaTraderのようにいろいろなパラメータの最適な組み合わせを自動で見つけることは、TradingViewではできません

自動最適化は、マシンリソースや時間をとても消費する作業なので、クラウドで動いているTradingViewの機能としては、そもそも馴染まないでしょうね。

しかし、「手動」による最適化作業は、TradingViewで可能です。しかも、これが意外な可能性を秘めていることをこれから説明します。

サンプル・ストラテジーのバックテスト

前回記事で作成したサンプル・ストラテジー「EMAクロス+固定TP/SL」を例にして、TradingViewによるストラテジーの「手動」最適化の作業を説明していきたいと思います。


このストラテジーのロジック、およびバックテストの前提は、以下の通りです。

  • 短期EMA(25期間)と長期EMA(75期間)のゴールデン・クロスで買いエントリー
  • 短期EMA(25期間)と長期EMA(75期間)のデッド・クロスで売りエントリー
  • 利確は、70pips固定
  • ロスカット(損切り)は、50pis固定
  • 短期EMAおよび長期EMAの期間、利確pips、ロスカットpips、およびバックテストの開始日・終了日は、入力項目として後で変更可能とします
  • バックテストの前提:
    • 対象通貨ペア・時間足:ユーロドル・1時間足
    • 対象期間: 2019年1月1日~2019年12月31日までの1年間
    • 基準通貨:円
    • 初期資金:100,000円
    • オーダーサイズ:1,000通貨
    • 手数料:1,000通貨のオーダーの1往復(エントリー・決済)で60円
    • ピラミッディング:無し
    • スリッページ:無し

バックテストの結果は、以下の通りでした。

  • 純利益:8,865円
  • 総トレード数:66
  • プロフィットファクター(PF):1.734

 

上記の結果は、テスト期間が1年だけトレード数も少なすぎプロフィットファクターが良すぎなので、実用に耐えうるストラテジーに改良するためには、ここから長い検討が必要です。

サンプル・ストラテジーの「手動」最適化

上記のサンプル・ストラテジーについて、最適化の対象として変更できるパラメータは、以下の通りです。

  • バックテストの対象期間(変数は、開始年・開始月・終了年・終了月の4つ)
  • 短期EMAの期間(初期値は25)
  • 長期EMAの期間(初期値は75)
  • 利確の固定pips(初期値は70)※ポイント表示のため700
  • ロスカットの固定pips(初期値は50)※ポイント表示のため500

ここでMetaTraderでは、変更するパラメータの開始値・増減値・終了値を設定して自動最適化を行います。(バックテストの対象期間や通貨ペアや時間足などは、別途設定します。)

一方、TradingViewでは、以下の図のように、設定ダイアログの入力値を手動で増減させることで、即時に、純利益やプロフィットファクターの変化を確認できます。

まず、各種パラメータ(短期・長期EMAの期間や利確・損切りのPips数など)を設定ダイアログ上で増減させると(上図の①)、その都度、純利益やプロフィット・ファクターの変動を即座に確認できます(上図の④)。また、通貨ペアの変更(②)や時間足(③)を画面上で変更しても、同様に純利益やプロフィット・ファクターの変動を即座に確認できます。

この「手動のパラメータ変更と即時の結果確認」は、MetaTraderには無い新鮮な感覚があります。パラメータのあらゆる組み合わせは試せなくても、俯瞰的で簡易的な最適化は可能です。また、ストラテジー(EA)の開発に特化せずに「過去データの検証」という観点では、むしろTradingViewの方が可能性があるように思います。

今回のサンプル・ストラテジーについては、以下のような俯瞰的・簡易的な最適化を実施しました。赤い行が最もパフォーマンスが良い結果となりました。

通貨ペア時間足短期EMA
期間
長期EMA
期間
利確
pips
損切
pips
純利益トレード数プロフィットファクター
EURUSD
(初期値)
H1257570508,865661.734
EURUSDH1107570504,5081061.248
EURUSDH12515070503.150561.266
EURUSDH12575904012,331662.068
GBPUSDH1257570502,580741.133
GBPUSDH1257590508,279741.424
USDJPYH125757050-117880.993
EURJPYH125757050-657790.966

 

ユーロドルは最も流動性が大きいので、テクニカル指標が最も効きます。単純なロジックでも、いろいろな検証ができると思います。

なお、パラメータを大量に設定した複雑なストラテジー(EA)を作って、MT5で数万~数10万個の組み合わせから最適化したとしても、「過剰最適化(カーブフィッティング)」という状態に陥ると、過去のある特定の期間だけ通用して、未来の期間には通用しない、ということがよくあります。

TradingViewとMT5の併用

あるロジックを思いついたら、まずはTradingViewのストラテジーをつくって大枠の有効性を検証して、いけそうであれば、MetaTrader(特にMT5)でさらに詳細の開発・最適化を行う、といった方法もありではないかと思います。

 

スポンサーリンク

海外のFX会社おすすめ・ベスト3
XM

運営歴10年、口座数3.5百万、196か国対応、Tier1ライセンス所有
最大レバレッジ888倍、最小入金5ドル、追証なし、口座開設ボーナス3,000円、入金ボーナスも多彩
多彩な教育・リサーチコンテンツ
ボーナスで有名な大手ブローカーですが、最大の強みは約定力、信頼度もトップクラスです。

>> XMのウェブサイトはこちら

HotForex

2010年から運営、Tier1ライセンス所有のグローバル大手ブローカーが日本人向けサービスを拡大中
口座数2百万、27か国言語、業界表彰歴35件
最小入金5ドル、レバレッジ1000倍、追証なし
多彩なボーナス、多彩なコンテスト
FXだけなく、仮想通貨、米国株・アジア株・欧州株、ETF、各国の株式指数、VIX指数、原油、商品などの投資もあわせて研究したければ、HotForexがイチオシの品ぞろえです。

>> HotForexのウェブサイトはこちら

Exness

運営歴12年、HotForex・XMに劣らないグローバル大手、Tier1ライセンス・ブローカーが日本向けサービスにも注力展開中。
最小入金1ドルで、レバレッジは無限大(条件あり)、追証なし、通貨ペアの数は、驚異の107ペア!
月次の口座数、取引高、デロイトの監査もすべて開示。レアルマドリッドのスポンサー
老舗巨大ブローカー、ユニークさは抜群です。

>> Exnessのウェブサイトはこちら

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