複数期間の標準偏差ローソク足クロスオーバー戦略


作成日: 2023-10-24 14:44:00 最終変更日: 2023-10-24 14:44:00
コピー: 0 クリック数: 658
1
フォロー
1617
フォロワー

複数期間の標準偏差ローソク足クロスオーバー戦略

概要

多周期標準偏差K線交差策略は,典型的なトレンド追跡策策である.この策略は,異なる時間周期 (日線,周線,月線など) の標準偏差値を計算して,複数のK線とD線を構成し,それからこれらの線の平均値を取り,平均線を構成し,快線で遅い線を通るときは多し,下を通るときは空にする.この策略は,異なる周期標準偏差の予測能力を充分に活用し,複数の周期の標準偏差平均線を組み合わせることで,市場騒音を効果的にフィルタートし,市場の主なトレンドをロックすることができる.

戦略原則

この戦略の核心的な論理は,多時間周期の標準偏差を計算し,平均を取って取引信号を構築することである.

まず 戦略をstoch()関数は,異なるパラメータの下の標準偏差K値を計算し,ここに合計5組のK値が計算され,対応する時間周期は日線,周線,月線レベルである.

smoothK = input(55)  
SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK) 

smoothK1 = input(89)
SMAsmoothK1 = input(8)  
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

...

smoothK4 = input(377) 
SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

D線は,それぞれ異なるパラメータで計算されます.

smoothD = input(34)
d = sma(k, smoothD)

...

smoothD4 = input(233)  
d4 = sma(k4, smoothD4)

次に,各グループK線とD線の平均値を計算して,快線Kavgと遅線Davgを構成する.

Kavg = avg(k,k1,k2,k3,k4)
Davg = avg(d,d1,d2,d3,d4) 

最後に,速線で遅線を走るときは多めに,下線で空いてください.

long = crossover(Kavg, Davg)
short = crossunder(Kavg, Davg)

標準偏差平均線を複数の時間周期に組み合わせることで,より大きな時間周期の市場ノイズをぎ出し,主要トレンドの方向をロックすることができます.

戦略的優位性

  • 多周期標準偏差の予測能力を利用して,ノイズを効果的にフィルターし,トレンドをロックします.
  • 周期パラメータを調整することで,戦略の保持時間を自由に調整できます.
  • 標準偏差はトレンドを追跡する能力を持っています.
  • 単一の偽のブレークアウトに誤解されないように,均線交差形を使用します.
  • 快線と慢線の均線周期を最適化し,安定性を向上させる

戦略的リスクと解決策

  • 多時間周期均線交差は偽信号を多く発生し易く,均線周期を適切に調整して最適化することができる.
  • 標準偏差は激しい状況の影響を受けやすく,誤信号を生じ,フィルタリング条件を追加することを考慮する
  • 固定周期のパラメータは,市場の変化に適応できない.自己適応周期の設定を使用できます.
  • 長期のポジションは,利潤をロックするために移動ストップを設定できます.
  • KDJ指標のみを考慮すると,他の指標を導入して組み合わせ最適化できます.

解決:

  1. フィルタリング条件を追加し,短期間の偽突破の誤解を避ける

  2. 適応サイクル設定を使用して,市場の変動程度に応じてサイクルパラメータを調整する

  3. モバイルストップを設定して,タイムストップを設定し,高殺低を追求しないようにします.

  4. 平均線周期パラメータを最適化して,最適なバランスポイントを見つける

  5. 戦略の安定性を高めるために,より多くの指標信号を組み合わせる

戦略最適化の方向性

この戦略は,以下の点でさらに最適化できます.

  1. MACD,Bollinger Bandsなどの他の指標信号を組み合わせることで,信号の質が向上します.

  2. トレンドフィルターを追加し,SMA平均線方向,ADXなどの指標を導入し,逆転取引を避ける

  3. 適応サイクル設定を使用して,市場の波動程度に応じて動的にサイクルパラメータを調整する

  4. モバイルストップ戦略を追加し,ストップポイントを戦略パラメータに合わせて設定し,タイムストップ

  5. 快線と遅線の均線周期パラメータを最適化して,最適なパラメータの組み合わせを見つける

  6. 倉庫開きフィルター条件を追加し,短期的なノイズによる誤導信号を回避する

  7. Breakout 入場戦略を試し,平均線を突破した後にポジションを開く

  8. チェンデリア出口などの異なる出口戦略をテストし,ストップダストを最適化します.

要約する

多周期標準偏差K線交差策略は,標準偏差指標のトレンド追跡能力と均線策の安定性を統合している.多周期標準偏差のK線とD線の平均値を計算することで,取引信号を構築し,異なる時間尺における標準偏差指標の予測力を効果的に利用し,市場ノイズをフィルターし,主要トレンドの方向を捉えることができる.この策略は,パラメータチューニングの余地があり,周期パラメータを調整し,フィルター条件,止損策などをさらに導入することで,より良い戦略効果を得るために最適化することができます.全体的に,この策略は,複数の技術分析ツールの優位性を統合しており,探索し,最適化する価値のある高効率のトレンド追跡策略です.

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

//@version=2
strategy(title="Slow Stochastic Multi K&D Average Crossover Strategy", overlay=false, pyramiding=0, calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100)


price = input(close)

///////////////////////////////
smoothK = input(55) 

SMAsmoothK = input(13)
k = sma(stoch(price, high, low, smoothK), SMAsmoothK)



smoothD = input(34)
d = sma(k, smoothD)


///////////////////////////

smoothK1 = input(89) 

SMAsmoothK1 = input(8)
k1 = sma(stoch(price, high, low, smoothK1), SMAsmoothK1)

smoothD1 = input(55)
d1 = sma(k1, smoothD1)

//////////////////////////////////////

smoothK2 = input(144) 

SMAsmoothK2 = input(5)
k2 = sma(stoch(price, high, low, smoothK2), SMAsmoothK2)

smoothD2 = input(89)
d2 = sma(k2, smoothD2)

/////////////////////////////////////

smoothK3 = input(233) 

SMAsmoothK3 = input(3)
k3 = sma(stoch(price, high, low, smoothK3), SMAsmoothK3)

smoothD3 = input(144)
d3 = sma(k3, smoothD3)

////////////////////////////////////////////////

smoothK4 = input(377) 

SMAsmoothK4 = input(2)
k4 = sma(stoch(price, high, low, smoothK4), SMAsmoothK4)

smoothD4 = input(233)
d4 = sma(k4, smoothD4)

/////////////////////////////////////////////////

Kavg = avg(k,k1,k2,k3,k4, k4)
plot(Kavg, color=green)

Davg = avg(d,d1,d2,d3,d4, d4)
plot(Davg, color=red)


///////////////////////////////////////
hline(50, color=gray)


long = crossover(Kavg, Davg)// and d < 50
short = crossunder(Kavg, Davg)// and d > 50


last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short) 
short_signal = crossover(last_short, last_long)



strategy.entry("Long", strategy.long, when=long_signal)
strategy.entry("Short", strategy.short, when=short_signal) 

//len1 = input(3)

//closelong = d[1] < k[len1]
//closeshort = d[1] > k[len1]

//strategy.close("Long", when=closelong)
//strategy.close("Short", when=closeshort)