
NOCTURNA v2.0 Shadow Engine adalah sistem perdagangan multi-modus yang sangat kompleks yang dapat secara otomatis beralih ke strategi perdagangan yang berbeda sesuai dengan kondisi pasar. Sistem ini terdiri dari empat mode perdagangan utama: EVE (trading grid), LUCIFER (trading breakthrough), REAPER (trading reverse) dan SENTINEL (trend tracking), dan dilengkapi dengan modul manajemen risiko cerdas dan sistem fitur stop loss yang dapat secara otomatis mengidentifikasi status pasar, memilih strategi perdagangan yang paling optimal dalam berbagai lingkungan pasar seperti pergerakan horizontal, tren, reversal dan breakout, dan memaksimalkan peluang keuntungan sambil mengontrol risiko.
Inti dari NOCTURNA v2.0 adalah identifikasi status pasar dan mekanisme switching multi-modal:
Identifikasi status pasar:
math.abs(ema50 - ema50[10]) < atr * 0.25)math.abs(ema50 - ema200) > atr and macdLine > signalLine)ta.crossover(ema8, ema34) or ta.crossunder(ema8, ema34))ta.crossover(close, ema200) or ta.crossunder(close, ema200))Logika Mode Switching:
Logika perdagangan berbagai mode:
gridSpacing)Manajemen Risiko:
volatilitySpike): Menghalangi masuk secara otomatis dalam situasi yang sangat volatileatr * atrMultSL)tpTarget * close)trailTriggerDantrailOffset)AdaptifSistem ini dapat secara otomatis mengidentifikasi kondisi pasar dan beralih ke mode perdagangan yang paling sesuai, tanpa intervensi manusia, sangat mudah beradaptasi.
Penutup Pasar SeluruhDengan empat modus perdagangan yang berbeda, sistem dapat menangani hampir semua kondisi pasar, termasuk pergerakan horizontal, tren yang jelas, pembalikan pasar, dan penembusan level kritis.
Efek keuntungan dari perdagangan gridTrading multi-layer grid dalam model EVE mampu menangkap fluktuasi kecil di pasar yang bergoyang, dan memberikan efek rebound melalui keuntungan kecil yang sering terjadi.
Manajemen Risiko BerlapisStrategi ini menggabungkan mekanisme pengendalian risiko bertingkat, termasuk penyaringan volatilitas, stop loss tetap, tracking stop loss, dan manajemen posisi otomatis, yang secara efektif mengendalikan risiko perdagangan tunggal.
Pelacakan Smart Stop: Mengaktifkan stop loss secara otomatis setelah mencapai tingkat keuntungan yang diprediksi, mengunci sebagian keuntungan, dan memberikan ruang istirahat yang cukup untuk harga, untuk menghindari tergesa-gesa keluar dari pasar terlalu dini.
Antarmuka visual: Panel HUD yang terpasang menampilkan mode transaksi yang saat ini aktif dan jumlah grid yang terbuka secara real-time, meningkatkan kemampuan pemantauan dan transparansi operasi strategi.
Sistem peringatan: Mengintegrasikan sistem peringatan yang dapat dibaca manusia dan dalam format JSON, untuk memudahkan pedagang manual dan robot perdagangan otomatis untuk mendapatkan sinyal.
Parameter SensitivitasStrategi ini bergantung pada beberapa parameter kunci (seperti siklus EMA, jarak grid, ATR, dll.) untuk menilai kondisi pasar dan melakukan perdagangan. Pengaturan parameter yang tidak tepat dapat menyebabkan sinyal yang salah atau overtrading yang sering terjadi. Solusinya adalah dengan memetakan kembali parameter optimasi dan menyesuaikan parameter untuk pasar dan kerangka waktu yang berbeda.
Penundaan Mode SwitchingPengertian kondisi pasar dan pergeseran pola mungkin mengalami keterlambatan, yang menyebabkan penggunaan strategi yang tidak sesuai di dekat titik pivot. Pengertian ini dapat ditingkatkan dengan memperkenalkan lebih banyak indikator sinyal lebih awal atau siklus pengertian yang lebih pendek.
Risiko tren dari perdagangan gridPerdagangan grid dalam mode EVE dapat terus berlanjut ke arah kerugian dalam pasar tren yang kuat. Solusinya adalah dengan menetapkan batasan risiko dan filter tren secara keseluruhan, atau menghentikan perdagangan grid setelah tren yang jelas diidentifikasi.
Terlalu mengandalkan indikator teknisStrategi didasarkan pada indikator teknis tradisional seperti EMA dan MACD, yang mungkin tidak berfungsi dalam kondisi pasar tertentu. Analisis hubungan harga-kuantitas terintegrasi atau algoritma identifikasi struktur pasar disarankan untuk meningkatkan akurasi penilaian.
Kompleksitas sistemKompleksitas sistem multi-modus meningkatkan kesulitan dalam pemeliharaan kode dan pemahaman kebijakan, yang dapat menyebabkan kesulitan dalam menanggapi keadaan yang tidak normal dengan cepat di ruang nyata. Proses pengujian yang baik dan mekanisme penanganan darurat harus dibangun.
Pengaturan parameter dinamisStrategi saat ini menggunakan parameter tetap yang dapat dioptimalkan untuk menyesuaikan parameter secara otomatis sesuai dengan volatilitas pasar, seperti:
Analisis multi-frame waktuMenggunakan analisis multi-frame untuk memastikan bahwa arah perdagangan konsisten dengan tren jangka waktu yang lebih besar dan menghindari perdagangan terbalik ke arah tren utama. Hal ini dapat dicapai dengan menganalisis EMA dan MACD pada jangka waktu yang lebih tinggi.
Segmentasi kondisi pasar: untuk lebih memisahkan kondisi pasar, misalnya untuk membedakan tren kuat dan lemah, goyangan reguler dan goyangan kontraksi, dan menyesuaikan parameter perdagangan untuk kondisi pasar yang lebih terbagi.
Integrasi hubungan kuantitas-hargaTerintegrasi analisis volume transaksi ke dalam strategi, terutama dalam transaksi terobosan (modus LUCIFER), untuk memfilter terobosan palsu dengan mengkonfirmasi apakah terobosan disertai dengan peningkatan volume transaksi.
Adaptasi manajemen posisi: Mengubah ukuran posisi sesuai dengan volatilitas pasar, probabilitas kemenangan model, dan dinamika situasi untung-rugi saat ini, meningkatkan posisi pada sinyal kepastian tinggi, mengurangi risiko dalam lingkungan yang tidak pasti.
Pembelajaran MesinIntroduksi algoritma pembelajaran mesin untuk mengoptimalkan pilihan model dan penyesuaian parameter, memprediksi model mana yang paling efektif dalam lingkungan pasar saat ini melalui model pelatihan data historis.
Perpaduan indikator emosiMengintegrasikan indikator sentimen pasar (misalnya indeks VIX atau indeks panik untuk pasar tertentu), menyesuaikan tindakan strategi atau menghentikan perdagangan dalam situasi sentimen yang ekstrem.
NOCTURNA v2.0 Shadow Engine adalah sistem perdagangan adaptif multi-modus inovatif yang menyediakan strategi perdagangan khusus yang dioptimalkan untuk berbagai lingkungan pasar melalui identifikasi dan pertukaran strategi pasar yang cerdas. Ini menggabungkan keuntungan dari perdagangan grid, pelacakan tren, perdagangan reverse, dan perdagangan terobosan, serta dilengkapi dengan mekanisme manajemen risiko yang komprehensif, termasuk stop loss dinamis, stop loss pelacakan cerdas, dan penyaringan volatilitas.
Keunggulan utama dari strategi ini adalah cakupan pasar yang komprehensif dan kemampuan beradaptasi yang dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar. Namun, kompleksitas sistem dan sensitivitas parameter juga membawa risiko dan tantangan optimasi tertentu. Strategi ini diharapkan dapat meningkatkan stabilitas dan profitabilitasnya lebih lanjut dengan mengintroduksi langkah-langkah optimasi seperti penyesuaian parameter dinamis, analisis multi-frame time, segmentasi status pasar yang lebih halus, dan peningkatan pembelajaran mesin.
Pada akhirnya, NOCTURNA v2.0 menyediakan sebuah kerangka perdagangan yang kuat, yang cocok untuk pedagang yang berpengalaman untuk diterapkan dalam perdagangan langsung dengan manajemen risiko yang tepat, atau sebagai template dasar untuk mengembangkan sistem perdagangan yang lebih kompleks.
/*backtest
start: 2025-02-01 00:00:00
end: 2025-06-02 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("NOCTURNA v2.0 – Shadow Engine: Trail Edition", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)
// === USER SETTINGS ===
useSL = true
useTP = true
useTrail = true
trailTrigger = 1.5 // % before trail starts
trailOffset = 0.75 // % trail distance
manualMode = input.string("AUTO", title="Mode", options=["AUTO", "EVE", "LUCIFER", "REAPER", "SENTINEL"])
gridSpacing = 0.015
maxLayers = 4
atrMultSL = 1.5
tpTarget = 0.015
// === INDICATORS ===
ema8 = ta.ema(close, 8)
ema34 = ta.ema(close, 34)
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
atr = ta.atr(14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
volatilitySpike = math.abs(close - open) > 3 * atr
// === AUTO MODE LOGIC ===
isRanging = math.abs(ema50 - ema50[10]) < atr * 0.25
isTrending = math.abs(ema50 - ema200) > atr and macdLine > signalLine
isReversing = ta.crossover(ema8, ema34) or ta.crossunder(ema8, ema34)
isBreakout = ta.crossover(close, ema200) or ta.crossunder(close, ema200)
var string activeMode = "None"
if manualMode != "AUTO"
activeMode := manualMode
else
if isRanging
activeMode := "EVE"
else if isReversing
activeMode := "REAPER"
else if isTrending
activeMode := "SENTINEL"
else if isBreakout
activeMode := "LUCIFER"
// === BASE FOR GRID ===
var float basePrice = na
if na(basePrice) or activeMode != "EVE"
basePrice := close
var int openTrades = 0
openTrades := 0
// === GRID (EVE) ===
for i = 1 to maxLayers
longLevel = basePrice * (1 - gridSpacing * i)
shortLevel = basePrice * (1 + gridSpacing * i)
if activeMode == "EVE" and not volatilitySpike
if close <= longLevel
id = "EVE L" + str.tostring(i)
strategy.entry(id, strategy.long)
sl = close - atrMultSL * atr
tp = useTP ? close + tpTarget * close : na
strategy.exit("TP/SL " + id, from_entry=id, stop=useSL ? sl : na, limit=tp)
openTrades += 1
if close >= shortLevel
id = "EVE S" + str.tostring(i)
strategy.entry(id, strategy.short)
sl = close + atrMultSL * atr
tp = useTP ? close - tpTarget * close : na
strategy.exit("TP/SL " + id, from_entry=id, stop=useSL ? sl : na, limit=tp)
openTrades += 1
// === TRAILING STOP FUNCTION ===
f_trailStop(side, id) =>
if useTrail
trigger = close * (trailTrigger / 100)
offset = close * (trailOffset / 100)
if side == "long"
strategy.exit("Trail " + id, from_entry=id, trail_price=trigger, trail_offset=offset)
else
strategy.exit("Trail " + id, from_entry=id, trail_price=trigger, trail_offset=offset)
// === LUCIFER MODE ===
if activeMode == "LUCIFER" and not volatilitySpike
if ta.crossover(close, ema50)
strategy.entry("Lucifer Long", strategy.long)
f_trailStop("long", "Lucifer Long")
if ta.crossunder(close, ema50)
strategy.entry("Lucifer Short", strategy.short)
f_trailStop("short", "Lucifer Short")
// === REAPER MODE ===
if activeMode == "REAPER" and not volatilitySpike
if ta.crossover(ema8, ema34)
strategy.entry("Reaper Long", strategy.long)
f_trailStop("long", "Reaper Long")
if ta.crossunder(ema8, ema34)
strategy.entry("Reaper Short", strategy.short)
f_trailStop("short", "Reaper Short")
// === SENTINEL MODE ===
if activeMode == "SENTINEL" and not volatilitySpike
if ema50 > ema200 and macdLine > signalLine
strategy.entry("Sentinel Long", strategy.long)
f_trailStop("long", "Sentinel Long")
if ema50 < ema200 and macdLine < signalLine
strategy.entry("Sentinel Short", strategy.short)
f_trailStop("short", "Sentinel Short")
// === DASHBOARD PANEL ===
var label panel = na
label.delete(panel)
panel := label.new(bar_index, high,
"NOCTURNA v2.0\nMode: " + activeMode + "\nOpen Grids: " + str.tostring(openTrades),
style=label.style_label_left, textcolor=color.white, color=color.black)
// === ALERTS – Human Readable
alertcondition(activeMode == "EVE", title="EVE Signal", message="🕊️ NOCTURNA: EVE Grid")
alertcondition(activeMode == "LUCIFER", title="Lucifer Signal", message="🔥 NOCTURNA: LUCIFER Breakout")
alertcondition(activeMode == "REAPER", title="Reaper Signal", message="☠️ NOCTURNA: REAPER Reversal")
alertcondition(activeMode == "SENTINEL", title="Sentinel Signal", message="🛡️ NOCTURNA: SENTINEL Trend")
// === ALERTS – JSON for Bots
alertcondition(activeMode == "EVE", title="JSON EVE", message='{"mode":"EVE","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "LUCIFER", title="JSON LUCIFER", message='{"mode":"LUCIFER","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "REAPER", title="JSON REAPER", message='{"mode":"REAPER","ticker":"{{ticker}}","price":"{{close}}"}')
alertcondition(activeMode == "SENTINEL", title="JSON SENTINEL", message='{"mode":"SENTINEL","ticker":"{{ticker}}","price":"{{close}}"}')
// === VISUAL PLOT
plot(ema50, title="EMA 50", color=color.gray)