出来高とテクニカル分析を用いたBOT戦略(Pine script)

2018/12/31 追記

最後にちょっとしたおまけを追加しました。それと本ノートは大した内容でもないので販売停止の意味を込めて金額上げておきます。

2018/12/30 追記

今までに買ってくださった方ありがとうございます。そして大した内容でなくて申し訳ございません。プログラミング関係で何か気になることがありましたらTwitterの @demekinnomimi までDMをくだされば、100円分の対応はいたしますので、今後ともご贔屓にして頂けると嬉しいです。

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


TradingviewのPine scriptで実装した、VWMAとEMA(or SMA)と出来高を使った戦略です。

特定のバックテスト期間で1分足のシャープレシオ1以上の戦略の基になったPine scriptです。この戦略のシャープレシオは0.5~0.8あたりになります。

この戦略を搭載するBitflyerのBOTは、ソースコードが僕のブログ(http://crpt.hatenablog.com/entry/2018/02/16/001432)の記事に書いてあるので、もし参考になれば見ていただければと思います。

暴落暴騰に対応するため、出来高を売買判断に活用しています。

画像1

以下、Pine scriptになります。Pine scriptの使い方は下記の通りです。

Tradingview(https://jp.tradingview.com/chart/?symbol=BITFLYER:FXBTCJPY)⇨Pineエディタ⇨空の投資戦略スクリプト⇨保存⇨チャートへ追加

これでバックテストができます。

//@version=3
strategy(title="Strategy_for_Bitflyer_1min",overlay=true)

my_vol_ave(vol, length) =>
    sum = vol
    for i = 1 to length-1
        sum := sum + vol[i]
    sum / length
vol_len = input(2)
vmwa_len = input(40)
sma_len = input(40)
condition_margin = input(0.000758)
shortCondition = crossunder(vwma(close,vmwa_len),ema(close,sma_len)*(1-condition_margin))
longCondition = crossover(vwma(close,vmwa_len),ema(close,sma_len)*(1+condition_margin))
shortCloseCondition = longCondition
longCloseCondition = shortCondition

if(strategy.openprofit>close*10/10000)
    strategy.close("S",shortCloseCondition and volume>my_vol_ave(volume,2))
    strategy.close("L",longCloseCondition and volume>my_vol_ave(volume,2))
if(strategy.openprofit>close*-20/10000)
    strategy.close("S",shortCloseCondition and volume<my_vol_ave(volume,2))
    strategy.close("L",longCloseCondition and volume<my_vol_ave(volume,2))

if(volume>my_vol_ave(volume,vol_len))
    if(longCondition)
        strategy.entry("L",strategy.long)
    if(shortCondition)
        strategy.entry("S",strategy.short)

以上。このPine scriptのcondition_marginの値を動的に設定して標準偏差を使ってエントリーのタイミングを制限すると下記の画像のような戦略になります。

画像2

何かご質問等がありましたら、@demekinnomimi までDMください。


ここから先は

2,609字

¥ 10,000

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