
Strategi ini menggunakan beberapa pergerakan rata-rata untuk menghasilkan sinyal perdagangan. Jika harga melewati garis rata-rata naik, maka Anda harus melakukan over; Jika harga melewati garis rata-rata turun, maka Anda harus melakukan over.
Kode ini menggunakan 4 garis rata-rata bergerak dengan periode yang berbeda, yaitu garis 21, 50, 100, dan 200. Jika harga menembus garis rata-rata ini, maka masuklah lebih banyak, dan jika harga jatuh ke bawah garis rata-rata ini, maka masuklah kosong. Selain itu, strategi ini juga menetapkan stop loss dan stop loss.
Gagasan inti dari strategi ini adalah menggunakan moving averages untuk menilai tren harga. Ketika harga menembus garis rata-rata naik, berarti saat ini sedang dalam tren naik, harus dilakukan lebih banyak; Ketika harga jatuh ke bawah garis rata-rata turun, berarti saat ini sedang dalam tren turun, harus dilakukan kosong.
Keuntungan dari strategi ini adalah:
Risiko utama dari strategi ini adalah:
Risiko ini dapat dikurangi dengan menyesuaikan parameter rata-rata dan mengoptimalkan strategi stop loss.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini secara keseluruhan adalah strategi pelacakan tren yang khas. Kelebihannya adalah ide yang jelas, mudah dimengerti dan diimplementasikan; Kelemahannya adalah mudah menghasilkan sinyal yang salah.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)
// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)
// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)
// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)
// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)
// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005
// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longExitCondition)
strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)
if (shortExitCondition)
strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)