ダブルストキャスティクスオシレーター戦略


作成日: 2023-09-17 18:26:16 最終変更日: 2023-09-17 18:26:16
コピー: 0 クリック数: 845
1
フォロー
1617
フォロワー

概要

この戦略は,2つの異なるパラメータセットのランダムな指標を使用し,多空条件判断を実現し,典型的な均線交差システムに属します. 急速な指標を使用して短期的な傾向と入場タイミングを判断し,遅い指標は大きな傾向の方向を決定し,両者は取引信号を形成します.

戦略原則

  1. 急速ランダム指数K値は短期トレンドの方向を示し,K線が移動平均SM1を交差して入場信号を形成する.

  2. 慢速ランダム指標のK値は,大トレンドの状況を反映する. 速速指標が反転信号を示すとき,慢速指標が大方向を判断する合理性を確認する.

  3. K速がSM1を突破するときは看板信号とみなし,K速が50より大きいときは,大傾向向上を示し,多行条件を満たす.

  4. KがSM1を速やかに下を通るときは,下向きの信号とみなす.Kが50未満になると,大傾向は下向きであり,空調条件を満たす.

  5. 固定比率のストップストップを設定する.

優位分析

  1. 2つのランダムな指標で騒音をフィルタリングし,成功率を上げます.

  2. SM1のパラメータは小さく,K指標は感度が高く,ショートラインの機会を捉えるのに適している.

  3. 大周期は大きなトレンドを判断し,小周期は逆転を捕捉する.多空戦略はほとんどの市場状況に合致する.

  4. 固定ストップ・ストップ・ポイント,リスク・リターン・コントロール,過大に波動しやすいものではない.

リスク分析

  1. 指数間の偏差が発生すると,取引機会が逃れ,または誤った信号が生じます.

  2. 固定ストップ・ストラストポイントは柔軟性がないため,市場の変化に合わせて調整できない.

  3. lbl指数パラメータは,繰り返し最適化テストを必要とし,不適切な場合は失効する.

  4. 短期取引は取引頻度が高く,取引コストが高くなる.

最適化の方向

  1. 他の指標やフィルタリング条件を追加して,指標信号の質を確保する.

  2. 異なるパラメータの組み合わせをテストし,最適なパラメータ配置を見つけます.

  3. 波動率指標などと組み合わせて,ストップ・ストップ・損失の水平の動的調整を行う.

  4. 時間のフィルターで,重要な出来事を回避し,不合理な波動を制御する.

  5. 資金管理戦略の最適化,選択的にポジションの増減,資金使用効率の向上.

要約する

この戦略は,快速でランダムな指標を統合して多空取引システムを形成する.しかし,さらに最適化パラメータを設定する必要があり,トレンド,波動率などの指標をフィルタリング条件として補足する.この戦略は,リスクを厳格に制御した場合に,比較的安定した余剰収益を得ることができる.

ストラテジーソースコード
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Double Stochastic", overlay=true)

//-----------------------Stochastics------------------------//

c= security(syminfo.tickerid,timeframe.period , close)  
h= security(syminfo.tickerid, timeframe.period, high)  
l= security(syminfo.tickerid, timeframe.period, low)  

c1= security(syminfo.tickerid, timeframe.period, close)  
h2= security(syminfo.tickerid, timeframe.period, high)  
l1= security(syminfo.tickerid, timeframe.period, low)  

K1 = input(5, title="K", minval=1, title="Leading K")
SM1 = input(2, title="Smooth", minval=1, title="Leading Smooth ")
k = ema(stoch(c, h, l, K1), SM1)

K2 = input(97, title="K", minval=1, title="Lagging K")
D2 = input(3, title="D", minval=1, title="Lagging D")
SM2 = input(1, title="Smooth", minval=1, title="Lagging Smooth")
k1 = ema(stoch(c1, h2, l1, K2), SM2)

// buy ((k[2] < 40 and k > 40) and bars_up > 0 and k1 > 50) 
// sell (k[2] > 60 and k < 60) and bars_down > 0 and k1 < 50

//-----------------------Mechanics------------------------//

buy = k1 > 50 and k < 30 and k > k[1] ? 1 : 0
sell = k1 < 50 and k > 70 and k < k[1] ? 1 : 0

buy_val = valuewhen(buy == 1, close, 1)
sell_val = valuewhen(sell == 1, close, 1)

buy_close = buy_val * input(1.20, minval=0.1)
sell_close = sell_val / input(1.20, minval=0.1)

//------------------------Buy/Sell-------------------------//

longCondition = buy == 1
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

close_long = close >= buy_close
if (close_long)
    strategy.close("My Long Entry Id")
    
sellCondition = sell == 1
if (sellCondition)
    strategy.entry("My Short Entry Id", strategy.short)

close_short = close <= sell_close
if (close_short)
    strategy.close("My Short Entry Id")