資源の読み込みに... 荷物...

イチモクが戦略を

作者: リン・ハーンチャオチャン,日付: 2024-01-31 15:23:21
タグ:

img

概要

イチモク・エントリー (Ichimoku Entry) は,イチモク・クラウド・チャートを使用してトレンド方向を特定し,ボリンジャー・バンドとRSI指標と組み合わせて取引信号を生成する定量戦略である.この戦略は,主に市場が現在テンカン・ラインとキジュン・ラインの黄金十字または死十字に基づいて上昇傾向か下落傾向にあるかどうかを決定し,その結果,ロングとショートポジションのエントリー信号を生成する.

戦略の論理

この戦略の核心は,イチモク雲グラフの2つの重要な線であるテンカン線とキジュン線にあります.テンカン線は,過去9日間の最高高値と最低低値の平均値で,短期トレンドを表しています.キジュン線は,過去26日間の最高高値と最低低値の平均値で,中期から長期トレンドを表しています.テンカン線がキジュン線を越えると,ロングに入るサインになります.テンカン線がキジュン線を下回ると,ショートに入るサインになります.これは現在のトレンド方向を判断します.

イチモク・クラウドに加えて,戦略はトレード・シグナルを生成するためにボリンジャー・バンドとRSIインジケーターも検討している.閉じる価格が上または下ボリンジャー・バンドを突破すると異常な価格活動の兆候とみなされる.過剰購入または過剰販売条件を決定するためにRSIインジケーターを組み込むことで,いくつかの偽のブレイクアウトをフィルタリングすることで,有効なエントリー・シグナルが生成することができる.

エクシートロジックでは,ボリンジャー・バンドのブレイクアウトが成功し,トレード・近差オシレーターが0軸を横切るかどうかをチェックし,利益を固定するか損失を停止するか判断します.

利点分析

この戦略の最大の利点は,トレンド決定と異常な価格変動を組み合わせて取引の方向性を確認することである. イチモク雲はトレンドを明確に明らかにし,ボリンジャー帯は異常を捕捉する. RSIは誤ったブレイクアウトを効果的にフィルタリングする.複数の調整された指標の使用により,取引信号がより信頼性がある.さらに,ストップ・ロストとテイク・プロフィートロジックは利益をロックし,莫大な損失を避けるのに役立ちます.

リスク分析

トレンドと異常を識別する利点を有しているにもかかわらず,戦略には依然としていくつかのリスクがあります.トレンドとともに取引されるため,範囲の市場では多くの誤った信号が出現する可能性があります.不適切なパラメータ設定はまた,戦略のパフォーマンスを悪化させることがあります. ステップバイオプティマイゼーションは,異なるパラメータの組み合わせをテストし,最適な値を見つけるために推奨されます.

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

戦略は次の側面で向上することができる:

  1. Bollinger Period,RSI Period などなど 様々なパラメータの組み合わせをテストします
  2. 機械学習モデルを導入し 動的に履歴データに基づいて パラメータを出力します
  3. 市場情緒を判断するために 情報流を組み込み 重要な瞬間に間違った動きを避ける
  4. 利益を維持するために,後退停止のような条件付きストップ損失方法を追加します.

結論

イチモクエントリーストラテジー (Ichimoku Entries Strategy) は,マルチインジケーター統合トレンドトレード戦略である.トレンド方向と価格異常の両方を判断することで,市場リズムをかなり信頼的に把握する.改善余地があるものの,全体的に見るとこれは一貫したパフォーマンスと制御可能なリスクを持つ戦略である.パラメータチューニングと機械学習の導入により,この戦略はさらに顕著になる可能性がある.


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

//@version=5
strategy("ichi strategy", overlay=true)

// Input parameters
rsiLength = input(14, title="RSI Length")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2, title="Bollinger Bands Multiplier")
stopLossPct = input(1, title="Stop Loss Percentage")
takeProfitPct = input(2, title="Take Profit Percentage")

// Calculate Ichimoku Cloud components
tenkan = ta.sma(high + low, 9) / 2
kijun = ta.sma(high + low, 26) / 2
senkouA = (tenkan + kijun) / 2
senkouB = ta.sma(high + low, 52) / 2

// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + bbMultiplier * ta.stdev(close, bbLength)
lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength)

// RSI
rsiValue = ta.rsi(close, rsiLength)

// Trade Proximity Oscillator
length = input(14, title="Channels Length")
multiplier = input(2, title="Channels Multiplier")
atr_length = input(14, title="ATR Length")
threshold_percentage = input(1.5, title="Threshold Percentage (%)")

ma = ta.sma(close, length)
std_dev = ta.stdev(close, length)
upper_band = ma + multiplier * std_dev
lower_band = ma - multiplier * std_dev
distance_upper = close - upper_band
distance_lower = lower_band - close
atr_value = ta.atr(atr_length)
threshold = atr_value * threshold_percentage
oscillator = distance_upper - distance_lower

// Strategy logic
longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70
shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30

strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)

// Exit logic
longExitCondition = close < upperBB and ta.crossover(oscillator, 0)
shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition)

// Plotting
plot(senkouA, color=color.green, title="Senkou A")
plot(senkouB, color=color.red, title="Senkou B")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")

// Additional Plots
plot(tenkan, color=color.orange, title="Tenkan")
plot(kijun, color=color.purple, title="Kijun")



もっと