イチモク雲のローカルトレンド識別戦略

作者: リン・ハーンチャオチャン開催日:2024年3月19日 15時10分59秒
タグ:

img

概要

この戦略は,フィボナッチ比率と組み合わせたイチモク・クラウド指標に基づいたトレンド識別および取引戦略である.現在の市場傾向を決定するために,イチモク・クラウド指標から変換線,ベースライン,クモ・クラウド,およびラグング・スパンを使用し,ストップ・ロスのレベルを設定し,横向市場を特定するために1.618および0.618フィボナッチ比率を組み込む.さらに,この戦略は,偽信号をフィルタリングするために2つの追加のミッドラインを導入する.

戦略原則

イチモク・クラウド指標は,変換線,ベースライン,クモ・クラウド,遅延期間という4つの要素で構成されている.変換線とベースラインは,異なる時間帯における最高高値と最低低値の平均を使用して計算される.クモ・クラウドは,ベースラインを26期前に移動させ,遅延期間は26期後退した閉値である.

この戦略の長期入社条件は以下のとおりです.

  1. 遅延のスパンが雲の上にある
  2. 変換線はベース線より大きい
  3. 閉じる価格は1.618ストップ・ロスのレベル以上です
  4. 0.618線は1.618ストップ・ロスの上です.
  5. 閉店価格は雲の上です

短期入社条件は長期入社条件とは正反対です

ストップロスのレベルは,1.618と0.618のフィボナッチ比を用いて設定される.ロングポジションでは,ストップロスは雲の上縁マイナス1.618倍,上下縁間の距離である.ショートポジションでは,逆である.0.618線は横向市場を識別するために使用される.雲が緑色で,0.618線が1.618ストップロスのレベル以下である場合,市場は横向状態にあると考えられる.

イチモク・クラウド指標に加えて,この戦略は偽信号をさらにフィルタリングするために2つのミッドラインを導入している.ミッドラインは,異なる時間帯における最高高と最低低の平均を使用して計算される.

利点分析

  1. 価格指標とトレンド指標の両方を利用することで,戦略は現在の市場傾向をよりよく特定することができます.
  2. フィボナッチ比を導入して ストップ・ロスのレベルを動的に設定することで リスクは制御可能になります
  3. 0.618線は,横向市場を効果的に識別し,変動市場への頻繁なエントリーを避けることができます.
  4. 2つの余分な中間線は 誤った信号をさらにフィルタリングし 信号の質を向上させます
  5. パラメータは調整可能で,戦略は異なる市場と時間枠に適しています.

リスク分析

  1. 強い上昇傾向や下落傾向などの極端な市場状況では,傾向指標が失敗し,信号が歪む可能性があります.
  2. ストップ・ロスのレベルは,クラウドの距離に基づいています.クラウドが非常に薄い場合,ストップ・ロスはエントリー価格にあまりにも近い可能性があります.
  3. ストップ・ロスのためにフィボナッチ比率と横向市場を判断するための0.618線を使用する方法は理論的支持がないため,すべての市場に適用できない可能性があります.
  4. パラメータの最適化により,過剰なフィットメントや実用市場での不良のパフォーマンスがもたらされる可能性があります.

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

  1. 信号の質をさらに改善するために,移動平均,MACDなど,より多くの傾向確認指標を導入することを検討する.
  2. ストップ・ロスのレベルを設定する際には,ATRや波動性などのより多くの要因を考慮し,よりダイナミックで個別化することができます.
  3. 横向市場を特定するには,ADX傾向強度指標などの他の方法が試されることがあります.
  4. 遺伝子アルゴリズムなどの機械学習方法がパラメータ最適化に使用され,過剰なフィットメントを避けるためにサンプル外テストを行う必要があります.
  5. 戦略の信頼性や信頼性を高めるため,ケリー基準や固定リスクなどのポジションサイズ化とリスク管理モジュールを追加することができる.

結論

この戦略は,イチモク・クラウド指標とフィボナッチ比率を革新的に組み合わせ,完全なトレンド識別および取引システムを形成する.フィルタリングのための追加のミッドラインの導入は,信号品質を一定程度向上させることができる.この戦略の利点は,トレンドおよび範囲の市場条件の両方にうまく適応し,ダイナミックストップロスの経由でリスクを制御する能力にある.しかし,この戦略には,理論的サポートの欠如やパラメータ最適化における潜在的なオーバーフィッティングなどのいくつかの欠点もあります.将来,戦略は,より多くの指標を導入し,ストップロスの最適化およびポジショニングを最適化し,パラメータ最適化のために機械学習を使用することによって改善することができます.全体として,この戦略は革新的なアプローチを有し,参照に値しますが,実用的な適用のためにさらなるテストと最適化が必要です.


/*backtest
start: 2023-03-13 00:00:00
end: 2024-03-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
strategy("Advanced_Ichimoku_Cloud_Strategy", overlay=true, margin_long=100, margin_short=100)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpanPeriods = input.int(52, minval=1, title="Leading Span B Length")
pivotPeriods1 = input.int(17,minval = 1,title = "PPL1")
pivotPeriods2 = input.int(39,minval = 1,title = "PPL2")
displacement = input.int(26, minval=1, title="Lagging Span")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
midLine1 = donchian(pivotPeriods1)
midLine2 = donchian(pivotPeriods2)
midLine3 = donchian(laggingSpanPeriods)
leadLine1 = math.avg(conversionLine, baseLine, midLine1)
leadLine2 = math.avg(midLine2 , midLine3)


plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")

plot(close, offset = -displacement + 1, color=color.yellow, title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
   
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

//stoploss calculating
mult1 = input.float(1.618, "Mult1")
mult2 = input.float(0.618, "Mult2")
stoploss1 = leadLine1 - (leadLine1 - leadLine2)*mult1
stoploss2 = leadLine1 - (leadLine1 - leadLine2)*mult2
plot(stoploss1,"Sl", color = color.fuchsia, linewidth = 2, style = plot.style_line, offset = displacement - 1)
plot(stoploss2,"S2", color = color.lime, linewidth = 2, style = plot.style_line, offset = displacement - 1)

longCondition = leadLine1 > leadLine2 
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = leadLine1 < leadLine2
if (shortCondition)
    strategy.entry("Sell", strategy.short)


もっと