見出し画像

自動売買システム日経225ミニ専用をC#で作る。TradingView Strategyを考える

自動売買システム作成の目的は?
1.利益を最大化するため:
2.効率を改善するため:
3.感情的な決断を排除するため:
 等々ありますが!私は1.を最重要視しております。

TradingView Strategyを作成する

1.ボリンジャーバンドを使用するストラテジー

このストラテジーでは、日経225ミニのチャートにボリンジャーバンドを設定します。ボリンジャーバンドは、価格の標準偏差を示す帯であり、通常、価格が帯の下部に到達した時に買い、帯の上部に到達した時に売ることを目的とします。ただし、このストラテジーでは、価格が帯の上部に到達したときには、買いではなく、利益確定のために売ることが望ましいとされています。

2.モメンタム指標を使用するストラテジー

このストラテジーでは、日経225ミニのチャートにモメンタム指標を設定します。モメンタム指標は、価格の変化率を示す指標であり、通常、価格が上昇傾向にある場合に買い、下降傾向にある場合に売ることを目的とします。ただし、このストラテジーでも、価格の上昇傾向が終わった場合には、利益確定のために売ることが望ましいとされています。

3.RSIを使用するストラテジー

このストラテジーでは、日経225ミニのチャートにRSI(相対力指数)を設定します。RSIは、価格の上昇幅と下降幅の比率を示す指標であり、通常、RSIが30以下になったときに買い、70以上になったときに売ることを目的とします。ただし、このストラテジーでも、価格の上昇傾向が終わった場合には、利益確定のために売ることが望ましいとされています。

ボリンジャーバンドを使用するストラテジーをchatGTPで作成する。

//@version=4
strategy("Bollinger Bands Scalping Strategy")

// ボリンジャーバンドのパラメーター
bb_length = input(title="BB Length", type=input.integer, defval=20, minval=1, maxval=100)
bb_mult = input(title="BB Mult", type=input.float, defval=2.0, minval=0.1, maxval=10.0)

// ボリンジャーバンドの計算
basis = sma(close, bb_length)
dev = bb_mult * stdev(close, bb_length)
upper = basis + dev
lower = basis - dev

// エントリー条件
buySignal = crossover(close, upper)
sellSignal = crossunder(close, lower)

// ポジションの管理
if (buySignal)
    strategy.entry("Buy", strategy.long)
    
if (sellSignal)
    strategy.entry("Sell", strategy.short)

// プロット
plot(basis, color=color.blue)
plot(upper, color=color.red)
plot(lower, color=color.green)

chatGTPで上記のコードを作成してくれました。
traidingviewにはインジケータ、ストラテジーが数多くあります。この中にBB Strategyがありますが上記で作成されたコードとほぼ同じです。早速日経225ミニ15分足でバックテストしてみます。勝率63%問題は平均トレード(844.36円)このシステムは成行でシグナルが発生した場合注文をします。
成行の場合-5円のスプリットが発生します。往復でー10円
ですので-1000円となり844.36-1000= -155.64で損益となります。平均トレードは1000円以上ないと儲かりません。

BB Strategyバックテスト

自動売買システムで使うStrategy

BB strategyは損失になってしまいました。私の作成した勝率60%以上のstrategyを売買システムシグナルに採用します。

PZFN Long Strategy

TraidingviewのWebhokk機能を使って売買シグナルを自動売買システムに送信する。

Tradingviewのアラート作成
日経225ミニ15分足チャートを開いてPZFN Long Strategy
を適応させた後、時計アイコンボタン ー>アラート作成
(+)ボタンを押しアラート設定ダイアログを表示します。

アラート設定ダイアログ

設定タブ

条件 PZFN Longを選択する
有効期限を設定する
アラート名 PZFNL(自分の好きなアラート名)
メッセージ メッセージには下記コードをコピーして
入力してください。

{
    "passphrase": "abcdefg",
    "alert_name": "PZFNL",
    "time": "{{timenow}}",
    "exchange": "{{exchange}}",
    "ticker": "{{ticker}}",
    "interval": {{interval}} ,
    "bar": {
        "time": "{{time}}",
        "open": {{open}},
        "high": {{high}},
        "low": {{low}},
        "close": {{close}},
        "volume": {{volume}}
    },
    "strategy": {
        "postion_size": {{strategy.position_size}},
        "order_action": "{{strategy.order.action}}",
        "order_contracts": {{strategy.order.contracts}} ,
        "order_price": {{strategy.order.price}},
        "order_id": "{{strategy.order.id}}",
        "market_position": "{{strategy.market_position}}",
        "market_position_size": {{strategy.market_position_size}},
        "prev_market_position": "{{strategy.prev_market_position}}",
        "prev_market_position_size": {{strategy.prev_market_position_size}}
    }
}

コード2行目 "alert_name":に”アラート名”を設定する。

通知タブ


アラート通知ダイアログ

アラート通知タブで
   Webhook URLの チェックボックスをチェック
ngrokで取得したURLを設定する。必ず/webhook/ は入力してください。その他必要なのチェックを入れる。

これで自動売買システムの売買シグナルは準備できました。
あとは稼働検証を行うことです。


 




この記事が気に入ったらサポートをしてみませんか?