この戦略は,日々のチャート上のイチモク雲指標に基づいて単純なトレンドフォロー取引を実施する. 変換線,ベースライン,リードスパン1,リードスパン2を計算し,閉じる価格
この戦略は主に以下の式に基づいて イチモク雲指標の5行を計算します
換算線: 9 期間の平均値で,最高高値と最低低値
ベーシックライン: 最大高値と最低低値の26期間の平均
Leading Span 1: 変換線とベースラインの平均
リードスパン 2: 52 期間の最高値と最低値の平均
遅延期間: 閉店価格が26期遅れ
閉じる価格が雲の上にある場合,それは上昇傾向とみなされ,購入信号が生成されます.閉じる価格が雲の下にある場合,それは下落傾向とみなされ,販売信号が生成されます.
具体的には,この戦略は,次のステップを通じてこの論理を実装します.
変換線,ベースライン,リードスパン1とリードスパン2を計算する
閉じる価格の遅延期間を 26 期間の遅延でグラフ化します
閉じる価格がクラウド (リードスパン 1 と 2) の上にあるかどうかを確認し,真である場合は購入信号を生成します.
閉じる価格が雲の下にあるかどうかを確認し,真である場合は販売信号を生成します
戦略設定に基づいて買い/売る信号で取引を行う
この戦略の主な利点は以下の通りです.
イチモククラウドを使用すると,トレンドを効果的に特定し,トレンド方向に沿ったシグナルを生成し,レンジバインド市場での不必要な取引を避けることができます.
計算パラメータは,日々の取引に最適化されています.
リードスパン1とスパン2の両方を使えば 複数の信号を組み合わせて 誤った信号をフィルタリングします
遅延したスパン遅延は,雲の破裂後に即座に撤退するリスクを減らすのに役立ちます.
シンプルで明快な論理で 分かりやすく実行できます
他の指標は必要ありません 完全なトレンドフォローシステムです
考慮すべきリスクは:
クラウドは特定の市場条件で失敗し,間違った信号を生成する可能性があります.
パラメータが 変化する市場動態に 適応できなければ システムは弱体化します
固定遅延は 機会を逃す可能性があります
まだ完全にウィップソーを避けることはできません.
速度の逆転を捉えることができない.
主要なトレンドと短い修正を区別できないため,損失を引き起こす可能性があります.
戦略を改善する方法:
異なる市場条件に変換線のようなパラメータを最適化します
トレンドフィルタリングインジケーターを追加して強さと方向性を確認します
ストップ・ロスを実行し,トレード毎の損失を制御するために利益を取ります
音量が高い雲からの信号だけ
市場体制に基づいて異なるパラメータセットを使用する.
自動最適化パラメータに 機械学習を追加します
固定遅延の代わりに 動的遅延の範囲を考慮してください
このイチモク・クラウド戦略は,基本的トレンドを規則に従って実装しているが,改善は可能である.コアロジックは健全で,パラメータは最適化され,良好なベースラインアルゴ・トレード戦略である.さらにクラウドパラメータの強化,フィルターとリスク制御を追加することで,非常に実践的な定量的なトレードシステムになることができる.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Ichimoku Cloud", shorttitle="Ichimoku", overlay=true, commission_type=strategy.commission.percent,commission_value=0.075, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=0, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) plot(conversionLine, color=#0496ff, title="Conversion Line") plot(baseLine, color=#991515, title="Base Line") plot(close, offset = -displacement, color=#459915, title="Lagging Span") p1 = plot(leadLine1, offset = displacement, color=color.green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=color.red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red) buy = close > leadLine1[26] and close > leadLine2[26] sell = close < leadLine1[26] and close < leadLine2[26] strategy.entry("Buy", strategy.long, when = buy) strategy.entry("Sell", strategy.short, when = sell)