この戦略は,イチモク・クラウド,短期 (55) と長期 (200) のシンプル・ムービング・アベア (SMA) を組み合わせて,潜在的な買取・販売信号を特定する.買取信号は,価格がクラウドと長期SMAよりも高くなり,その上を横断した後,短期SMAを再テストすることを要求する.売却信号は,価格がクラウドと長期SMAよりも低くなり,その下を横断した後,短期SMAを再テストすることを要求する.この戦略は,これらの期間が1時間および2時間のタイムフレームで最も偽りになる傾向があるため,変動市場またはハイニュースイベント中に信号を生成することを避ける.バックテストは,戦略が1時間および2時間のタイムフレームで最もうまく機能することを示している.
戦略は以下の原則に基づいています.
このコードは,まず必要なイチモククラウドコンポーネント (変換ライン,ベースライン,リードスパンAとB),および短期および長期SMAを計算する.その後,クラウドと移動平均値との関係で価格位置を特定するための複数の条件を定義する.すべての購入/販売条件が満たされると,コードはそれぞれ購入および販売信号を生成する.
イチモク・クラウド・アンド・ムービング・平均戦略は,既定のトレンドの中で,イチモク・クラウドとシンプル・ムービング・平均を組み合わせ,低リスクのエントリー機会を探しています. 市場変動やニュースイベントの際に取引をフィルタリングすることで,偽造リスクを軽減し,全体的なパフォーマンスを向上させます. 主に中長期のトレーダーに適しており,1時間および2時間のタイムフレームで良好なパフォーマンスを発揮します. しかし,より強力な戦略パフォーマンスを達成するために,明確なストップ・ロスの導入,シグナル組み合わせの最適化,および調整パラメータなどのさらなる最適化の余地があります.
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true) // Input parameters shortMA = input.int(55, title="Short-term Moving Average Length") longMA = input.int(200, title="Long-term Moving Average Length") // Calculate moving averages shortSMA = ta.sma(close, shortMA) longSMA = ta.sma(close, longMA) // Ichimoku Cloud settings conversionPeriod = input.int(9, title="Conversion Line Period") basePeriod = input.int(26, title="Base Line Period") spanBPeriod = input.int(52, title="Span B Period") displacement = input.int(26, title="Displacement") // Calculate Ichimoku Cloud components conversionLine = ta.sma(high + low, conversionPeriod) / 2 baseLine = ta.sma(high + low, basePeriod) / 2 leadSpanA = (conversionLine + baseLine) / 2 leadSpanB = ta.sma(high + low, spanBPeriod) / 2 // Plot Ichimoku Cloud components plot(leadSpanA, color=color.blue, title="Leading Span A") plot(leadSpanB, color=color.red, title="Leading Span B") // Entry conditions aboveCloud = close > leadSpanA and close > leadSpanB belowCloud = close < leadSpanA and close < leadSpanB aboveShortMA = close > shortSMA aboveLongMA = close > longSMA belowShortMA = close < shortSMA belowLongMA = close < longSMA // Buy condition (Price retests 55 moving average after being above it) buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA // Sell condition (Price retests 55 moving average after being below it) sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA // Strategy entry and exit strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Plot moving averages plot(shortSMA, color=color.green, title="Short-term SMA") plot(longSMA, color=color.red, title="Long-term SMA") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")