イチモク・キンコ・ヒョー指標 バランストレンド戦略

作者: リン・ハーンチャオチャン開催日:2023年11月24日 (火) 14:38:47
タグ:

img

概要

バランストレンド戦略は,イチモク・キンコ・ヒョー指標を利用したトレンドフォロー戦略である.複数の指標を組み合わせてトレンド方向性を特定し,長期的資本評価を達成するために,牛市でロング,熊市でショートする.

戦略原則

この戦略の核心は,テンカン・セン (変換線),キジュン・セン (ベースライン),センコウ・スパンA (リード・スパンA),センコウ・スパンB (リード・スパンB),チコウ・スパン (遅れ・スパン) で構成されるイチモク・キンコ・ヒョー指標に基づいています.価格が雲の上にあるとき,上昇傾向を示します.価格が雲の下にあるとき,下落傾向を示します.

取引シグナルは,次の条件の組み合わせに基づいて生成されます.

  1. テンカン・センはキジョン・センの上を通過し,上向きな信号を示した.
  2. テンカン・センは低迷信号としてキジュン・センの下を通過
  3. チコウ・スパンのクロスオーバーは上昇傾向の確認
  4. チコウ・スパンのクロスオーバーは下落傾向の確認
  5. RSI 50以上は上昇指数として
  6. RSIが50を下回る
  7. 雲の上の価格は上昇傾向を示しています
  8. 雲の下の価格が下落傾向を示している

すべての上昇条件が満たされると 長期化し,すべての下落条件が満たされると 短期化します.

利点分析

この戦略は,トレンドの方向性を効果的に識別するために,トレンドフォローとオーバー買いオーバーセール指標を組み合わせます.主な利点は以下の通りです.

  1. イチモク・キンコ・ヒョウは 短期的な市場騒音に惑わされないように 中期から長期間のトレンドを特定することができます
  2. RSI を 含め たら,買い過ぎ と 売過ぎ の ゾーン を 特定 する こと が でき,逆転 の 機会 を 逃す こと は 避け られ ます.
  3. 変動が十分高いときのみ 効果のない取引を避ける
  4. 厳格な入国・退出規則は リスクを最大限に軽減します

リスク分析

この戦略に注意すべきリスクは:

  1. イチモク・キンコ・ヒョウは遅延効果があり 入場時間を遅らせている可能性があります
  2. 低頻度で多重条件の組み合わせによる取引信号が発生し,取引数が不十分になる.
  3. ポジションのサイズや リスク管理や 過度な取引のリスクなど 考慮されていません

対応する解法:

  1. イチモクを短縮して 感度を上げる
  2. 貿易頻度を増やすために 入国条件の厳格さを減らす.
  3. リスク管理とポジションサイズのモジュールを組み込み,取引リスクと全体的なポジションを制御する.

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

戦略は以下の点で改善できる:

  1. KDJ,MACDなどの追加指標を追加したり組み合わせたりして信号源を多様化します
  2. イチモクパラメータを最適化して 感度を上げる
  3. ストップ・ロスのメカニズムを追加して 利益を固定し リスクを制御します
  4. 口座サイズに基づいて動的位置サイズ化モジュールを組み込む.
  5. 負債の負債の負債の負債の負債の負債の負債の負債の負債の負債

概要

このバランストレンド戦略は,信頼性の高い,堅牢なトレンドフォローシステムである.トレンド取引における主要な課題であるバランストレンド識別の正確性とトレード生成頻度に対処する.パラメータチューニングとモジュール拡張を通じて改善の余地がある.長期にわたって適用できる戦略である.


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Ichimoku Kinko Hyo: ETH 3h Strategy by tobuno", overlay=true)

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

//Volatility
vollength = input(defval=2, title="VolLength")
voltarget = input(defval=0.2, type=float, step=0.1, title="Volatility Target")
Difference = abs((close - open)/((close + open)/2) * 100)
MovingAverage = sma(Difference, vollength)
highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

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)

//RSI
change = change(close)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=green, title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=red, title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? green : red, title="Cloud color")

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
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
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish and highvolatility

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

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


もっと