双重ストキャスティック戦略

作者: リン・ハーンチャオチャン, 日付: 2023年11月7日 15:25:19
タグ:

img

概要

ダブルストキャスティックス戦略は,現在の期間のストキャスティック指標と複数のタイムフレームを計算し,低価格で購入し,高価格で販売することを目的として,上昇と下落ゾーンを判断する.当期および3倍のストキャスティック指標の両方を計算し,トレンドを追跡するために異なるタイムフレーム指標のクロスオーバーに基づいて取引信号を生成する.

戦略の論理

この戦略は,2つのストキャスト指標を同時に計算する.最初のセットは,現在の期間のストキャスト,すなわちKとD値である.第二のセットは,現在の期間の3倍のストキャストである,すなわちMTFKとMTFDである.

MTFKが50を超え,現在のKがDより大きくなったとき,買取信号が生成され,上昇ゾーンがロングに行くことを示します. MTFDが50を下回り,現在のKがD未満になったとき,売り信号が生成され,下落ゾーンがショートに行くことを示します.

したがって,この戦略は,上昇と下落のゾーンを判断し,価格動向を追跡するために二重ストカスティック指標を使用します.上昇のゾーンで長引きし,下落のゾーンで短引きし,低価格で購入し,高価格で販売するという目標を達成します.

具体的には,長いエントリ論理は:

longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD  

簡単なエントリー論理は

shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD

ここで mtfK は 3x 期間の K 値, mtfD は 3x 期間の D 値である. mtfK が 50 を越え, k> d が越えるときに長信号が生成される. mtfD が 50 を越え, k< d が越えるときに短信号が生成される.

ストップ・ロスの論理も設定する.ロングの場合,mtfDが上帯を下回ると,接近信号が生成される.ショートの場合,mtfKが下帯を下回ると,接近信号がトリガーされる.

利点分析

この戦略の利点は次のとおりです.

  1. 双重ストキャスティックを使用すると,上昇と下落のゾーンの判断がより正確になります.現在の期間の指標は短期的傾向を判断し,より大きな期間の指標は長期的傾向を判断します.両方を組み合わせることで,傾向をよりよく捉えることができます.

  2. 異なるタイムフレーム指標のクロスオーバーに基づく取引は,トレンドを効果的に追跡し,低価格の購入と高価格の販売を達成することができます.

  3. ストップロスの論理はリスクを制御し,損失を一定程度制限するのに役立ちます.

  4. 戦略の論理はシンプルで明瞭で リアルタイムの取引で理解し実行しやすいのです

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 双重ストキャスティックは誤った信号を生成し,不必要な取引を引き起こします.例えば,突然の出来事によって引き起こされる短期的および長期的トレンドの差異です.

  2. 誤ったストップ損失設定により損失が拡大する可能性があります. 閉じ込まれるのを避けるために合理的なストップ損失距離を設定する必要があります.

  3. 戦略によって生成される頻繁な取引は,手数料による利益に悪影響を及ぼす可能性があります.不要な取引を減らすためにパラメータを調整する必要があります.

  4. この戦略は,ある程度監視されるべき基本的指標を考慮せずに,技術的指標のみに基づいています.

解決策:

  1. 偽信号を減らすため 双重ストキャスティックのパラメータを調整します

  2. ストップ・ロスのロジックを最適化し,合理的なストップ・ロスの距離を設定する.

  3. 取引頻度を減らすためにパラメータを調整します 例えばクロスオーバー基準を緩和します

  4. 主観的な取引を避けるために重要な基本的なイベントに注意してください.

オプティマイゼーションの方向性

戦略は以下の側面で最適化できます.

  1. 偽信号を減らすため,二重ストカスティックのパラメータを最適化します.異なるKとD値の効果をテストします.

  2. MACD,移動平均等などのシグナルをフィルタリングするために他の指標を組み込む.

  3. ストップ・ロスの戦略を最適化し,リスクを効果的に制御するために,異なるストップ・ロスのポイントと比率をテストする.

  4. 価格統合中に非効率な取引を避けるため,取引量ブレイクアウトなどの取引量指標を組み込む.

  5. 持てる期間が短すぎると 利益が減り 持てる期間が長すぎると 損失が及ばない

  6. ショックを受けないように重要な出来事の周りに ポジションを閉じます

概要

ダブルストーキャスティック戦略は,現在の期間のストーキャスティック指標と複数の期間のストーキャスティック指標によって上昇と下落のゾーンを判断し,低価格で購入し,高価格で販売するという目標を達成する.強力なトレンド追跡能力,単純な論理,簡単なライブ取引などの利点があります.しかし,パラメータ調節,ストップ損失最適化,および改善するために他の技術的または基本要素の組み込みを必要とするリスクがあります.全面的に最適化され,厳格なバックテストを受ければ,この戦略は非常に実践的なトレンドフォローリングシステムになることができます.


/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

len = input(54, minval=1, title="Length for Main Stochastic") 
smoothK = input(12, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(100,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",blue,style=line, linewidth=2)
plot(d,"current TF d",red,style=line, linewidth=2)
plot(mtfK,"MTF TF k",black,style=line)
plot(mtfD,"Multi TF d",green,style=line, linewidth=2)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and  k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and  k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)
    
showZones   = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule: 
bullishRule = k >= mtfD
// bearish signal rule: 
bearishRule = k <= mtfD
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)



もっと