Sumber dimuat naik... memuat...

Integrasi Isyarat Dinamik Multi-Period ICT Struktur Pintar Strategi Terobosan

Penulis:ChaoZhang, Tarikh: 2025-01-06 14:09:05
Tag:RSIMACDEMABOSFVGHTFLTFICT

img

Ringkasan

Strategi ini adalah sistem dagangan komprehensif yang menggabungkan beberapa penunjuk teknikal dengan ICT (Konsep Dagangan Institusional). Ia mengintegrasikan penunjuk analisis teknikal tradisional (RSI, Stochastic, MACD, EMA) dengan konsep dagangan ICT moden (Kesenjangan Nilai Adil, Pecahan Struktur, Analisis Bias Tempoh Yang Lebih Tinggi) dalam jangka masa yang berbeza, melaksanakan kawalan kemasukan pasaran yang tepat melalui penapisan sesi dagangan yang ketat.

Prinsip Strategi

Strategi ini beroperasi berdasarkan lima komponen teras yang bekerja secara sinergi:

  1. Analisis bias jangka masa yang lebih tinggi: Menggunakan 200 EMA untuk menentukan arah trend pasaran pada jangka masa yang lebih tinggi
  2. Penapis Sesi Dagangan: Dagangan terhad kepada Kill Zone tertentu (07:00-10:00)
  3. Penentuan Celah Nilai Adil (FVG): Mengenali jurang struktur pasaran melalui corak tiga lilin
  4. Penentuan Pecahan Struktur (BOS): Memastikan perubahan arah berdasarkan paras harga utama
  5. Pengesahan Petunjuk Tempoh Rendah: Pengesahan berganda menggunakan RSI, Stochastic, MACD, dan 200 EMA

Kelebihan Strategi

  1. Integrasi Isyarat Berbilang Dimensi: Meningkatkan kebolehpercayaan isyarat melalui gabungan beberapa penunjuk teknikal bebas dan konsep ICT
  2. Sinergi jangka masa: Penyelarasan jangka masa yang lebih tinggi dan lebih rendah meningkatkan kestabilan isyarat
  3. Penangkapan Peluang Struktural: Memfokuskan pada peluang perdagangan struktural yang tinggi melalui pengenalan FVG dan BOS
  4. Kawalan Risiko yang Komprehensif: Termasuk mekanisme berhenti kerugian dan mengambil keuntungan, pengurusan wang standard
  5. Pengoptimuman Masa Dagangan: Mengurangkan gangguan dari sesi bukan dagangan melalui penapisan masa

Risiko Strategi

  1. Lag isyarat: Gabungan beberapa penunjuk boleh menyebabkan masa kemasukan tertunda
  2. Prestasi pasaran sampingan: Boleh menghasilkan isyarat palsu yang kerap di pasaran yang berbeza
  3. Sensitiviti Parameter: Beberapa parameter penunjuk memerlukan pengesahan data sejarah yang menyeluruh
  4. Risiko pelaksanaan: Gabungan keadaan yang kompleks mungkin kehilangan beberapa peluang perdagangan dalam perdagangan langsung
  5. Kebergantungan persekitaran pasaran: Prestasi strategi boleh berbeza dengan ketara di bawah keadaan pasaran yang berbeza

Arahan Pengoptimuman Strategi

  1. Penyesuaian Parameter Dinamik: Penyesuaian parameter penunjuk berdasarkan turun naik pasaran
  2. Klasifikasi persekitaran pasaran: Menambah modul pengiktirafan persekitaran pasaran untuk kombinasi parameter yang berbeza
  3. Pengoptimuman Berat Isyarat: Memperkenalkan kaedah pembelajaran mesin untuk mengoptimumkan pengedaran berat penunjuk
  4. Perpanjangan jangka masa: Termasuk lebih banyak analisis jangka masa untuk meningkatkan kebolehpercayaan isyarat
  5. Peningkatan Kawalan Risiko: Memperkenalkan mekanisme stop-loss dinamik dan mengoptimumkan strategi pengurusan wang

Ringkasan

Strategi ini membina sistem perdagangan yang komprehensif dengan mengintegrasikan analisis teknikal tradisional dengan konsep ICT moden. Kekuatannya terletak pada pengesahan isyarat berbilang dimensi dan kawalan risiko yang ketat, sambil menghadapi cabaran dalam pengoptimuman parameter dan kesesuaian pasaran. Melalui pengoptimuman dan penambahbaikan yang berterusan, strategi menunjukkan janji dalam mengekalkan prestasi yang stabil di pelbagai persekitaran pasaran.


/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// -----------------------------------------------------
// Multi-Signal Conservative Strategy (Pine Script v5)
// + More ICT Concepts (HTF Bias, FVG, Killzone, BOS)
// -----------------------------------------------------
//
// Combines:
// - RSI, Stochastic, MACD, 200 EMA (lower TF)
// - Higher Timeframe (HTF) bias check via 200 EMA
// - Kill Zone time filter
// - Fair Value Gap (FVG) detection (simplified 3-candle approach)
// - Break of Structure (BOS) using pivot highs/lows
// - Only trade markers on chart (no extra indicator plots).
//
// Use on lower timeframes: 1m to 15m
// Always backtest thoroughly and manage risk properly.
//
// -----------------------------------------------------
//@version=5
strategy(title="Multi-Signal + ICT Concepts (HTF/FVG/Killzone/BOS)", shorttitle="ICTStrategyExample",overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------
// User Inputs
// -----------------------------------------------------
/////////////// Lower TF Inputs ///////////////
emaLength       = input.int(200,   "LTF EMA Length",           group="Lower TF")
rsiLength       = input.int(14,    "RSI Length",               group="Lower TF")
rsiUpper        = input.int(60,    "RSI Overbought Thresh",    group="Lower TF", minval=50, maxval=80)
rsiLower        = input.int(40,    "RSI Oversold Thresh",      group="Lower TF", minval=20, maxval=50)
stochLengthK    = input.int(14,    "Stoch K Length",           group="Lower TF")
stochLengthD    = input.int(3,     "Stoch D Smoothing",        group="Lower TF")
stochSmooth     = input.int(3,     "Stoch Smoothing",          group="Lower TF")
macdFast        = input.int(12,    "MACD Fast Length",         group="Lower TF")
macdSlow        = input.int(26,    "MACD Slow Length",         group="Lower TF")
macdSignal      = input.int(9,     "MACD Signal Length",       group="Lower TF")

/////////////// ICT Concepts Inputs ///////////////
htfTimeframe    = input.timeframe("60", "HTF for Bias (e.g. 60, 240)", group="ICT Concepts")
htfEmaLen       = input.int(200,  "HTF EMA Length",                   group="ICT Concepts")
sessionInput    = input("0700-1000:1234567", "Kill Zone Window", group="ICT Concepts")
fvgLookbackBars = input.int(2,    "FVG Lookback Bars (3-candle check)",  group="ICT Concepts", minval=1, maxval=10)

/////////////// Risk Management ///////////////
stopLossPerc    = input.float(0.5, "Stop-Loss %",  step=0.1, group="Risk")
takeProfitPerc  = input.float(1.0, "Take-Profit %", step=0.1, group="Risk")

// -----------------------------------------------------
// 1) Higher Timeframe Bias
// -----------------------------------------------------
//
// We'll request the HTF close, then compute the HTF EMA on that data
// to decide if it's bullish or bearish overall.

htfClose       = request.security(syminfo.tickerid, htfTimeframe, close)
htfEma         = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, htfEmaLen))
isBullHTF      = htfClose > htfEma
isBearHTF      = htfClose < htfEma

// -----------------------------------------------------
// 2) Kill Zone / Session Filter
// -----------------------------------------------------
//
// We'll only consider trades if the current bar is within
// the user-defined session time (e.g., 07:00 to 10:00 local or exchange time).

isInKillZone = time(timeframe.period, sessionInput) != 0

// -----------------------------------------------------
// 3) Fair Value Gap (FVG) Detection (Simplified)
//
// For a "Bullish FVG" among bars [2], [1], [0]:
//     high[2] < low[0] => there's a gap that bar [1] didn't fill
// For a "Bearish FVG":
//     low[2] > high[0] => there's a gap that bar [1] didn't fill
//
// Real ICT usage might check partial fill, candle bodies vs wicks, etc.
// This is just a minimal example for demonstration.

fvgBarsAgo = fvgLookbackBars // default = 2
bullFVG = high[fvgBarsAgo] < low  // e.g. high[2] < low[0]
bearFVG = low[fvgBarsAgo]  > high // e.g. low[2]  > high[0]

// -----------------------------------------------------
// 4) Break of Structure (BOS)
// -----------------------------------------------------
// Using pivot detection from previous example:

swingLen = 2  // pivot detection length (bars on each side)
// Identify a pivot high at bar [1]
swingHigh = high[1] > high[2] and high[1] > high[0]
// Identify a pivot low at bar [1]
swingLow  = low[1]  < low[2]  and low[1]  < low[0]

// Track the most recent pivot high & low
var float lastPivotHigh = na
var float lastPivotLow  = na

if swingHigh
    lastPivotHigh := high[1]

if swingLow
    lastPivotLow := low[1]

bosUp   = not na(lastPivotHigh) and (close > lastPivotHigh)
bosDown = not na(lastPivotLow)  and (close < lastPivotLow)

// -----------------------------------------------------
// 5) Lower TF Indicator Calculations
// -----------------------------------------------------
ema200      = ta.ema(close, emaLength)  // 200 EMA on LTF
rsiValue    = ta.rsi(close, rsiLength)
kValue      = ta.stoch(high, low, close, stochLengthK)
dValue      = ta.sma(kValue, stochLengthD)
stochSignal = ta.sma(dValue, stochSmooth)
[macdLine, signalLine, histLine] = ta.macd(close, macdFast, macdSlow, macdSignal)

// LTF trend filter
isBullTrend = close > ema200
isBearTrend = close < ema200

// -----------------------------------------------------
// Combine All Conditions
// -----------------------------------------------------
//
// We'll require that all filters line up for a long or short:
//  - HTF bias
//  - kill zone
//  - bullish/bearish FVG
//  - BOS up/down
//  - RSI, Stoch, MACD alignment
//  - Price above/below LTF 200 EMA

longCondition = isInKillZone                     // must be in session
 and isBullHTF                                   // HTF bias bullish
 and bullFVG                                     // bullish FVG
 and bosUp                                       // BOS up
 and (rsiValue > rsiUpper)                       // RSI > threshold
 and (kValue > dValue)                           // stoch K above D
 and (macdLine > signalLine)                     // MACD bullish
 and isBullTrend                                 // above LTF 200 EMA

shortCondition = isInKillZone                    // must be in session
 and isBearHTF                                   // HTF bias bearish
 and bearFVG                                     // bearish FVG
 and bosDown                                     // BOS down
 and (rsiValue < rsiLower)                       // RSI < threshold
 and (kValue < dValue)                           // stoch K below D
 and (macdLine < signalLine)                     // MACD bearish
 and isBearTrend                                 // below LTF 200 EMA

// -----------------------------------------------------
// Strategy Entries
// -----------------------------------------------------
if longCondition
    strategy.entry("Long Entry", strategy.long)

if shortCondition
    strategy.entry("Short Entry", strategy.short)

// -----------------------------------------------------
// Risk Management (Stop-Loss & Take-Profit)
// -----------------------------------------------------
if strategy.position_size > 0
    // Long position exit
    strategy.exit("Long Exit", stop  = strategy.position_avg_price * (1.0 - stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 + takeProfitPerc/100.0))

if strategy.position_size < 0
    // Short position exit
    strategy.exit("Short Exit",  stop  = strategy.position_avg_price * (1.0 + stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 - takeProfitPerc/100.0))

// -----------------------------------------------------
// Hide All Indicator Plots
// (We only show trade markers for entry & exit)
// -----------------------------------------------------
// Comment out or remove any plot() calls so chart stays clean.
//
// Example (commented out):
// plot(ema200, title="EMA 200", color=color.new(color.yellow, 0), linewidth=2)
// plot(rsiValue, title="RSI", color=color.new(color.blue, 0))
// plot(macdLine, title="MACD", color=color.new(color.teal, 0))
// plot(signalLine, title="Signal", color=color.new(color.purple, 0))


Berkaitan

Lebih lanjut