Strategi ini menghasilkan sinyal perdagangan berdasarkan terobosan dan callback dari beberapa garis rata-rata bergerak.
Kode ini menggunakan 4 garis rata-rata bergerak dengan periode yang berbeda - 21 hari, 50 hari, 100 hari dan 200 hari. Ini memasuki posisi panjang ketika harga menembus garis MA ini dan memasuki posisi pendek ketika harga jatuh di bawah garis MA ini. Selain itu, stop loss dan take profit level ditetapkan dalam strategi. Secara khusus, stop loss ditetapkan di dekat titik terendah dari lilin sebelumnya, dan take profit ditetapkan pada jarak 3 kali jarak antara titik terendah dan titik tertinggi dari lilin sebelumnya.
Ide inti dari strategi ini adalah untuk menilai tren menggunakan rata-rata bergerak. Ketika harga menembus garis MA ke atas, itu menunjukkan tren ke atas sehingga harus pergi panjang. Ketika harga turun di bawah garis MA ke bawah, itu menunjukkan tren ke bawah sehingga harus pergi pendek. Menggunakan beberapa garis MA dengan periode yang berbeda dapat menilai tren lebih akurat dan juga memverifikasi sinyal perdagangan melalui konsistensi tren.
Keuntungan utama dari strategi ini adalah:
Risiko utama dari strategi ini adalah:
Risiko ini dapat dikurangi dengan menyesuaikan parameter MA dan mengoptimalkan stop loss dan take profit.
Strategi ini dapat dioptimalkan dalam aspek berikut:
Secara umum, ini adalah tren yang khas mengikuti strategi. Keuntungannya adalah logika yang jelas dan mudah dipahami dan diimplementasikan. Kelemahannya adalah rentan terhadap sinyal palsu. Strategi dapat ditingkatkan dengan menyesuaikan parameter dan menambahkan indikator lain.
/*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)