イチモク 初期の雲のトレンド 戦略をフォローする

作者: リン・ハーンチャオチャン,日付: 2023年12月12日 16:11:09
タグ:

img

概要

イチモク初期クラウドトレンドフォロー戦略 (Ichimoku Early Cloud Trend Following Strategy) は,人気のイチモククラウド指標に基づくトレンドフォロー戦略である.イチモククラウドのクロスオーバーラインを利用して早期エントリー信号を生成し,トレンドを事前に把握する.この戦略には,誤ったブレイクを避けるためにトレンド検証のための移動平均値も組み込まれている.

戦略の論理

この戦略は主に以下の要素に基づいています.

  1. 変換線とベースラインを使って イチモク雲を構成し 26 周期の移動で雲を描画します

  2. 雲の上部から接近が切れる時 長い信号を発します. 雲の下部から接近が切れる時 短い信号を発します.

  3. 変換線とベースラインの最大/最小を割るため,偽のブレイクをフィルタリングする必要があります.

  4. 入場価格に基づいて 5%のストップロスを設定します

このような多層フィルタリングにより,トレンド逆転点を効果的に特定し,新興の取引機会を迅速に把握できます. 厳格なブレークアウト基準はまた,誤った信号を減らすのに役立ちます.

利点

この戦略には以下の利点があります.

  1. イチモク雲のクロスオーバー線は 傾向の逆転の前には 明確な初期兆候がある
  2. 移動平均値を含めた場合,一夜間のギャップによる誤ったブレイクが回避されます.
  3. 複数のフィルター条件により 誤った信号が減少し 信号の質が向上します
  4. 長期保有期間により 引き上げが少なく 利益がより容易になります
  5. 異なる製品,特にトレンドインストラムに適用できる.

リスク

考慮すべきリスクもいくつかあります.

  1. トレンドする市場ではうまく機能し,範囲期間中により多くの誤った信号を生成する可能性があります.
  2. イチモクパラメータは 異なる製品に最適化する必要があります
  3. ストップ・ロスの配当は 早期離脱を避けるために注意が必要です
  4. 比較的低い信号周波数で 短期的な機会を逃す傾向があります

リスクは以下によって軽減できます.

  1. 強いトレンドの商品を選び 商品の範囲を避ける
  2. イチモクパラメータを最適化して
  3. シングル・トレードで損失をコントロールするためにストップ・ロスを使用します.
  4. 信号の周波数を増やすために他の指標を追加します.

改良

この戦略は,以下の点においてさらに改善することができる.

  1. プログラム的に取引されたコントロール金額にポジションサイズを追加します.strategy.position_size.

  2. トレンド強さを自動検出するセキュリティ宇宙フィルタリングを追加しますsecurity().

  3. リスク管理のためのストップ・ロスト/利益採取のテクニックを組み込む.

  4. ボリンジャー帯やRSIのような指標を組み合わせた 多指標システムを作り 信号の質を向上させる

  5. 信号の信頼性を判断し,注文量を動的に調整するために機械学習を適用します.

結論

イチモク初期クラウドトレンドフォロー戦略は,動平均フィルターによって強化された初期トレンド識別のためにイチモククラウドを使用し,高品質の取引機会を信頼的に検出する.この戦略は,改善の余地があり,安定しており,ライブ取引に広く採用することができます.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
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/
// © QuantCT

//@version=4
strategy("Ichimoku Cloud Strategy Idea",
         shorttitle="Ichimoku", 
         overlay=true,
         pyramiding=0,     
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=99, 
         initial_capital=1000,           
         commission_type=strategy.commission.percent, 
         commission_value=0.1)

// ____ Inputs

conversion_period = input(9, minval=1, title="Conversion Line Period")
base_period = input(26, minval=1, title="Base Line Period")
lagging_span2_period = input(52, minval=1, title="Lagging Span 2 Period")
displacement = input(26, minval=1, title="Displacement")
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)

// ____ Logic

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

conversion_line = donchian(conversion_period)
base_line = donchian(base_period)
lead_line1 = avg(conversion_line, base_line)
lead_line2 = donchian(lagging_span2_period)
chikou = close

chikou_free_long = close > high[displacement] and close > max(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_long = chikou_free_long and close > max(lead_line1[displacement], lead_line2[displacement])
exit_long = close < lead_line1[displacement] or close < lead_line2[displacement]

chikou_free_short = close < low[displacement] and  close < min(lead_line1[2 * displacement], lead_line2[2 * displacement])
enter_short = chikou_free_short and close < min(lead_line1[displacement], lead_line2[displacement])
exit_short = close > lead_line1[displacement] or close > lead_line2[displacement]

strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long) 
if (not long_only)
    strategy.entry("Short", strategy.short, when=enter_short)
    strategy.close("Short", when=exit_short) 

// ____ SL

sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
    strategy.exit(id="SL", from_entry="Long", stop=sl_long)
    strategy.exit(id="SL", from_entry="Short", stop=sl_short)

// ____ Plots

colors = 
 enter_long ? #27D600 :
 enter_short ? #E30202 :
 color.orange
 
p1 = plot(lead_line1, offset = displacement, color=colors,
	 title="Lead 1")
p2 = plot(lead_line2, offset = displacement, color=colors,
	 title="Lead 2")
fill(p1, p2, color = colors)
plot(chikou, offset = -displacement, color=color.blue)



もっと