
Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada rata-rata multi-periode. Strategi ini menggunakan rata-rata bergerak sederhana 89 siklus dan 21 siklus (SMA) untuk menentukan arah tren pasar secara keseluruhan, sementara menggabungkan puncak dan titik rendah dari rata-rata bergerak indeks 5 siklus (EMA) untuk mencari sinyal perdagangan tertentu. Strategi ini menggunakan manajemen posisi ganda, dan menggabungkan stop loss tetap dan tracking stop untuk mengendalikan risiko.
Logika inti dari strategi ini mencakup elemen-elemen kunci berikut:
Strategi ini adalah sistem pelacakan tren yang terstruktur, menangkap tren pasar melalui kombinasi rata-rata multi-periode, dan mengontrol risiko dengan manajemen posisi yang fleksibel dan metode stop loss. Meskipun ada ruang untuk pengoptimalan, kerangka dasar strategi ini memiliki kepraktisan dan skalabilitas yang baik. Untuk varietas perdagangan dan lingkungan pasar yang berbeda, stabilitas strategi dapat ditingkatkan dengan menyesuaikan parameter dan menambahkan kondisi filter.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2
//@version=5
strategy("High 5 Trading Technique", overlay=true)
// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)
// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)
// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89
// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High
// --- Entry orders ---
if (longTrigger)
strategy.entry("Long 1", strategy.long, qty=contracts)
strategy.entry("Long 2", strategy.long, qty=contracts)
if (shortTrigger)
strategy.entry("Short 1", strategy.short, qty=contracts)
strategy.entry("Short 2", strategy.short, qty=contracts)
// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)
// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)
// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)