
Strategi ini adalah sistem perdagangan parameter adaptif yang didasarkan pada sinyal crossover dua garis lurus. Strategi ini menghasilkan sinyal perdagangan melalui persilangan rata-rata bergerak cepat dan rata-rata bergerak lambat, dan digabungkan dengan parameter manajemen risiko yang dapat disesuaikan seperti stop loss, stop-loss, dan tracking stop loss, untuk memungkinkan manajemen strategi perdagangan yang fleksibel.
Strategi ini menggunakan dua rata-rata bergerak cepat dan lambat sebagai indikator utama. Sistem menghasilkan sinyal yang lebih banyak ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat ke atas; sistem menghasilkan sinyal posisi terdepan ketika rata-rata bergerak cepat melintasi rata-rata bergerak lambat ke bawah. Strategi ini juga memperkenalkan tiga mekanisme kontrol risiko: stop loss tetap, stop loss tetap, dan stop loss pelacakan.
Strategi ini menggabungkan parameter manajemen risiko yang fleksibel dengan crossover dua garis sejajar untuk membangun sistem perdagangan yang dapat disesuaikan. Keunggulan strategi ini adalah parameternya dapat disesuaikan, kontrol risiko yang sempurna, tetapi juga perlu memperhatikan risiko yang ditimbulkan oleh pasar yang bergoyang dan pengoptimalan parameter.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 2d
basePeriod: 2d
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/
// © traderhub
//@version=5
strategy("Two Moving Averages Strategy with Adjustable Parameters", overlay=true)
// Adjustable parameters for fast and slow moving averages
fastLength = input.int(10, title="Fast Moving Average Length", minval=1, maxval=100)
slowLength = input.int(30, title="Slow Moving Average Length", minval=1, maxval=100)
// Risk management parameters
stopLossPerc = input.float(1, title="Stop Loss (%)", step=0.1) // Stop-loss percentage
takeProfitPerc = input.float(2, title="Take Profit (%)", step=0.1) // Take-profit percentage
trailStopPerc = input.float(1.5, title="Trailing Stop (%)", step=0.1) // Trailing stop percentage
// Calculate fast and slow moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Plot moving averages on the chart
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.red, title="Slow Moving Average")
// Conditions for opening and closing positions
longCondition = ta.crossover(fastMA, slowMA) // Buy when fast moving average crosses above the slow moving average
shortCondition = ta.crossunder(fastMA, slowMA) // Sell when fast moving average crosses below the slow moving average
// Variables for stop-loss and take-profit levels
var float longStopLevel = na
var float longTakeProfitLevel = na
// Enter a long position
if (longCondition)
longStopLevel := strategy.position_avg_price * (1 - stopLossPerc / 100)
longTakeProfitLevel := strategy.position_avg_price * (1 + takeProfitPerc / 100)
strategy.entry("Long", strategy.long)
// Manage stop-loss, take-profit, and trailing stop for long positions
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLevel, limit=longTakeProfitLevel, trail_offset=trailStopPerc)
// Close the long position and enter short when the condition is met
if (shortCondition)
strategy.close("Long")
strategy.entry("Short", strategy.short)