Membuka strategi dagangan pelarian berdasarkan pengurusan dinamik ATR

BB EMA RSI ADX ATR
Tarikh penciptaan: 2024-11-12 14:26:23 Akhirnya diubah suai: 2024-11-12 14:26:23
Salin: 1 Bilangan klik: 488
1
fokus pada
1617
Pengikut

Membuka strategi dagangan pelarian berdasarkan pengurusan dinamik ATR

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan bukaan pasaran berdasarkan pelbagai petunjuk teknikal, terutama pada masa bukaan pasaran Jerman dan Amerika Syarikat. Strategi ini mengenal pasti tahap penyesuaian melalui Brinband, mengukuhkan arah trend dengan gabungan purata bergerak indeks jangka pendek dan jangka panjang, menggunakan indikator perdagangan penapis arah trend yang agak kuat dan indikator arah trend, dan akhirnya menggunakan indikator gelombang sebenar untuk menguruskan kedudukan secara dinamik.

Prinsip Strategi

Strategi menggunakan 14 kitaran Brin band ((1.5 kali perbezaan piawai) untuk mengenal pasti tahap turun naik rendah, apabila harga berhampiran dengan arah tengah Brin band dianggap menyusun. Pada masa yang sama, menggunakan 10 kitaran dan 200 kitaran indeks bergerak rata-rata untuk mengesahkan trend multihead, yang memerlukan harga berada di atas dua garis rata. Menggunakan 7 kitaran RSI untuk memastikan pasaran tidak oversell ((> 30), 7 kitaran ADX untuk mengesahkan kekuatan trend ((> 10).

Kelebihan Strategik

  1. Penyelidikan silang pelbagai petunjuk teknikal yang berkesan untuk mengurangkan isyarat palsu
  2. Stop loss dinamik berdasarkan ATR, menyesuaikan diri dengan turun naik pasaran
  3. Fokus pada peluang turun naik tinggi pada masa pembukaan
  4. Mengambil Trend Kuat Melalui Modus Pencatatan-Penembusan
  5. Mekanisme Kawalan Risiko yang Baik

Risiko Strategik

  1. Multiple indicators boleh menyebabkan peluang perdagangan terlewat
  2. Berlakunya pergerakan yang kuat pada masa bukaan boleh mencetuskan penutupan
  3. Peralihan pasaran yang cepat boleh menyebabkan kerugian yang besar Ia disyorkan untuk menggunakan kawalan kedudukan yang munasabah, melaksanakan strategi hentikan kerugian dengan ketat, dan mengelakkan perdagangan berlebihan.

Arah pengoptimuman strategi

  1. Parameter penunjuk boleh disesuaikan mengikut ciri-ciri pasaran yang berbeza
  2. Pertimbangkan untuk menambah metrik untuk mengesahkan keberkesanan penembusan
  3. Memperkenalkan lebih banyak petunjuk teknikal untuk meningkatkan kebolehpercayaan isyarat
  4. Optimumkan pilihan masa kemasukan untuk mengurangkan kesan slippage
  5. Memperbaiki mekanisme penangguhan kerugian dan meningkatkan nisbah keuntungan

ringkaskan

Strategi ini menangkap peluang perdagangan pada masa pembukaan dengan kaedah analisis teknikal pelbagai dimensi, menggunakan risiko pengurusan hentian dan hentian yang dinamik. Logik strategi jelas, kawalan angin yang sempurna, dan kepraktisan yang baik. Dengan pengoptimuman dan penyesuaian berterusan, diharapkan untuk meningkatkan prestasi strategi.

Kod sumber strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Post-Open Long Strategy with ATR-based Stop Loss and Take Profit (Separate Alerts)", overlay=true)

// Parametri per Bande di Bollinger ed EMA
lengthBB = 14
mult = 1.5  // Bande di Bollinger più strette per timeframe inferiori
emaLength = 10  // EMA più breve per una rilevazione di trend più rapida
emaLongLength = 200  // EMA a lungo termine per il filtraggio del trend

// Parametri per RSI
lengthRSI = 7
rsiThreshold = 30

// Parametri per ADX
adxLength = 7
adxSmoothing = 7
adxThreshold = 10

// Filtro temporale - Solo durante l'apertura dei mercati tedesco e USA
daxOpen = (hour >= 8 and hour < 12)
usOpen = (hour == 15 and minute >= 30) or (hour >= 16 and hour < 19)

// Calcolo delle Bande di Bollinger
smaBB = ta.sma(close, lengthBB)
basis = smaBB
dev = mult * ta.stdev(close, lengthBB)
upperBand = basis + dev
lowerBand = basis - dev

// Calcolo delle EMA (breve e lungo termine)
ema = ta.ema(close, emaLength)  // EMA più breve
emaLong = ta.ema(close, emaLongLength)  // EMA a lungo termine per il filtraggio del trend

// Calcolo RSI
rsi = ta.rsi(close, lengthRSI)

// Calcolo ADX
[plusDI, minusDI, adx] = ta.dmi(adxLength, adxSmoothing)

// Calcolo ATR per Stop Loss e Take Profit dinamici
atrLength = 14
atrStopLossMultiplier = 2.0  // Moltiplicatore per Stop Loss
atrTakeProfitMultiplier = 4.0  // Moltiplicatore per Take Profit modificato a 4.0
atrValue = ta.atr(atrLength)  // Valore ATR calcolato qui

// Condizione di lateralizzazione - Prezzo vicino alla SMA delle Bande di Bollinger
lateralization = math.abs(close - smaBB) < (0.01 * close) and (daxOpen or usOpen)

// Identificazione della resistenza e del breakout
var float resistanceLevel = na
resistanceTouches = 0

for i = 1 to 20
    if high[i] > high[i+1] and high[i] > high[i-1]
        resistanceLevel := high[i]
        resistanceTouches := resistanceTouches + 1

// Condizione di Breakout: Il prezzo attuale supera la resistenza identificata
breakoutCondition = close > resistanceLevel and resistanceTouches >= 2

// Filtro di mercato rialzista a lungo termine - Entrare solo se il prezzo è sopra la EMA a 200 periodi
bullMarket = close > emaLong

// Filtro di trend a breve termine
trendFilter = ta.ema(close, emaLength)  // Filtro di trend a breve termine
trendDown = close < trendFilter  // Condizione di downtrend basata sul trend a breve termine

// Evitare l'entrata durante un pullback - Verifica se le due candele precedenti sono rosse
firstRedCandle = close[1] < open[1]  // La prima candela precedente è rossa
secondRedCandle = close[2] < open[2]  // La seconda candela precedente è rossa
avoidPullbackCondition = not (firstRedCandle and secondRedCandle)  // Entrare solo se non entrambe sono rosse

// Condizione Panic Candle - La candela deve chiudere negativa
panicCandle = close < open and (daxOpen or usOpen)

// Condizione di Entrata Long
longCondition = breakoutCondition and lateralization and close > ema and rsi > rsiThreshold and adx > adxThreshold and not trendDown and avoidPullbackCondition and bullMarket and panicCandle

// Stop Loss e Take Profit dinamici basati su ATR
atrStopLoss = close - (atrValue * atrStopLossMultiplier)  // Stop Loss dinamico usando ATR con moltiplicatore 2.0
atrTakeProfit = close + (atrValue * atrTakeProfitMultiplier)  // Take Profit dinamico usando ATR con moltiplicatore 4.0

// Entrata Long: Ordine eseguito alla chiusura della candela
if (longCondition and strategy.opentrades == 0 and barstate.isconfirmed)
    strategy.entry("Long", strategy.long)

// Disegna linee per Stop Loss e Take Profit
// line.new(x1=bar_index, y1=atrStopLoss, x2=bar_index + 1, y2=atrStopLoss, color=color.red, width=2, style=line.style_solid)  // Linea di Stop Loss (rossa)
// line.new(x1=bar_index, y1=atrTakeProfit, x2=bar_index + 1, y2=atrTakeProfit, color=color.green, width=2, style=line.style_solid)  // Linea di Take Profit (verde)

// Uscita: Stop Loss o Take Profit raggiunti
if (strategy.opentrades > 0)
    strategy.exit("Exit Long", "Long", stop=atrStopLoss, limit=atrTakeProfit)

// Alert: Differenziati per Entrata e Uscita utilizzando strategy.order.action
alert_message = "Azione: {{strategy.order.action}}, Prezzo: {{close}}, Dimensione Posizione: {{strategy.position_size}}"