イチモク・クモ・ツイスト・ゴールド・アボスロビング・ストラテジー (Ichimoku Kumo Twist Gold-Absorbing Strategy) は,イチモク市場技術指標とレンジフィルタリングを組み合わせた定量的な取引戦略である. イチモク指標を使用して市場の動向と重要なサポートとレジスタンスレベルを決定し,キャンドルスタイプパターンとともに取引信号を生成する. 一方,レンジフィルタリングは取引頻度とリスクを制御するのに役立ちます.
イチモク戦略は,市場動向を判断するためのイチモク指標とキャンドルスタイクパターンに基づいている. イチモクには変換線,ベースライン,クラウドラインが含まれ,それらのクロスオーバー関係が市場の動向を示している. クラウドラインはサポートとレジスタンスレベルとしても機能する. 戦略は,イチモクラインの感度を調整するために異なるパラメータの組み合わせを設定する. さらに,戦略は,変換線がベースラインの上を横切るとパターンを特定し,購入信号を生成し,下を横切ると販売信号を生成する.
ストップ・ロスの設定は,価格が不利な方向に動いているときの損失を停止することでリスクを軽減するのに役立ちます.ストップ・ロスは,価格が不良な方向に動いている場合の損失を抑制します.ストップ・ロスは,価格が不良な方向に動いている場合の損失を抑制します.ストップ・ロスは,価格が不良な方向に動いている場合の損失を抑制します.ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,ストップ・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスは,スト・ロスト・ロスは,スト・ロストは,スト・ロスト・
イチモクパラメータを調整し 日付範囲を最適化し ストップ・ロストポイントを修正するような方法により リスクを改善し 制御できます
イチモク・クモ・ツイストゴールド吸収戦略は,イチモク指標,キャンドルスタイクパターン認識,レンジフィルタリングを統合して市場動向を決定する.傾向の方向性をかなり明確に把握することができる.パラメータチューニング,リスクコントロールなどの手段によって,良い戦略パフォーマンスを達成することができる.しかし,イチモク遅滞の問題を注意し,継続的な最適化調整を行うべきである.
/*backtest start: 2023-11-20 00:00:00 end: 2023-11-27 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true) xlowest_(src, len) => x = src for i = 1 to len - 1 v = src[i] if (na(v)) break x := min(x, v) x xlowest(src, len) => na(src[len]) ? xlowest_(src, len) : lowest(src, len) xhighest_(src, len) => x = src for i = 1 to len - 1 v = src[i] if (na(v)) break x := max(x, v) x xhighest(src, len) => na(src[len]) ? xhighest_(src, len) : highest(src, len) dropn(src, n) => na(src[n]) ? na : src ichiConversionPeriods(presets) => if presets == "Cpt 20 60 120 30" 20 else if presets == "Cpt 10 30 60 30" 10 else if presets == "Std 18 52 104 26" 18 else 9 ichiBasePeriods(presets) => if presets == "Cpt 20 60 120 30" 60 else if presets == "Cpt 10 30 60 30" 30 else if presets == "Std 18 52 104 26" 52 else 26 ichiLaggingSpan2Periods(presets) => if presets == "Cpt 20 60 120 30" 120 else if presets == "Cpt 10 30 60 30" 60 else if presets == "Std 18 52 104 26" 104 else 52 ichiDisplacement(presets) => if presets == "Cpt 20 60 120 30" 30 else if presets == "Cpt 10 30 60 30" 30 else if presets == "Std 18 52 104 26" 26 else 26 scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear") presets = input(title="Presets", options=["Cpt 20 60 120 30", "Cpt 10 30 60 30", "Std 18 52 104 26", "Std 9 26 52 26"], defval="Cpt 20 60 120 30") dropCandles = input(1, minval=0, title="Drop first N candles") showClouds = input(false, "Show Clouds") stoploss = input(true, title="Stop Loss") conversionPeriods = ichiConversionPeriods(presets) basePeriods = ichiBasePeriods(presets) laggingSpan2Periods = ichiLaggingSpan2Periods(presets) displacement = ichiDisplacement(presets) logScaling = scaling == "Log" lows = dropn(low, dropCandles) highs = dropn(high, dropCandles) lowsp = logScaling ? log(lows) : lows highsp = logScaling ? log(highs) : highs donchian(len) => avg(xlowest(lowsp, len), xhighest(highsp, len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) // === BACKTEST RANGE === FromMonth = input(defval = 10, title = "From Month", minval = 1) FromDay = input(defval = 3, title = "From Day", minval = 1) FromYear = input(defval = 2017, title = "From Year", minval = 2014) ToMonth = input(defval = 1, title = "To Month", minval = 1) ToDay = input(defval = 1, title = "To Day", minval = 1) ToYear = input(defval = 9999, title = "To Year", minval = 2014) golong = crossover(leadLine1, leadLine2) goshort = crossunder(leadLine1, leadLine2) strategy.entry("Buy", strategy.long, when=(golong and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) strategy.entry("Sell", strategy.short, when=(goshort and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) conversionLinep = logScaling ? exp(conversionLine) : conversionLine baseLinep = logScaling ? exp(baseLine) : baseLine leadLine1p = logScaling ? exp(leadLine1) : leadLine1 leadLine2p = logScaling ? exp(leadLine2) : leadLine2 plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line") plot(showClouds ? baseLinep : na, color=#991515, title="Base Line") p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1") p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)