
Strategi ini ialah sistem dagangan automatik berdasarkan isyarat persilangan purata bergerak, yang mengoptimumkan prestasi dagangan dengan menetapkan nisbah pulangan risiko tetap. Strategi ini menggunakan persilangan purata bergerak pantas (MA Cepat) dan purata bergerak perlahan (MA Perlahan) untuk menentukan arah aliran pasaran, dan menggabungkan titik henti kerugian pratetap dan sasaran keuntungan untuk menguruskan risiko kedudukan.
Logik teras strategi adalah berdasarkan isyarat silang yang dijana oleh dua purata bergerak bagi tempoh berbeza (10 tempoh dan 30 tempoh). Apabila garisan pantas melintasi garisan perlahan, sistem menghasilkan isyarat panjang apabila garisan pantas melintasi garisan perlahan, sistem menghasilkan isyarat pendek. Selepas setiap kedudukan dibuka, sistem akan mengira kedudukan henti rugi secara automatik berdasarkan nisbah henti rugi 2% yang telah ditetapkan, dan menetapkan sasaran keuntungan mengikut nisbah pulangan risiko 2.5 kali ganda. Pendekatan ini memastikan bahawa setiap perdagangan mempunyai profil pulangan risiko tetap.
Strategi ini membina sistem perdagangan yang lengkap dengan menggabungkan kaedah analisis teknikal klasik dengan konsep pengurusan risiko moden. Walaupun terdapat batasan tertentu, melalui pengoptimuman dan penambahbaikan berterusan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam persekitaran pasaran yang berbeza. Kuncinya adalah untuk melaraskan tetapan parameter secara berterusan berdasarkan hasil dagangan sebenar dan mencari konfigurasi yang paling sesuai dengan persekitaran pasaran semasa.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)
//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")
fastLength = input.int(10, "Fast MA Length")
slowLength = input.int(30, "Slow MA Length")
stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR = input.float(2.5, "Risk to Reward Ratio", step=0.1)
//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)
// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)
// Entry Conditions
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)
//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0
if (strategy.position_size == 0) // not in a position
if longCondition
// Long entry
entryPrice := price
strategy.entry("Long", strategy.long)
if shortCondition
// Short entry
entryPrice := price
strategy.entry("Short", strategy.short)
if strategy.position_size > 0
// We are in a long position
if strategy.position_avg_price > 0 and strategy.position_size > 0
longStop = strategy.position_avg_price * (1 - stopLossPerc/100)
longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)
if strategy.position_size < 0
// We are in a short position
if strategy.position_avg_price > 0 and strategy.position_size < 0
shortStop = strategy.position_avg_price * (1 + stopLossPerc/100)
shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)
//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")