
Strategi pembalikan zon nilai berjangka berdasarkan peraturan 80% adalah sistem perdagangan kuantitatif yang direka khusus untuk mengesahkan tetapan peraturan 80% klasik. Gagasan utama strategi ini adalah untuk menangkap peluang pembalikan selepas harga memasuki semula zon nilai hari perdagangan sebelumnya. Strategi ini beroperasi dalam tempoh perdagangan berjangka ETH yang ditentukan dengan baik.
Strategi ini adalah berdasarkan kepada prinsip-prinsip pengembalian nilai rata-rata trend pasaran, dengan tumpuan khusus kepada hubungan antara harga dan kawasan nilai. Logik teras strategi termasuk:
Tempoh transaksi ditentukan: Strategi ini ditetapkan pada tetapan masa depan ETH 22 jam yang sebenar ((05:00 P.M. Waktu Pasifik hingga 3:00 P.M. Hari Esok) dan menyokong tetapan zon waktu global.
Pengiraan zon nilaiSistem ini secara automatik mengira titik tinggi dalam zon nilai (VAH), titik rendah dalam zon nilai (VAL) dan titik kawalan harga (POC):
Mekanisme pengesahan isyarat: Harga mesti kembali ke zon nilai dan kekal di zon tersebut sekurang-kurangnya 45 minit ((3 garis K pada carta 15 minit) untuk mengesahkan isyarat masuk. Keperluan ini memastikan keaslian niat pembalikan harga.
Penapisan hari yang sah:
Syarat pemicu:
Strategi untuk keluarTujuan utama adalah untuk keluar apabila harga mencapai POC, yang sesuai dengan idea utama kemerosotan rata-rata.
Statistik AsasStrategi ini berdasarkan pada zon nilai dan peraturan 80%, yang kedua-duanya mempunyai asas statistik yang kukuh. Zon nilai mewakili 68% daripada aktiviti harga yang berlaku di kawasan yang sama dengan satu perbezaan piawai dalam sebaran normal.
Definisi tetingkap dagangan yang tepatStrategi menggunakan tetingkap niaga hadapan ETH 22 jam yang sebenar, dan bukannya tempoh hari yang mudah, yang lebih tepat mencerminkan struktur pasaran.
Sokongan zon waktu yang fleksibel: Pedagang di seluruh dunia boleh menyesuaikan strategi mereka mengikut lokasi geografi mereka, supaya sistem dapat berfungsi dengan baik di mana-mana zon waktu.
Pengesahan isyarat ketat: Memerlukan harga untuk mengekalkan sekurang-kurangnya 3 garis K di dalam kawasan nilai untuk mengesahkan isyarat, mengurangkan kemungkinan isyarat palsu.
Menetapkan matlamat yang tepat: Menggunakan POC sebagai sasaran utama memberikan kelebihan yang jelas, sesuai dengan ciri-ciri pulangan nilai purata yang biasa di pasaran niaga hadapan.
Mekanisme pengesahan berganda: Bukan sahaja meminta harga untuk kembali ke zon nilai, tetapi juga meminta pengukuran semula sempadan ((VAL atau VAH), yang meningkatkan kebolehpercayaan isyarat.
Mod penutup manual: Apabila logik automatik tidak mencukupi untuk menangani keadaan pasaran tertentu, strategi membenarkan peniaga menggunakan tahap zon nilai yang ditetapkan secara manual.
Fungsi penyambungan: Menyediakan label diagnostik terperinci untuk membantu pembangunan strategi dan ujian ke hadapan.
Kembali ke nilai purata risiko kegagalanWalaupun peraturan 80% berkesan dalam banyak keadaan, terdapat juga trend kuat di pasaran yang menyebabkan harga tidak dapat kembali ke POC. Untuk mengurangkan risiko ini, pertimbangkan untuk menambah penapis trend atau menetapkan titik berhenti.
Kepekaan ParameterKeperluan pengesahan: 3 garis K ((45 minit) adalah parameter utama. Terlalu pendek boleh menyebabkan kemasukan awal, dan terlalu lama boleh kehilangan peluang. Disarankan untuk menguji pelbagai tetapan masa pengesahan dalam keadaan pasaran yang berbeza.
Pergantungan persekitaran pasaranStrategi ini berprestasi terbaik dalam pasaran yang bergolak, tetapi mungkin kurang baik dalam keadaan trend yang kuat atau bergolak tinggi. Anda harus mempertimbangkan untuk menambah penapis keadaan pasaran.
Masa untuk mengambil risiko: Prestasi strategi mungkin dipengaruhi oleh masa perdagangan yang dipilih (New York, London, Tokyo atau cuaca sepanjang hari). Ia disyorkan untuk menganalisis prestasi sejarah pada masa perdagangan yang berbeza dan memilih masa terbaik.
Batasan kaedah pengiraan zon nilai: Menggunakan 68% julat tetap dan pengiraan POC yang disederhanakan mungkin tidak dapat mencerminkan dengan tepat peredaran nilai sebenar di beberapa pasaran. Pertimbangan menggunakan kaedah pengiraan zon nilai berdasarkan jumlah transaksi mungkin lebih tepat.
Kekurangan mekanisme kawalan kerugian: Strategi semasa tidak mempunyai mekanisme hentian kerugian yang jelas, yang boleh menyebabkan kerugian besar dalam pergerakan pasaran yang melampau. Disarankan untuk melaksanakan tetapan hentian kerugian berdasarkan ATR atau peratusan tetap.
Syarat pengesahan dinamik: Strategi semasa menggunakan 3 garis K tetap sebagai syarat pengesahan, parameter ini boleh dipertimbangkan untuk disesuaikan dengan turun naik pasaran. Waktu pengesahan mungkin lebih lama pada masa turun naik tinggi, dan mungkin lebih pendek pada masa turun naik rendah.
Kawasan nilai berdasarkan jumlah transaksiPengiraan zon nilai semasa adalah kaedah yang disederhanakan berdasarkan harga. Ia boleh dinaik taraf kepada analisis TPO (Time Price Opportunity) berdasarkan jumlah transaksi atau pembahagian jumlah transaksi (Volume Profile), yang akan lebih tepat mencerminkan zon nilai yang dipersetujui oleh peserta pasaran.
Pengesahan pelbagai kerangka masaIa boleh memfilterkan isyarat-isyarat yang berlawanan dengan arah trend dalam jangka masa yang lebih besar, dan hanya memberi isyarat-isyarat yang bersesuaian dengan 80% peraturan perdagangan, yang mungkin meningkatkan kadar kejayaan strategi.
Tetapan sasaran yang disesuaikanStrategi semasa tetap menggunakan POC sebagai sasaran. Anda boleh mempertimbangkan untuk menetapkan sasaran dinamik berdasarkan turun naik pasaran, seperti menetapkan sasaran yang lebih jauh (seperti VAH atau VAL) dalam pasaran yang bergolak tinggi.
Penapis kadar turun naik: Tambah ATR atau penunjuk kadar turun naik lain sebagai syarat penapis untuk mengelakkan perdagangan dalam persekitaran pasaran yang sangat rendah atau sangat tinggi.
Tetapan masa yang optimum: Analisis mendalam mengenai prestasi strategi untuk zon masa dan masa dagangan yang berbeza untuk mencari kombinasi masa dagangan yang terbaik.
Mekanisme Hentikan KerosakanPelaksanaan logik hentian pintar, seperti hentian berdasarkan kedudukan sokongan / rintangan atau hentian pengesanan berdasarkan pergerakan harga, untuk menguruskan risiko dengan lebih baik.
Skor kekuatan isyarat: Membangunkan sistem penilaian kualiti isyarat yang menggabungkan kekuatan harga masuk semula, mengesahkan ciri-ciri garis K dan faktor pasaran lain, dan memberikan penilaian kekuatan kepada setiap isyarat untuk menentukan saiz kedudukan.
Strategi pembalikan zon nilai berjangka berdasarkan peraturan 80% adalah sistem perdagangan kuantitatif yang dirancang dengan teliti yang bertujuan untuk menangkap peluang pembalikan harga kembali ke zon nilai. Ia menyediakan pedagang dengan cara yang sistematik untuk menerapkan peraturan 80% klasik dengan mekanisme pengesahan isyarat yang ketat, definisi masa yang tepat dan penetapan sasaran yang jelas.
Kelebihan utama strategi adalah asas statistiknya, keperluan pengesahan isyarat yang ketat dan pilihan konfigurasi yang fleksibel. Walau bagaimanapun, terdapat juga risiko seperti kegagalan kekalahan rata-rata, kepekaan parameter dan ketergantungan kepada keadaan pasaran. Kekuatan dan kebolehpasaran strategi dapat ditingkatkan dengan ketara dengan melaksanakan langkah-langkah pengoptimuman seperti syarat pengesahan dinamik, pengiraan nilai zon berdasarkan jumlah transaksi, pengesahan bingkai masa berbilang dan penetapan sasaran penyesuaian diri.
Bagi peniaga yang mencari strategi pulangan nilai rata-rata untuk digunakan dalam pasaran niaga hadapan, sistem ini berdasarkan peraturan 80 peratus memberikan titik permulaan yang kukuh, yang boleh disesuaikan dan dioptimumkan lebih lanjut mengikut keutamaan risiko peribadi dan pandangan pasaran.
/*backtest
start: 2025-07-09 00:00:00
end: 2025-07-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_OKX","currency":"SOL_USDT","balance":200000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dscottmuller
// === Update July 15, 2025 ===
// • Converted to strategy for backtesting
// • POC-based exits for precision targeting
// • Full move markers for research tracking
// • Global time zone input (default: America/Los_Angeles)
//@version=5
strategy("80% Rule Backtest", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === General Inputs ===
useAllMarkets = input.bool(false, "Use 24-Hour Session (All Markets)")
sessionChoice = input.string("New York", "Market Session", options=["New York", "London", "Tokyo"])
showSessionBox = input.bool(false, "Highlight Selected Session")
enableSounds = input.bool(false, "Enable Audible Alerts")
extendLines = input.bool(true, "Extend Lines Right")
// === Advanced Session Settings ===
group = "Advanced Session Settings"
showAutoLevels = input.bool(true, "Show Auto-Calculated VAH/POC/VAL", group=group)
useManualLevels = input.bool(false, "Use Manual VAH/POC/VAL", group=group)
manualVAH = input.float(0.0, "Manual VAH", group=group)
manualVAL = input.float(0.0, "Manual VAL", group=group)
manualPOC = input.float(0.0, "Manual POC", group=group)
debugMode = input.bool(false, "Enable Debug Mode", group=group)
// === Time Zone Selection ===
sessionTZ = input.string("America/Los_Angeles", "ETH Session Timezone",
options=[
"America/Los_Angeles", // Default: Pacific Time
"America/New_York",
"America/Chicago",
"America/Denver",
"Europe/London",
"Europe/Paris",
"Asia/Tokyo",
"Australia/Sydney"
], group=group)
// === Market Session Filter ===
nySession = time(timeframe.period, "0930-1600", "America/New_York")
londonSession = time(timeframe.period, "0800-1630", "Europe/London")
tokyoSession = time(timeframe.period, "0900-1500", "Asia/Tokyo")
allSession = time(timeframe.period, "0000-0000")
inSession = useAllMarkets ? not na(allSession) : sessionChoice == "New York" ? not na(nySession) : sessionChoice == "London" ? not na(londonSession) : sessionChoice == "Tokyo" ? not na(tokyoSession) : false
bgcolor(showSessionBox and inSession ? color.new(color.blue, 90) : na)
// === ETH Session Window (22-Hour Futures) ===
ethStart = timestamp(sessionTZ, year, month, dayofmonth - 1, 17, 00)
ethEnd = timestamp(sessionTZ, year, month, dayofmonth, 15, 00)
inEthWindow = time("30") >= ethStart and time("30") <= ethEnd
ethHigh = inEthWindow ? high : na
ethLow = inEthWindow ? low : na
ethClose = inEthWindow ? close : na
extHigh = ta.highest(ethHigh, 100)
extLow = ta.lowest(ethLow, 100)
extClose = ta.valuewhen(not na(ethClose), ethClose, 0)
// === Value Area Calculations ===
vaRange = (extHigh - extLow) * 0.68
vah = extHigh - ((extHigh - extLow - vaRange) / 2)
val = extLow + ((extHigh - extLow - vaRange) / 2)
poc = (extHigh + extLow + extClose) / 3
finalVAH = useManualLevels ? manualVAH : vah
finalVAL = useManualLevels ? manualVAL : val
finalPOC = useManualLevels ? manualPOC : poc
// === Signal Logic ===
validLongDay = extClose < finalVAL
validShortDay = extClose > finalVAH
insideVA = close > finalVAL and close < finalVAH
reenteredFromBelow = validLongDay and close > finalVAL
reenteredFromAbove = validShortDay and close < finalVAH
var int barsInside = 0
barsInside := ta.change(time("D")) ? 0 : insideVA ? barsInside + 1 : 0
insideConfirmed = barsInside >= 3
retestVAL = validLongDay and low <= finalVAL
retestVAH = validShortDay and high >= finalVAH
longSignal = inSession and validLongDay and reenteredFromBelow and insideConfirmed and retestVAL
shortSignal = inSession and validShortDay and reenteredFromAbove and insideConfirmed and retestVAH
longBar = longSignal and not longSignal[1]
shortBar = shortSignal and not shortSignal[1]
// === Strategy Entries ===
if longBar
strategy.entry("Long", strategy.long, comment="80% Long Signal")
if shortBar
strategy.entry("Short", strategy.short, comment="80% Short Signal")
// === Strategy Exits at POC ===
strategy.exit("Long to POC", from_entry="Long", limit=finalPOC)
strategy.exit("Short to POC", from_entry="Short", limit=finalPOC)
// === Track Full Move (Visual Only) ===
longFullHit = longBar and high >= finalVAH
shortFullHit = shortBar and low <= finalVAL
plotshape(longFullHit, title="Full Move Long", location=location.abovebar, color=color.green, style=shape.triangleup, text="FULL")
plotshape(shortFullHit, title="Full Move Short", location=location.belowbar, color=color.red, style=shape.triangledown, text="FULL")
// === Debug Diagnostics ===
if debugMode and (longBar or shortBar)
debugText = (useManualLevels ? "Manual Mode" : "Auto Mode") + " | TZ: " + sessionTZ + " | 80% Triggered | barsInside: " + str.tostring(barsInside)
label.new(bar_index, close, debugText, xloc.bar_index, longBar ? yloc.belowbar : yloc.abovebar, style=label.style_label_left, textcolor=color.white, size=size.small, color=color.new(color.gray, 70))