
Strategi perdagangan kuantitatif yang berpusat pada peraturan adalah sistem pengesanan trend berdasarkan peraturan, yang mana logiknya berpusat pada 21 EMA. Strategi ini memantau hubungan harga dengan 21 EMA, melakukan perdagangan ketika harga menutup di atas garis rata-rata, meloloskan di bawah garis rata-rata, dan membuka posisi kosong ketika harga melintas lagi di atas garis rata-rata dan sebaliknya. Strategi ini juga merangkumi mekanisme kawalan risiko seperti penyesuaian masa perdagangan yang disesuaikan, penghadaman dan penghadaman kerugian, batasan jumlah dagangan maksimum setiap hari, dan penguncian perdagangan secara automatik selepas keuntungan pertama, yang bertujuan untuk menyediakan sistem perdagangan yang disiplin dan logik.
Prinsip utama strategi ini adalah untuk menangkap perubahan dinamik harga di sekitar 21 EMA, untuk mencapai trend mengikuti dan bertukar perdagangan.
Strategi ini juga mengintegrasikan nilai purata bertimbangan kuantiti transaksi (VWAP) sebagai penanda rujukan tambahan untuk memberikan maklumat latar belakang pasaran tambahan.
Arahan pengoptimuman ini bertujuan untuk meningkatkan ketahanan dan adaptasi strategi, mengurangkan isyarat palsu dan meningkatkan keuntungan.
Strategi perdagangan kuantitatif yang berputar pada pergerakan melintasi garis rata adalah sistem pemantauan trend berdasarkan 21 EMA yang berlawanan, dengan ciri-ciri yang jelas dan logik. Dengan memantau hubungan harga dengan garis rata, digabungkan dengan mekanisme pengurusan risiko yang ketat, strategi ini dapat menangkap titik perubahan trend pasaran dengan berkesan, sambil mengawal risiko.
Kelebihan utama strategi adalah logik perdagangan yang ringkas dan intuitif dan mekanisme pelaksanaan disiplin yang baik, terutamanya reka bentuk yang mengunci perdagangan selepas keuntungan pertama yang berkesan mencegah perdagangan berlebihan dan pembalikan keuntungan. Walau bagaimanapun, strategi juga mempunyai risiko yang berpotensi seperti ketinggalan rata-rata, ketergantungan berlebihan pada satu petunjuk.
Arah pengoptimuman masa depan harus memberi tumpuan kepada dinamika parameter, pengesahan isyarat pelbagai faktor, peningkatan pengurusan risiko dan klasifikasi keadaan pasaran untuk meningkatkan kemampuan strategi untuk menyesuaikan diri dalam keadaan pasaran yang berbeza. Melalui pengoptimuman ini, strategi ini dijangka menjadi sistem perdagangan kuantitatif yang lebih stabil dan boleh dipercayai.
Sebagai sebahagian daripada kaedah DSPLN, strategi ini mencerminkan falsafah perdagangan “Do So Patiently Listening Now”, yang menekankan disiplin dan sistematik, memberikan pedagang kerangka perdagangan yang mengatasi gangguan emosi dan memberi tumpuan kepada pelaksanaan peraturan.
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-21 08:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_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/
// © EnvisionTrades
//@version=5
strategy("DSPLN EMA Flip Strategy v6", overlay=true)
// 🔹 Inputs
startHour = input.int(8, "Start Hour")
startMinute = input.int(30, "Start Minute")
endHour = input.int(10, "End Hour")
endMinute = input.int(30, "End Minute")
useTPSL = input.bool(true, "Use TP/SL?")
tpPoints = input.int(40, "Take Profit (points)")
slPoints = input.int(20, "Stop Loss (points)")
// 🔹 Time Filter
isWithinTradingHours = (hour > startHour or (hour == startHour and minute >= startMinute)) and
(hour < endHour or (hour == endHour and minute < endMinute))
// 🔹 Indicators
ema21 = ta.ema(close, 21)
vwap = ta.vwap
plot(ema21, title="21 EMA", color=color.orange)
plot(vwap, title="VWAP", color=color.blue)
// 🔹 State Variables
var int tradesToday = 0
var bool lastTradeWon = false
var float entryPrice = na
var label winLabel = na
var int prevTradeCount = 0
// 🔹 Entry Conditions
longEntry = isWithinTradingHours and close > ema21 and close[1] <= ema21[1]
shortEntry = isWithinTradingHours and close < ema21 and close[1] >= ema21[1]
// 🔹 Exit Conditions
longExit = strategy.position_size > 0 and close < ema21
shortExit = strategy.position_size < 0 and close > ema21
// 🔹 Trade Control
canTrade = tradesToday < 5 and not lastTradeWon
// 🔹 Entry Logic
if canTrade and strategy.position_size == 0 and longEntry
strategy.entry("Long", strategy.long)
entryPrice := close
if useTPSL
strategy.exit("TP Long", from_entry="Long", stop=close - slPoints * syminfo.mintick, limit=close + tpPoints * syminfo.mintick)
if canTrade and strategy.position_size == 0 and shortEntry
strategy.entry("Short", strategy.short)
entryPrice := close
if useTPSL
strategy.exit("TP Short", from_entry="Short", stop=close + slPoints * syminfo.mintick, limit=close - tpPoints * syminfo.mintick)
// 🔹 EMA Manual Exit Logic
if longExit
strategy.close("Long")
tradesToday += 1
lastTradeWon := close > entryPrice
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ WIN - No More Trades", style=label.style_label_down, color=color.green)
if shortExit
strategy.close("Short")
tradesToday += 1
lastTradeWon := close < entryPrice
if lastTradeWon
winLabel := label.new(bar_index, low, "✅ WIN - No More Trades", style=label.style_label_up, color=color.green)
// 🔹 Detect Closed Trades (TP/SL exits)
tradeCount = strategy.closedtrades
if tradeCount > prevTradeCount
closedProfit = strategy.netprofit - strategy.netprofit[1]
tradesToday += 1
lastTradeWon := closedProfit > 0
if lastTradeWon
winLabel := label.new(bar_index, high, "✅ TP WIN - No More Trades", style=label.style_label_down, color=color.green)
prevTradeCount := tradeCount
// 🔹 Reset Daily
if (hour == endHour and minute == endMinute)
tradesToday := 0
lastTradeWon := false
entryPrice := na
prevTradeCount := 0
if not na(winLabel)
label.delete(winLabel)