Strategi ini menghasilkan isyarat perdagangan berdasarkan penembusan dan panggilan balik beberapa garis purata bergerak. Ia pergi lama apabila harga memecahkan garis purata bergerak ke atas dan pergi pendek apabila harga jatuh di bawah garis purata bergerak ke bawah.
Kod ini menggunakan 4 garis purata bergerak dengan tempoh yang berbeza - 21 hari, 50 hari, 100 hari dan 200 hari. Ia memasuki kedudukan panjang apabila harga memecahkan garis MA ini dan memasuki kedudukan pendek apabila harga jatuh di bawah garis MA ini. Di samping itu, tahap stop loss dan mengambil keuntungan ditetapkan dalam strategi. Khususnya, stop loss ditetapkan berhampiran titik terendah lilin sebelumnya, dan mengambil keuntungan ditetapkan pada jarak 3 kali jarak antara titik terendah dan titik tertinggi lilin sebelumnya.
Idea utama strategi ini adalah untuk menilai trend menggunakan purata bergerak. Apabila harga menembusi garis MA ke atas, ia menunjukkan trend menaik jadi harus pergi panjang. Apabila harga jatuh di bawah garis MA ke bawah, ia menunjukkan trend menurun jadi harus pergi pendek. Menggunakan pelbagai garis MA dengan tempoh yang berbeza boleh menilai trend dengan lebih tepat dan juga mengesahkan isyarat perdagangan melalui konsistensi trend.
Kelebihan utama strategi ini ialah:
Risiko utama strategi ini ialah:
Risiko ini boleh dikurangkan dengan menyesuaikan parameter MA dan mengoptimumkan stop loss dan mengambil keuntungan.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Secara umum, ini adalah trend tipikal yang mengikuti strategi. Kelebihannya adalah logik yang jelas dan mudah difahami dan dilaksanakan. Kelemahannya adalah terdedah kepada isyarat palsu. Strategi ini boleh ditingkatkan dengan menyesuaikan parameter dan menambah penunjuk lain. Ia sesuai untuk memegang jangka menengah hingga panjang dan juga boleh digunakan sebagai komponen strategi perdagangan jangka pendek.
/*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)