Strategi perdagangan agregasi tren dan volume multi-kerangka waktu

FRVP AVWAP EMA RSI ADX MACD SMA ATR
Tanggal Pembuatan: 2025-04-02 16:15:52 Akhirnya memodifikasi: 2025-04-02 16:15:52
menyalin: 0 Jumlah klik: 375
2
fokus pada
319
Pengikut

Strategi perdagangan agregasi tren dan volume multi-kerangka waktu Strategi perdagangan agregasi tren dan volume multi-kerangka waktu

Ringkasan

Ini adalah strategi perdagangan multi-indikator yang kompleks, yang menggabungkan beberapa alat analisis teknis, seperti volume transaksi rata-rata harga (AVWAP), distribusi volume transaksi dalam rentang tetap (FRVP), rata-rata pergerakan indeks (EMA), indeks kekuatan relatif (RSI), indeks arah rata-rata (ADX), dan rata-rata pergerakan rata-rata (MACD), untuk mengidentifikasi peluang perdagangan dengan probabilitas tinggi melalui agregasi indikator.

Prinsip Strategi

Strategi ini digunakan untuk menentukan sinyal masuk melalui beberapa kondisi:

  1. Persaingan harga dengan AVWAP
  2. Posisi harga terhadap EMA
  3. Pengadilan Kekuatan RSI
  4. Kekuatan tren MACD
  5. Konfirmasi kekuatan tren ADX
  6. Filter kuantitas pengiriman

Strategi ini berfokus pada waktu perdagangan Asia, London, dan New York, yang biasanya memiliki lebih banyak likuiditas dan sinyal perdagangan lebih dapat diandalkan. Logika entry mencakup dua mode posisi panjang dan posisi kosong, dan mengatur stop-loss dan stop-loss.

Keunggulan Strategis

  1. Kombinasi multi-indikator untuk meningkatkan akurasi sinyal
  2. Filter volume transaksi yang dinamis untuk menghindari transaksi dengan likuiditas rendah
  3. Strategi Stop Loss yang Fleksibel
  4. Optimalisasi strategi berdasarkan waktu perdagangan yang berbeda
  5. Sistem Manajemen Risiko Dinamis
  6. Sinyal visual untuk membantu pengambilan keputusan

Risiko Strategis

  1. Kombinasi multi indikator dapat menyebabkan peningkatan kompleksitas sinyal
  2. Data deteksi mungkin berisiko over-fitting
  3. Kinerja mungkin tidak stabil dalam kondisi pasar yang berbeda
  4. Biaya transaksi dan slippage dapat mempengaruhi pendapatan riil

Arah optimasi strategi

  1. Masukkan parameter penyesuaian dinamis algoritma pembelajaran mesin
  2. Menambahkan fleksibilitas waktu transaksi
  3. Optimalkan strategi Stop Loss
  4. Masukkan lebih banyak filter
  5. Mengembangkan model strategi untuk keseragaman antar ras

Meringkaskan

Ini adalah strategi perdagangan yang sangat disesuaikan dan multi-dimensi yang mencoba meningkatkan kualitas dan keakuratan sinyal perdagangan dengan mengintegrasikan beberapa indikator teknis dan karakteristik periode perdagangan. Strategi ini menunjukkan kompleksitas agregasi indikator dan manajemen risiko dinamis dalam perdagangan kuantitatif.

Kode Sumber Strategi
/*backtest
start: 2024-04-02 00:00:00
end: 2024-12-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=6
strategy("FRVP + AVWAP by Grok", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// User Inputs
frvpLength = input.int(20, title="FRVP Length", minval=1)
emaLength = input.int(75, title="EMA Length", minval=1) // Adjusted for stronger trend confirmation
rsiLength = input.int(14, title="RSI Length", minval=1)
adxThreshold = input.int(20, title="ADX Strength Threshold", minval=0, maxval=100)
volumeMultiplier = input.float(1.0, title="Volume Multiplier", minval=0.1)

// Stop Loss & Take Profit for XAUUSD
stopLossPips = 25 // 25 pips SL for Asian, London, NY Sessions
takeProfit1Pips = 35 // TP1 at 35 pips
takeProfit2Pips = 80 // Final TP at 80 pips

// Stop-Loss & Take-Profit Multipliers (XAUUSD: 1 pip = 0.1 points on most platforms)
stopMultiplier = float(stopLossPips) * 0.1
tp1Multiplier = float(takeProfit1Pips) * 0.1
tp2Multiplier = float(takeProfit2Pips) * 0.1

// Indicators
avwap = ta.vwap(close)  // Volume Weighted Average Price (VWAP)
ema = ta.ema(close, emaLength)     // Exponential Moving Average
rsi = ta.rsi(close, rsiLength)     // Relative Strength Index
macdLine = ta.ema(close, 12) - ta.ema(close, 26)  // MACD Line
signalLine = ta.ema(macdLine, 9)   // MACD Signal Line
atr = ta.atr(14)                   // Average True Range

// Average Directional Index (ADX)
adxSmoothing = 14
[diplus, diminus, adx] = ta.dmi(14, adxSmoothing)  // Corrected syntax for ta.dmi()

// Volume Profile (FRVP - Fixed Range Volume Profile Midpoint)
highestHigh = ta.highest(high, frvpLength)
lowestLow = ta.lowest(low, frvpLength)
frvpMid = (highestHigh + lowestLow) / 2  // Midpoint of the range

// Detect Trading Sessions
currentHour = hour(time, "UTC")  // Renamed to avoid shadowing built-in 'hour'
isAsianSession = currentHour >= 0 and currentHour < 8
isLondonSession = currentHour >= 8 and currentHour < 16
isNYSession = currentHour >= 16 and currentHour < 23

// Entry Conditions
longCondition = ta.crossover(close, avwap) and close > ema and rsi > 30 and macdLine > signalLine and adx > adxThreshold
shortCondition = ta.crossunder(close, avwap) and close < ema and rsi < 70 and macdLine < signalLine and adx > adxThreshold

// Volume Filter
avgVolume = ta.sma(volume, 20)     // 20-period Simple Moving Average of volume
volumeFilter = volume > avgVolume * volumeMultiplier  // Trade only when volume exceeds its moving average

// Trade Execution with SL/TP for Sessions
if (longCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("LongEntry", strategy.long, qty=100)
    strategy.exit("LongTP1", from_entry="LongEntry", limit=close + tp1Multiplier)
    strategy.exit("LongExit", from_entry="LongEntry", stop=close - stopMultiplier, limit=close + tp2Multiplier)

if (shortCondition and volumeFilter and (isAsianSession or isLondonSession or isNYSession))
    strategy.entry("ShortEntry", strategy.short, qty=100)
    strategy.exit("ShortTP1", from_entry="ShortEntry", limit=close - tp1Multiplier)
    strategy.exit("ShortExit", from_entry="ShortEntry", stop=close + stopMultiplier, limit=close - tp2Multiplier)

// Plotting for Debugging and Visualization
plot(avwap, "AVWAP", color=color.purple, style=plot.style_line, offset=0)
plot(ema, "EMA", color=color.orange, style=plot.style_line, offset=0)
// plot(rsi, "RSI", color=color.yellow, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(macdLine, "MACD Line", color=color.blue, style=plot.style_histogram, offset=0)  // Better in a separate pane
// plot(signalLine, "Signal Line", color=color.red, style=plot.style_histogram, offset=0)  // Better in a separate pane
plot(adx, "ADX", color=color.green, style=plot.style_line, offset=0)

// Optional: Plot entry/exit signals for visualization
plotshape(longCondition and volumeFilter ? close : na, title="Long Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny)
plotshape(shortCondition and volumeFilter ? close : na, title="Short Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny)