一目均衡表クラウドバンド戦略の最適化


作成日: 2024-01-19 14:45:21 最終変更日: 2024-01-19 14:45:21
コピー: 0 クリック数: 641
1
フォロー
1617
フォロワー

一目均衡表クラウドバンド戦略の最適化

概要

この戦略は,1つの雲図指標と複数の補助指標を組み合わせたトレンド追跡戦略である. 主に1つの雲図を使用してトレンドの方向を判断し,MACD,CMF,TSIなどの指標を補助してフィルタリングを行い,信号の質を向上させる. これは,複数の要因を総合的に判断する強力なトレンド戦略である.

戦略原則

この戦略は,主に雲図の変化を利用してトレンドの方向を判断する.天線上では雲帯を横切るときに多し,下には雲帯を横切るときに空にする.同時に,予備胎線,MACD柱形図,資金流動指標CMFおよび実力指数TSIを組み合わせて,複数の層のフィルタリングを行い,信号品質を確保する.

複数の信号のトリガー条件は以下の通りです.

  1. 雲の帯をアンテナで横切る
  2. 雲帯は幅広く,転換線は基準線上にある.
  3. 遅延線は 0 軸上にあります.
  4. 価格の上昇が予想される
  5. MACD柱状図は0軸の上に
  6. CMFは0.1より大きい
  7. TSIは0軸の上に

空気信号の触発条件は上記の条件の逆である.このようにして,複数の指標の総合的な判断によって,ほとんどの偽信号を効果的にフィルタリングし,市場の主要なトレンドをロックすることができます.

戦略的優位性

この戦略の最大の利点は,多指標の組み合わせが偽信号をき,強気なトレンドを捕まえることです.具体的には,以下のような利点があります.

  1. クラウドマップは,主要なトレンドの方向を判断し,その方向を把握します.
  2. 補助指標は信号をさらにフィルターし,取引リスクを軽減する
  3. 全面的に多時間周期要素を考慮し,信号をより信頼性のあるものにする.
  4. 条件は厳格で,質の高い信号のみを取引し,平淡な市場を避ける.
  5. トレンドフォローとトレンドローキングを組み合わせて,トレンドローキングの利得を最大化します.

上記の総合的な判断により,戦略は,株式市場の中長期線ホットセクターを効果的に把握し,トレンドを追跡し,大量に余分な利益を得ることができます.

戦略リスク

この戦略のリスクは以下の通りです.

  1. 偽突破のリスク 価格が偽突破したときに,誤ったシグナルが生じやすい.
  2. トレンド逆転リスク. 株の運行は規則性があり,長期走行には必ず逆転があり,損益全損する可能性がある.
  3. 取引頻度低リスク. 条件は厳格で,機会の一部を逃す可能性があります.

リスクの軽減には以下の方法があります.

  1. フィルタリング条件を適切に緩和し,取引の頻度を増やす.
  2. 損失拡大を防ぐため,停止条件を追加します.
  3. パラメータを最適化し,信号の精度を向上させる.

戦略最適化の方向性

この戦略は,以下のような点で最適化できます.

  1. 参数最適化。より多くの反測データによって参数に最適化を行い,よりよい参数組み合わせを見つけることができる。

  2. リスク管理のためのストップを設定する.

  3. 移動ストップを増やす. トレンド追跡ストップを利用して利益をロックし,損失を逆転させないようにする.

  4. フィルタリング指標を最適化します.より多くの指標をテストして,フィルタリング信号のより良い組み合わせを見つけることができます.

  5. 自動で不正を検知するルールを追加する. 追及の危険を避ける.

要約する

この戦略は,複数の補助指標と一雲図を統合して判断する効果が顕著である.パラメータ最適化,止損機構改善,指標最適化などの手段によって,戦略の安定性をさらに強化し,信号の質を向上させ,より高い安定収益を得ることができる.この戦略は,強力な実用性がある.

ストラテジーソースコード
/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-13 14:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0)



//Inputs
ts_bars = input(10, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(30, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(52, minval=1, title="Senkou-Span B Bars")
cs_offset = input(26, minval=1, title="Chikou-Span Offset")
ss_offset = input(26, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

middle(len) => avg(lowest(len), highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)


ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
fast_length = input(title="Fast Length", type=input.integer, defval=17)
slow_length = input(title="Slow Length", type=input.integer, defval=28)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low


//CMF
lengthA = input(8, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=8)
short = input(title="Short Length", type=input.integer, defval=8)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.entry("Short", strategy.short, when=bearish and short_entry)

strategy.close("Long", when=bearish and not short_entry)
strategy.close("Short", when=bullish and not long_entry)