
Strategi ini adalah sistem perdagangan parameter yang menyesuaikan diri berdasarkan isyarat persilangan dua garis lurus. Isyarat perdagangan dihasilkan melalui persilangan purata bergerak cepat dan purata bergerak perlahan, dan digabungkan dengan parameter pengurusan risiko yang boleh disesuaikan seperti berhenti, hentikan dan mengesan hentikan, untuk pengurusan strategi perdagangan yang fleksibel.
Strategi ini menggunakan dua rata-rata bergerak cepat dan perlahan sebagai petunjuk utama. Apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan ke atas, sistem menghasilkan banyak isyarat; Apabila rata-rata bergerak cepat melintasi rata-rata bergerak perlahan ke bawah, sistem menghasilkan isyarat kedudukan yang sama.
Strategi ini menggabungkan parameter pengurusan risiko yang fleksibel dengan penyeberangan dua garis sejajar, untuk membina sistem perdagangan yang dapat disesuaikan. Kelebihan strategi ini adalah parameternya dapat disesuaikan, kawalan risiko yang sempurna, tetapi juga perlu memperhatikan risiko yang dibawa oleh pasaran yang bergolak dan pengoptimuman 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)