
Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada analisis multi-siklus, yang menggabungkan indeks moving average (EMA) dan indikator acak (Stochastic) untuk menentukan arah perdagangan dan waktu masuk. Strategi ini mengkonfirmasi arah tren pada siklus 15 menit dan mencari peluang masuk spesifik pada siklus 1-5 menit untuk mengoptimalkan kinerja perdagangan melalui manajemen risiko yang ketat dan keuntungan bergilir.
Strategi ini menggunakan mekanisme verifikasi kondisi transaksi bertingkat:
Strategi ini menggunakan analisis multi-siklus dan kombinasi dari beberapa indikator teknis untuk membangun sistem perdagangan yang lebih baik untuk melacak tren. Keunggulan inti dari strategi ini adalah manajemen risiko yang ketat dan skema keuntungan yang fleksibel, tetapi dalam penerapan praktis masih memerlukan pengoptimalan parameter yang sesuai sesuai dengan lingkungan pasar dan ukuran dana. Dengan arah pengoptimalan yang disarankan, strategi ini diharapkan untuk mendapatkan kinerja yang lebih stabil dalam berbagai lingkungan pasar.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("15-Min Trend Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Define EMA for trend confirmation
ema50 = ta.ema(close, 50)
trendLong = close > ema50
trendShort = close < ema50
// Stochastic settings
length = 14
smoothK = 3
smoothD = 3
stochK = ta.sma(ta.stoch(close, high, low, length), smoothK)
stochD = ta.sma(stochK, smoothD)
// Entry conditions
longCondition = stochK < 30 and trendLong
shortCondition = stochK > 70 and trendShort
// ATR-based stop-loss calculation
atrValue = ta.atr(14)
stopLossLong = close - (1.5 * atrValue)
stopLossShort = close + (1.5 * atrValue)
takeProfitLong = close + (2 * atrValue)
takeProfitShort = close - (2 * atrValue)
// Execute trades
if longCondition
strategy.entry("Long", strategy.long, qty=2)
strategy.exit("TP Long 1", from_entry="Long", qty=1, stop=stopLossLong, limit=takeProfitLong)
strategy.exit("TP Long 2", from_entry="Long", qty=1, stop=stopLossLong, limit=takeProfitLong * 1.5)
if shortCondition
strategy.entry("Short", strategy.short, qty=2)
strategy.exit("TP Short 1", from_entry="Short", qty=1, stop=stopLossShort, limit=takeProfitShort)
strategy.exit("TP Short 2", from_entry="Short", qty=1, stop=stopLossShort, limit=takeProfitShort * 1.5)
// Move SL to breakeven after 50% move to target
if strategy.position_size > 0
if strategy.position_avg_price != 0
moveToBELong = close >= (strategy.position_avg_price + (takeProfitLong - strategy.position_avg_price) * 0.5)
if moveToBELong
strategy.exit("BE Long", from_entry="Long", qty=1, stop=strategy.position_avg_price)
moveToBEShort = close <= (strategy.position_avg_price - (strategy.position_avg_price - takeProfitShort) * 0.5)
if moveToBEShort
strategy.exit("BE Short", from_entry="Short", qty=1, stop=strategy.position_avg_price)