ICHIMOKU クラウドとSTOCH 指標に基づくトレンド追跡戦略

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

img

概要

この戦略は,傾向を特定し追跡するためのICHIMOKUクラウド・チャートパターン指標とSTOCHランダム指標に基づいています. 戦略名は"ICHIMOKUクラウド・ストック・トレンド・トラッキング戦略"です.

戦略原則

戦略は主に現在のトレンド方向と過買い/過売状況をICHIMOKUクラウドチャートとSTOCH指標によって判断する.

変換線がベースラインを超越し,ストック指標が過売りエリアから反転すると,それは上昇傾向とみなされ,戦略は上昇方向に進む.変換線がベースラインを下回り,ストック指標が過買いエリアから下がると,それは下落傾向とみなされ,戦略は下落方向に進む.

コードでは,変換線は最後のN1バーの最高値と最低値の平均値で定義され,ベースラインは最後のN2バーの最高値と最低値の平均値で定義されます.変換線がベースラインを横切ると上昇信号が生成されます.

ストック指標は,過剰購入と過剰販売の値線,およびスムージングパラメータKとDを定義します. ストックが過剰販売エリアから反発すると上昇信号が発生し,過剰購入エリアから戻ると下落信号が発生します.

この2つの指標を組み合わせることで 戦略は傾向の方向性を決定します

利点分析

この戦略は,チャートパターンの指標と過買い/過売りの指標を組み合わせて,トレンド方向性を効果的に決定します.

単一のトレンド判断指標を使用すると比較して,この戦略はトレンドと超越状況の両方を包括的に考慮し,エントリータイミングをより正確に決定することができます.

イチモク・クラウド・チャートは中長期の傾向を特定し,ストック・インディケーターは短期的な買い過ぎ/売り過ぎの状況を検出することができる.両者は体系的な判断を形成するために互いを補完する.

リスク分析

この戦略の主なリスクは,

  1. ブラック・スワン事件の場合 インディケーターの故障リスク

  2. トレンドの一部を逃すか,または開設ポジションを逆転させる可能性があります.

  3. 多因子の判断は主観性があり,不適切なパラメータ設定は誤りを引き起こす可能性があります.

  4. 取引頻度は高いため,取引コストによる利益に影響を与える可能性があります.

対応する最適化対策:

  1. ニュースイベントを組み合わせて,主要な政策イベントの際に盲目取引を避ける.

  2. 遅延の可能性を減らすため,サイクルパラメータを適切に短縮する.

  3. 科学的な設定を改善するためにバックテストを通じてパラメータを最適化します

  4. 取引頻度を減らすために,利益とストップロスの範囲を適切に増加させる.

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

この戦略の主要な最適化方向は以下の通りである.

  1. ICHIMOKU変換ラインとベースラインのサイクルパラメータを最適化し,異なる市場特性により適したものにします.

  2. ストック指標の K,D 均等化パラメータと過買い/過売値を最適化する.

  3. 他の指標を増やして多要素モデルを作り,システムの信頼性を向上させる.

  4. 利潤を確保しながら取引頻度を減らすために,利益とストップロスのポイントを最適化します.

  5. 緊急事態を判断するモジュールを追加し 大事な事件の際に故障を回避します

概要

この戦略は,イチモク・クラウド・チャートとストック・インジケーターを組み合わせて,トレンド方向とオーバーバイト/オーバーセール状況に関する包括的な判断を行い,効果的にトレンド市場を追跡することができます.チャートパターンと定量指標を検討することで,戦略はより体系的です.将来の最適化にはパラメータの調整,他の指標を追加,緊急判断モジュールを追加などが含まれます.


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

//@version=5
strategy("ICHI + STOCH V1", overlay=true)
length = input.int(20, minval=1)
smoothK = input(5)
smoothD = input(3)
OverBought = input(25)
OverSold = input(65)
Profit = input(1800)
Stop = input(1200)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k,d)
cu = ta.crossunder(k,d)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")
conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))
TREND = ta.ema(math.avg(leadLine1,leadLine2),displacement)
//plot(conversionLine, color=#2962FF, title="Conversion Line")
//plot(baseLine, color=#B71C1C, title="Base Line")
//plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
plot(TREND, color=#2962FF, title="TREND")
p1 = plot(leadLine1,style=plot.style_line, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")

p2 = plot(leadLine2,style=plot.style_line, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
close_price = ta.sma(close,1)
pc = plot(close_price,style=plot.style_line, color=#2a0ab9,
	 title="Price Close")
if (not na(k) and not na(d))
	if (co and k < OverSold)and(close_price > TREND)
		strategy.entry("BUY order", strategy.long, comment="BUY order")
		strategy.exit("exitBUY", "BUY order", profit = Profit, loss = Stop)
	if (cu and k > OverBought)and(close_price < TREND)
		strategy.entry("SELL order", strategy.short, comment="SELL order")
		strategy.exit("exitSELL", "SELL order", profit = Profit, loss = Stop)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

もっと