最近は、Trading Viewでストラテジーのテストを繰り返しています。Trading ViewはMT4よりも、はるかに少ないソースコードで試せて、しかも早いです。そこで、まずは王道の移動平均線のブレイクアウトをTrading ViewのPineエディタでプログラミングしてバックテストしてみました。どうせ稼げないだろうと思ったら、面白い結果になりました。
移動平均線のブレイクアウトとは?
王道の手法で、抵抗となっている移動平均線をブレイクしたら(抜けたら)、エントリーするというものです。


問題は、上記のように、すんなりブレイクせずに、何度も騙しが発生することです。ここを考慮しないとこれだけで稼ぐのは難しい
PineEditaのソースコード
さっそく、バックテスト用でPineエディタ(Trading View)で作ってみました。ソースは超簡単です。
移動平均線ブレイクのソース
200本の移動平均線は、トレンド転換。そこをブレイクアウトしたときにエントリーするロジックです。利益幅もロスカットも上下1万円幅で。
//@version=5
strategy('移動平均線ブレイク', overlay=true)
//マジックナンバー
MAGIC_LONG_ENTRY = '202202021906'
MAGIC_LONG_EXIT = '202202021908'
//入力
len = input(title='SMA本数', defval=200)
profit_delta = input(title='利益確定値幅', defval=10000)
losscut_delta = input(title='ロスカット', defval=10000)
lot = input.float(title='ロット', defval=1)
//
// ストラテジー
//
//MAをクロスオーバー? True or False
Entry_point1 = ta.crossover(close, ta.sma(close, len))
//エントリー
strategy.entry(id=MAGIC_LONG_ENTRY, direction=strategy.long, qty=lot, when=Entry_point1)
//クローズ
strategy.exit(id=MAGIC_LONG_EXIT, from_entry=MAGIC_LONG_ENTRY, profit=profit_delta, loss=losscut_delta)
入力で設定値を変えてテストが楽になるようにしました。

バックテスト
対象通貨
BTC/JPY
パラメーターの設定値
- 移動平均線は単純移動平均線
- 本数は200
- ブレイクした時の利益確定値幅=10000円
- 損切り=10000円
- ロット1枚
結果
結果は損すると思ったら、長い目でみると、なんとギリギリ利益でます。ビットコインだったから、おそらく良かったかと。まさかの勝率50%の期待値(プロフィットファクター)1越え。

- 純利益 30000円
- 勝率 50.91%
- プロフィットファクター 1.037
- 最大ドローダウン18万

こういう場合は、ちょっと調整すれば利益でます。
設定値改良版のバックテスト
設定値だけ、あれこれイジってみました。そもそも、200本の移動平均線は、ブレイクしないケースが多いので騙しが多い。でも、少しだけいつも抜けそうになる事はあります。そこも考慮して、利確の値幅を下げてみました。
パラメータ設定値
赤字が変更点です。
- 移動平均線は単純移動平均線
- 本数は200
- ブレイクした時の利益確定値幅=5000円
- 損切り=2000円
- ロット1枚
結果
パラメータの調整だけで、利益は6倍になりました。

- 純利益 191,000円
- 勝率 36.55%
- プロフィットファクター 1.44
- 最大ドローダウン36,000円
勝率よりも期待値(プロフィットファクター)
プログラムのトレードでは、勝率はあまり関係ないです。プロフィットファクター(期待値)が重要になります。
プロフィットファクターが1未満だと、それはどんどん目減りする事を意味します。勝率が高くても、一発の負けで大損するEAも世の中には多々あります。

MT4で売れているEAは、だいたいプロフィットファクターは1.2くらいです。それくらいあれば、かなり上出来になります。
ソース改良
いきなり、まあまあうまくいったのですが、普通は裁量でトレードする際はMACDとか、ストキャスティクスとかRCIとか、そういうテクニカルは必ずみますよね。
さきほどは、全く考慮していなかったので勝率もかなり低めでしたが、今回はストキャスティクスを見て80以上ではブレイクしても買わないようにしてみました。
移動平均線ブレイク(ストキャスティクス考慮版)のソース
//@version=5
strategy('ストラテジーテスト', overlay=true)
//マジックナンバー
MAGIC_LONG_ENTRY = '202202021906'
MAGIC_LONG_EXIT = '202202021908'
//入力
len = input(title='SMA本数', defval=200)
profit_delta = input(title='利益確定値幅', defval=5000)
losscut_delta = input(title='ロスカット', defval=2000)
lot = input.float(title='ロット', defval=1)
//
// ストラテジー
//
//MAをクロスオーバー? True or False
ma_cross = ta.crossover(close, ta.sma(close, len))
//ストキャスティクス取得
stch = ta.stoch(close, high, low, 14)
//ストキャスティクス未満?
st_under = if stch < 80
true
else
false
Entry_point1 = ma_cross and st_under
//エントリー
strategy.entry(id=MAGIC_LONG_ENTRY, direction=strategy.long, qty=lot, when=Entry_point1)
//クローズ
strategy.exit(id=MAGIC_LONG_EXIT, from_entry=MAGIC_LONG_ENTRY, profit=profit_delta, loss=losscut_delta)
結果

- 純利益 140,000円
- 勝率 39.15%
- プロフィットファクター 1.609
- 最大ドローダウン21000円

純利益が減ったのは、単純にトレード回数が下がったからです。約半分で、この結果なので、倍くらいは稼げるように変わったかと思います。
Trading Viewについて
今回、検証で使ったソフトは、ブラウザで動作するTrading Viewです。私は有料プランを使っていますが、無料では3つまでインジケーターを入れることができます。この3つを何にするかがポイントになります。スマホアプリとも連動しているので、超便利です。

まとめ
正直、移動平均線のブレイクは、単純にプログラム組むだけでは稼げないと思っていたので、結果は意外にも稼げました。ただし、ビットコイン以外ではダメです。散々な結果になります。









ご質問はコメント欄からお願いします