
Strategi ini disebut strategi stop loss berorientasi beli dengan volatilitas rendah. Ini menggunakan crossover rata-rata bergerak sebagai sinyal beli, digabungkan dengan stop loss untuk mengunci keuntungan, dan berlaku untuk mata uang di kisaran volatilitas rendah.
Strategi ini menggunakan moving average dari 3 periode yang berbeda: 50 periode, 100 periode, dan 200 periode. Logika pembelian adalah: ketika 50 periode melintasi 100 periode, dan 200 periode melintasi 100 periode, masuk lebih banyak.
Sinyal ini menunjukkan bahwa pasar sedang menembus dari zona fluktuasi rendah dan mulai memasuki keadaan tren. 50 siklus naik cepat mewakili kekuatan internal dalam jangka pendek yang tiba-tiba meningkat dan mulai mendorong garis panjang menengah ke atas; 100 siklus garis juga mulai naik untuk menunjukkan kekuatan menengah bergabung dan tren stabil naik.
Setelah masuk, strategi menggunakan stop loss untuk mengunci keuntungan. Stop loss target adalah 8% dari harga masuk, dan stop loss line adalah 4% dari harga masuk. Pengaturan stop loss lebih besar dari stop loss, menguntungkan untuk mendapatkan keuntungan lebih dari kerugian, dan memastikan bahwa strategi secara keseluruhan menguntungkan.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Tanggapan:
Strategi ini dapat dioptimalkan dengan:
Secara keseluruhan, strategi ini berjalan dengan logika yang jelas, dengan mengkonfigurasi siklus moving average dan stop loss stop loss untuk mendapatkan keuntungan dengan risiko rendah, dapat diterapkan secara fleksibel untuk perdagangan kuantitatif. Selanjutnya dapat dioptimalkan dari sisi sinyal masuk, cara stop loss, dan lain-lain, dengan penyesuaian parameter untuk mencari efek terbaik.
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)
//Exit
longStopPrice = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)
strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())
//PLOT
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)