Strategi Osilator Ruang Peluang Lanjutan: Sistem Perdagangan Kuantitatif Berdasarkan Kesenjangan Nilai Wajar

FVG ATR SMA VOL BFVG SFVG
Tanggal Pembuatan: 2025-02-21 10:43:26 Akhirnya memodifikasi: 2025-02-24 14:55:25
menyalin: 1 Jumlah klik: 362
2
fokus pada
319
Pengikut

Strategi Osilator Ruang Peluang Lanjutan: Sistem Perdagangan Kuantitatif Berdasarkan Kesenjangan Nilai Wajar Strategi Osilator Ruang Peluang Lanjutan: Sistem Perdagangan Kuantitatif Berdasarkan Kesenjangan Nilai Wajar

Ringkasan

Strategi ini adalah sistem perdagangan inovatif yang didasarkan pada kesenjangan nilai wajar (FVG) untuk menangkap peluang perdagangan potensial dengan mengidentifikasi kesenjangan harga dan abnormalitas volume transaksi di pasar. Strategi ini menggabungkan mekanisme penghitungan dinamis dan pemrosesan standar, tidak hanya dapat mengidentifikasi sinyal jual beli dengan akurat, tetapi juga dapat membantu pedagang memahami struktur pasar dengan lebih baik melalui tampilan visual.

Prinsip Strategi

Inti dari strategi ini adalah untuk mengidentifikasi peluang perdagangan potensial dengan memantau kesenjangan harga antara garis K yang berurutan. Secara khusus:

  1. Kondisi pembentukan BFVG adalah bahwa harga terendah pada garis K saat ini lebih tinggi dari harga tertinggi sebelum dua garis K
  2. Kondisi pembentukan FVG (SFVG) adalah bahwa harga tertinggi dari garis K saat ini lebih rendah dari harga minimum sebelum dua garis K
  3. Strategi ini memperkenalkan mekanisme verifikasi berdasarkan volume transaksi dan ukuran celah, dan hanya FVG yang memenuhi persyaratan verifikasi yang akan memicu sinyal transaksi
  4. Menggunakan jendela penghitungan dinamis dengan 50 siklus untuk mengakumulasi jumlah FVG di luar angkasa
  5. Menerjemahkan lebar gap ke nilai indikator yang lebih intuitif dengan pengolahan homogenisasi

Keunggulan Strategis

  1. Sistem ini memiliki mekanisme verifikasi sinyal yang baik, meningkatkan kualitas sinyal dengan konfirmasi ganda volume transaksi dan lebar celah
  2. Jendela penghitungan dinamis efektif menangkap perubahan tren pasar
  3. Pengolahan homogenisasi membuat sinyal dari periode yang berbeda dapat dibandingkan
  4. Strategi memiliki fungsi manajemen posisi otomatis, yang secara otomatis melunasi posisi reverse hold sebelum membuka posisi baru
  5. Efek visualisasi yang bagus untuk membantu trader memahami kondisi pasar

Risiko Strategis

  1. Sinyal FVG dapat menghasilkan sinyal palsu di pasar yang bergejolak
  2. Parameter verifikasi tetap mungkin tidak berlaku untuk semua lingkungan pasar
  3. Tidak ada pengaturan stop loss dan stop braking yang dapat menyebabkan penarikan yang lebih besar.
  4. Transaksi yang lebih sering dapat menyebabkan biaya transaksi yang lebih tinggi Disarankan untuk mengelola risiko ini dengan mengatur posisi stop loss yang tepat dan memperkenalkan filter lingkungan pasar.

Arah optimasi strategi

  1. Memperkenalkan mekanisme penyesuaian parameter yang dapat disesuaikan sehingga strategi dapat beradaptasi dengan lebih baik dengan berbagai kondisi pasar
  2. Menambahkan filter tren, hanya melakukan perdagangan satu arah dalam tren yang kuat
  3. Desain sistem manajemen gudang yang lebih kompleks, termasuk batch build dan stop loss dinamis
  4. Mempertimbangkan biaya transaksi dan mengoptimalkan frekuensi transaksi
  5. Meningkatkan reliabilitas sinyal, dikombinasikan dengan indikator teknis lainnya

Meringkaskan

Ini adalah strategi perdagangan inovatif yang didasarkan pada struktur harga untuk menangkap peluang pasar dengan identifikasi dan verifikasi cerdas terhadap kesenjangan nilai wajar. Strategi ini dirancang dengan konsep yang jelas, cara implementasinya profesional, dan memiliki skalabilitas yang baik. Dengan arah optimasi yang disarankan, stabilitas dan profitabilitas strategi diharapkan dapat ditingkatkan lebih lanjut.

Kode Sumber Strategi
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// ----------------------------------------------------------------------------
// This Pine Script™ code is subject to the terms of the Mozilla Public License
// 2.0 at https://mozilla.org/MPL/2.0/
// © OmegaTools
// ----------------------------------------------------------------------------

//@version=5
strategy("FVG Oscillator Strategy", 
     shorttitle="FVG Osc v5 [Strategy]", 
     overlay=false, 
     initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100)

//------------------------------------------------------------------------------
// 1) Input Parameters
//------------------------------------------------------------------------------
lnt   = input.int(50, "Bars Back")
area  = input.bool(true, "Show Areas")
upcol = input.color(#2962ff, "Positive Color")
dncol = input.color(#e91e63, "Negative Color")

//------------------------------------------------------------------------------
// 2) FVG Detection
//    bfvg = bullish FVG, sfvg = bearish FVG
//------------------------------------------------------------------------------
bfvg = low > high[2]
sfvg = high < low[2]

//------------------------------------------------------------------------------
// 3) Additional Conditions - FVG Verification (Volume, Gap Size)
//------------------------------------------------------------------------------
vol  = volume > ta.sma(volume, 10)
batr = (low - high[2]) > ta.sma(low - high[2], lnt) * 1.5
satr = (high - low[2]) > ta.sma(high - low[2], lnt) * 1.5

//------------------------------------------------------------------------------
// 4) Sum of Bullish / Bearish FVG within the Last lnt Bars
//------------------------------------------------------------------------------
countup   = math.sum(bfvg ? 1 : 0, lnt)      // +1 for each BFVG
countdown = math.sum(sfvg ? -1 : 0, lnt)     // -1 for each SFVG

//------------------------------------------------------------------------------
// 5) Verification (e.g., Require Higher Volume or Large Gap)
//------------------------------------------------------------------------------
verifyb = (bfvg and vol[1]) or (bfvg and batr)
verifys = (sfvg and vol[1]) or (sfvg and satr)

//------------------------------------------------------------------------------
// 6) Normalized Gap Values
//------------------------------------------------------------------------------
normb = ((low - high[2]) * countup * 0.75) / ta.highest(low - high[2], lnt)
norms = ((high - low[2]) * countdown * 0.75) / ta.lowest(high - low[2], lnt)

//------------------------------------------------------------------------------
// 7) Total Net FVG Count + Calculation of Maximum for fill()
//------------------------------------------------------------------------------
totcount = countup + countdown
max      = math.max(
               ta.highest(countup, 200), 
               ta.highest(math.abs(countdown), 200)
           )

//------------------------------------------------------------------------------
// 8) Plotting Values (as in an indicator – can be kept for visualization)
//------------------------------------------------------------------------------
up   = plot(countup,     "Buy FVG",  color=upcol,  display=display.none)
down = plot(countdown,   "Sell FVG", color=dncol,  display=display.none)
zero = plot(0, "", color.new(color.gray, 100), display=display.none, editable=false)

// Net Value (sum of FVG)
plot(totcount, "Net Value", color=color.new(color.gray, 50))

// Filling areas above/below zero

plot(verifyb ? normb : na, "Long Pattern Width",  color=upcol,  linewidth=1, style=plot.style_histogram)
plot(verifys ? norms : na, "Short Pattern Width", color=dncol, linewidth=1, style=plot.style_histogram)

//------------------------------------------------------------------------------
// 9) Simple Trading Logic (STRATEGY)
//------------------------------------------------------------------------------
// - If "verifyb" is detected, go long.
// - If "verifys" is detected, go short.
//
// You can extend this with Stop Loss, Take Profit, 
// closing old positions, etc.
//------------------------------------------------------------------------------
bool goLong  = verifyb
bool goShort = verifys

// Basic example: Open Long if verifyb, Open Short if verifys.
if goLong
    // First close any short position if it exists
    if strategy.position_size < 0
        strategy.close("Short FVG")
    // Then open Long
    strategy.entry("Long FVG", strategy.long)

if goShort
    // First close any long position if it exists
    if strategy.position_size > 0
        strategy.close("Long FVG")
    // Then open Short
    strategy.entry("Short FVG", strategy.short)