ぶせなさんのFXのスキャルピングでシストレ

スポンサーリンク

億り人のぶせなさんの「FXのエンベロープで1億円以上稼いだ」を検証して、よければシストレを構築しようと考えています。

スポンサーリンク

前提

投資の考え方

以前、ぶせなさんの手法を分析した以下の記事を前提にしています。

ぶせなさんの「FXのエンベロープで1億円以上稼いだ」手法を再分析する

上記の記事を参考にしたぶせなさんの手法を紹介しているサイトは以下になります。

https://toushi-kyokasho.com/how-to-use-enevelope-for-fx/

目標

年利10%以上のパフォーマンスを出せること。
(特に意味はないのですが、これは個人の感覚かと思います。10%くらいはなんとかしたいと)

シストレの投資手法

金融商品USD/JPN(他の通貨ペアでもいいと思うのですが
金融機関OANDA JAPAN(IB証券でもいいのですが、税金を考えてこっちにしました
資金500万円(これらはバックテスト用という意味です。
売買買いと売りの両方
売買数量複利効果を使う。レバレッジは3倍とする。
スプレッド0.008の固定とする。(OANDA JAPANを参考にしています。
投資判断買い発注
  • 1分足の安値がエンベロープにタッチしたら、次の足の始値でトレード開始。
    ただし、安値と終値が同一価格の場合は、見送る。
    エンベロープのタッチに関しては前提の記事を参照してください。
  • サポートラインを越していないこと。
利確高値と発注価格を比較して以下のゾーンによるPIPSで利確する。
発注時と同一の足でも利確する。なお、スプレッドは含まない。
実際の利益はゾーン1の場合は、2pips-0.8pips=1.6pipsとなります。

  • ゾーン1:2pips
  • ゾーン2:3pips
  • ゾーン3:4pips
  • ゾーン4:5pips
  • ゾーン5:6pips
  • ゾーン6:7pips

ゾーン6に関してはぶせなさんの記事では触れていませんでした。
私のアレンジになっています。

損切安値と発注価格を比較して以下のゾーンによるPIPSで利確する。
発注時と同一の足でも利確する。なお、スプレッドは含まない。
実際の利益はゾーン1の場合は、-2pips-0.8pips=-2.8pipsとなります。

  • ゾーン1:-2pips
  • ゾーン2:-3pips
  • ゾーン3:-4pips
  • ゾーン4:-5pips
  • ゾーン5:-6pips
  • ゾーン6:-7pips

ゾーン6に関してはぶせなさんの記事では触れていませんでした。
私のアレンジになっています。

売り発注買いと基本的に同じ。
高値と安値の違いとサポートラインとレジスタンスラインの違いのみ。
利確買いと基本的に同じ。高値と安値の違いのみ。
損切買いと基本的に同じ。高値と安値の違いのみ。

システム環境

開発ツール

  • バックテスト用システム:Jupyter Notebook 1.0.0
  • 本番用システム:Visual Studio Code 1.45.1

開発環境

  • OS:macOS Carolina 10.15.5
  • 言語:Python 3.7.2

本番環境

  • OS:Windows Server 2012 R2(AWS
  • 言語:Python 3.7.4

Pythonのバージョンがあっていませんね。。。気にしない気にしない。。。

バックテスト

データ

今回は、2019年のUSD_JPYの1分足を使用しました。

過去データはOANDA japanからダウンロードしたものを私が時系列の抜けを補正したデータを利用しているのですが、それは再配布禁止と規約になっていたと思いますので、手間ですが、ご自身でダウンロードしてください。

ファイル名は投資対象のシンボル名+足になっています。

  • シンボル名:USD_JPY
  • 足:M1

例)USD_JPY_M1.csv

システム

以下はGithubにアップしていますので、ダウンロードして利用してください。
(左下のファイル名をクリックするとGithubのサイトに遷移します。「Download ZIP」をクリックするとダウンロードできます。)

「結果」の欄のソースも入っています。

ソースにゴミがあったりしますが、すいません。

結果

投資回数期間日数回数/日数損益PIPS資金残上昇率利益回数損失回数勝率
24631378.6%-87.84,960,06899.2%14110557%

勝率は57%とまぁまぁなのですが、微妙に負け越していますね。

もちろん、ぶせなさんの「スキャルピング禁止の4つのタイミング」を考慮していませんから仕方ないのかも知れません。

ということで、可能なものを考慮していきます。

4. 参加者が少なく流動性を保てない時

12月24日以降と8月をまるまる対象外にしてみました。

df_log_array = pd.DataFrame.from_dict(log_array)
df_log_array.columns = df_log_array.iloc[0]
df_log_array = df_log_array.drop(0)
df_log_array.index = pd.DatetimeIndex(pd.to_datetime(df_log_array['date']), name='date')
df_log_array = df_log_array.tz_convert('America/New_York')

df_log_array = df_log_array[:"2019/12/14"]
df_log_array['m'] = df_log_array.index.month
df_log_array = df_log_array[df_log_array['m'] != 8]

print(df_log_array.pips.sum())

結果:-84.5PIPS

微妙ですが、少し損失が減りました。

1. 経済指標発表時

4に追加して検証します。

「例えば、欧州時間は17時、ニューヨーク時間は21時30分などといった具合です。」と記載がありましたが、今回は、USD/JPYですので、アメリカの発表時間を考慮しようと思います。

アメリカの発表は8時30分(ニューヨーク時間)になりますが、何時頃まで影響しているか確認してみます。

df_log_array['h'] = df_log_array.index.hour
df_log_array = df_log_array.set_index([df_log_array.index, df_log_array.index.hour]) 
df_log_array.index.names = ['date', 'hour']

print(df_log_array.groupby('hour').pips.sum())
hour
2 -0.084
3 0.036
4 -0.056
5 -0.028
8 -0.078
9 -0.060
10 -0.024
11 0.068
12 -0.056
13 -0.066
14 -0.174
15 -0.116
17 -0.122
18 -0.056
19 -0.040
20 -0.036
21 0.048
Name: pips, dtype: float64

上記のように、8時台、9時台のマイナスが大きいので、これを除いてみます。

print(df_log_array[(df_log_array['h'] !=8) & (df_log_array['h'] !=8)].pips.sum())

結果:-76.6PIPS

かなり良くなりましたが、これでは駄目ですね。

残りの禁止タイミングについては、以下のとおりです。

  • 3. 高値安値などの節目をブレイクする時:これは既にサポートラインとレジスタンスラインで考慮済み。
  • 2. 要人発言やイベント時:いつ発生するか不明なため、対応困難。

ゾーンを見直す

ゾーン6については、ぶせなさんは触れておらず、私の独自の見解で追加しました。

ということで、すべてのゾーンでの損益を見てみます。

print(df_log_array.groupby('zone').pips.sum())
zone
0 -1.092
1 -0.040
2 0.096
3 0.068
4 0.156
5 -0.032
Name: pips, dtype: float64

ぶせなさんの話では、ゾーンのレベルが上がるごとに、勝率が高くなるということでしたが、私の検証では、その傾向はあまり見られないようです。

損益がプラスになっている、ゾーン2・3・4のみでトレードするということも考えられますね。
ただし、32PIPSになります。

バックテストのまとめたもので検証する

以下をバックテストのシステムに組み込みました。

  • 12月24日以降と8月をまるまる新規トレードの対象外に。
  • ニューヨーク時間の8時台、9時台は新規トレードの対象外に。
  • ゾーンは、2・3・4のみ。
投資回数期間日数回数/日数損益PIPS資金残上昇率利益回数損失回数勝率
193136.10%28.85,013,174100.30%14574%

通算損益でプラスに転じ、勝率も約74%と高くなりましたが、投資回数がたったの19回になりました。

まとめ

残念ながら、ぶせなさんのスキャルピングを再現できないようで、シストレとしては、年利10%の利益を出すことが難しそうです。

やはり、全てを再現できないことと、ぶせなさんの感覚のところをつかめないのが、根本的な原因かと思います。

ただし、サポートラインとレジスタンスを見直したりすれば、もう少し、よくなるかも知れません。

あと、スプレッドの問題もあるかと思ったのですが、意味はなかったです。
今回のはじめのバックテストでは、246回のトレードで、-87.8PIPSの損失になっていましたが、スプレッドは0.8PIPSです。
0.8PIPS×246回= 1.968PIPSとなり、スプレッドがなくても大損失です。

ということで、今回の案は、ボツにします。

シストレの本番の構築はしません。

 

コメント

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