自作EA(自動売買ソフト)、『Moon (ムーン)』を紹介します。

Moon(ムーン)は、GogoJungleで販売する予定です。

商品ページ

 

開発の背景

『Monn』は、5分足の逆張り手法(RSI)を採用したシステムです。

とてもシンプルなトレード手法です。

 

以前の私は、RSIに対して否定的でした。

RSIに優位性がない事を証明すべく、検証を行った結果、面白い事が分かりました。

RSIを用いたトレードは、時間帯により、損益の傾向が全く異なることを発見しました。(詳細記事:RSI(中央値決済)

時間帯の傾向(日本時間の深夜から朝にかけて利益が出やすい)を用いたのが、本EAになります。

(朝7時頃はスプレッド拡大時間であり、この時間帯の結果は信用していない)

 

優位性の仮説

なぜ、RSIは時間帯によって優位性が異なるのでしょうか?

損失が多い時間帯(16~24時頃)は、世界中のトレーダが活気がある時間帯です。

一方で、利益がでる時間帯(18~9時頃)は、アジア~欧米へと徐々に夜になる時間帯です。

本手法は5分足のみ機能するので、デイトレードが対象となります。

デイトレードは、ポジションに利益がある場合、寝る前に利確(又は損切ラインの移動)をすることが多いと思います。

一方で、プロスペクト理論では、ポジションに損失がある場合、塩漬けにする傾向があると言われています。

RSIは逆張り指標であり、デイトレーダの夜の利確(又は損切ラインの移動)が逆張りの収益ドライバになっている可能性があります。

あくまで仮説ですが、この仮説が正しければ、デイトレーダがいなくならない限り、優位性が維持されます。

 

特徴

主な特徴は、以下の3つです。

(1)優位性の証拠

(2)ポートフォリオ効果

 

優位性の証拠

優位性がある手法は、少し変化しても優位性が失われる事はありません。

以下の検証で、優位性が維持されることを確認しています。

   ① 通貨ペアを変えても機能する。

   ② 耐スプレッド

   ③ 異なる証券会社のヒストリカルデータでも機能する。

 

通貨ペアを変えても機能する

『Moon』は、通貨ペアに関わらず、機能します。

以下に、バックテスト結果のプロフィットファクターを示します。

詳細は、バックテスト(Moon)を参照下さい。

 

✔ 『Moon』は、4つの通貨ペアで、優位性がある事を確認しています。

 

耐スプレッド

✔ 『Moon』は、通常のスプレッドに対して、広いスプレッドでも優勢がある。

 

通常時のスプレッドは、以下の通り(参考:GogoJungleのスプレッド比較

異なる証券会社のヒストリカルデータでも機能する

証券会社が異なると、ヒストリカルデータも異なります。

一つのヒストリカルデータで最適化したシステムは、異なるヒストリカルデータで評価すると激しく低下する事があります。

以下に、異なる証券会社(B社※)のヒストリカルデータを用いた場合のバックテスト結果(プロフィットファクター)を示します。

 

✔ 『Moon』は、異なるヒストリカルデータでも、優位性があることを確認しています。

※ 証券会社の違い

A社 : 16年分のデータ(2005~2020年) GMT:2(冬)、3(夏)

B社 : 14年分のデータ(2007~2020年) GMT:9(冬)、9(夏)

 

ポートフォリオ効果

『Moon』は、1つの通貨ペアで最適化していないので、複数通貨ペアでポートフォリオを構築する事ができます。

丁寧に、通貨ペアのポートフォリオについて、説明します。

最後まで読むと、5通貨ペアで運用するメリットが理解できます。

 

ポートフォリオを組む理由------------------------------------------------------------------

ポートフォリオを組むことで、リスクを小さくする事ができます。

リスクとは、ばらつきの事です。

さらに、分かりやすく言うと、ドローダウンの事です。

例えば、100万円の利益を目指す場合、単品では50万円のドローダウンを経験するのに対し、ポートフォリオを組むと30万円のドローダウンで済むようになります。

途中に発生するドローダウンは無視できる人は、単品の運用で問題ありません。

少しでも、ドローダウンを小さくしたい人は、ポートフォリオを組むことを考えるべきです。

------------------------------------------------------------------------------

 

通貨ペアの相関係数

ポートフォリオを組むときのポイントは、それぞれの相関係数が低い事です。

相関係数は -1.0 ~ 1.0 の間の数字で、強弱を測る指数で、目安は以下の通りです。

『Moon』における、5通貨ペアの相関係数を以下に示します。

『クロス円』は、それぞれ弱い相関があり、それ以外はほとんど相関がありません

 

ポートフォリオ効果

5通貨ペアでポートフォリオを組むことで、リカバリーファクターを改善する事ができます。

リカバリーファクター = リターン ÷ 最大ドローダウン(下表では、Return/DD Ratio

リカバリファクターを改善すると、小さなリスクで大きなリターンを狙う事ができます。

 

2通貨ペアでポートフォリオを組んだ場合

USDJPYが、最もリカバリーファクターが高い(13.17)。

USDJPYと相関係数の低いGBPUSDと組み合わせると、リカバリーファクターは改善する(19.07)

 

2通貨ペアのバックテスト結果

以下に2通貨ペアを組み合わせた場合のパフォーマンスを示します。

 

≪2通貨ペアのパフォーマンス

≪2通貨ペアの収益カーブ

EAの設定

 * Macic_number = 10210322

   マジックナンバーです。

   最大10つのポジションを持つため、102103220~102103229に割り当てています。

   複数の通貨ペアを同時に稼働させる場合も同じ値で問題ありません。

 * 許容スリッページ(pips= 1.0(初期値)

   スリッページがこの値を超えた場合は、トレードが見送られます。(ストリーミング方式のみ)

 * 許容スプレッド(pips= 1.0(初期値)

   スプレッドがこの値を超えている場合は、トレード(エントリ/決済)が見送られます。

   この値を小さくするとトレード成績は向上しますが、見送られる回数が増加します。

   ご使用される証券口座のスプレッドを確認し、適宜修正下さい。

   通常時のスプレッド+α(余裕)が目安です。(参考:GogoJungleのスプレッド比較

 * 最大ポジション数 = 10(初期値)

   同時に保有する最大ポジション数を設定します。

   前のポジションが決済されていない状態でエントリ条件を満足した場合に、最大ポジション数までエントリします。

   奇数(1,3,・・・,9)は、打診ポジション(注記参照)です。

   最大ポジション数は偶数(2,4、・・・、10)を設定下さい。(最大:10)

 * 複利: true、単利:false =true(初期値)

   "ture"が複利モード

   "false"が単利モード

 * 複利率(%)= 0.5(初期値)

   複利モードを選択した場合に、参照される値(%)です。

   口座残高に合わせて、損切額が自動計算されます。

    例)0.5(%)と設定した場合

     口座残高 100万円の場合 損切額は5,000円に設定される。

 * 損切額(単利)= 5000(初期値)

   単利モードを選択した場合に、参照される値です。

   口座通貨に合わせて、損切額を設定します。

    例)5,000円(50ドル)を設定する場合、以下の値を入力

       円口座  :5,000

       ドル口座  :50

マニュアル設定

以下は、ご自身でロット、損切幅を調整したい方の為に用意したパラメータです。

損切額を元に運用される方は、以下の設定は不要です。

サーバ時間が異なる場合は、サーバ時間のみ変更下さい。

 * 打診ロット =0(初期値)

   奇数ポジションは、打診ポジションです。(注記参照)

   打診ポジションは、最小ロットを推奨します。

   最小ロット以下の値(例:0)を入力すると、最小ロットとなります。

 * 通常ロット =0(初期値)

   偶数ポジションは、通常ポジションです。

   通常ポジションのロットを固定して運用したい場合に、値を入力します。

   ”0”を入力すると、損切額に合わせたロットが、自動計算されます。

 * 損切幅(pips)=0(初期値)

   通常ポジションの損切幅を固定したい場合に、入力します。

   損切幅に”0”を入力すると、自動的に損切幅が選定されます。

   損切幅(自動) = 4時間足のボラティリティ(20本平均)×損切倍率

 * 損切倍率=1(初期値)

   損切幅(pips)に”0”を入力した場合のみ、参照されます。

   損切倍率は、損切幅(自動)の調整に使用します。

   損切幅(自動) = 4時間足のボラティリティ(20本平均)×損切倍率

 * サーバ時間(冬時間)(GMT+〇)

   FX証券会社のサーバ時間(MT4表示時間:2 or 9)を入力して下さい。

   外為ファイネストの場合は、変更不要(2を入力)

   日本時間のサーバの場合は、9を入力

 * 週末にポジションなし= false(初期値)

   ”true”を選択した場合、週末にポジションを保有しません。

   金曜日の深夜よりトレードしなくなります。

   祝日や変則時間の場合は、保有される場合があります。

 注記)打診ポジションの扱い

  奇数ポジション(1,3,・・・,9)は、打診ポジションです。

  偶数ポジション(2,4、・・・、10)は、通常ポジションです。

  打診ポジションは、通常ポジションの参照用です。

  打診ポジションもプラスの期待値を持っていますが、通常エントリより小さく、最小ロットを推奨しています。

  打診ポジションの損切幅は、損切価格に合わせて自動的に設定されます。

 

まとめ

自作EA(自動売買ソフト)、『Moon (ムーン)』を紹介しました。

Moon(ムーン)は、GogoJungleで販売する予定です。

商品ページ