Strategi Scalping Moving Average

Penulis:ChaoZhang, Tanggal: 2023-09-21 20:41:15
Tag:

Gambaran umum

Strategi ini termasuk dalam jenis strategi scalping, yang bertujuan untuk membuka dan menutup posisi sering untuk mendapatkan keuntungan dari keuntungan kecil sambil membatasi risiko penurunan.

Logika Strategi

Strategi ini menggunakan 4 rata-rata bergerak - 9, 50, 100, dan 200 periode.

Aturan perdagangan khusus adalah:

  • Pergi panjang ketika 9 MA melintasi di atas 50 MA
  • 50 MA kurang dari 100 MA
  • 100 MA kurang dari 200 MA

Kombinasi ini mengidentifikasi situasi ketika harga berada dalam tren penurunan jangka pendek tetapi pembalikan dapat terjadi.

Aturan keluar adalah ketika 9 MA melintasi di atas 200 MA. Target keuntungan dekat digunakan untuk mengunci keuntungan kecil yang sering untuk keuntungan yang stabil.

Keuntungan

  • Pengendalian pembukaan dan penutupan yang sering, kerugian tunggal
  • MA crossover menangkap potensi bawah
  • Target keuntungan mendekati kunci dalam kemenangan tertentu kecil
  • Mengurangi waktu menahan meminimalkan pengaruh tren
  • Penggunaan modal yang tinggi cocok untuk rekening kecil

Risiko

  • MA lag mungkin melewatkan titik masuk terbaik
  • Kisaran keuntungan kecil rentan terhadap biaya
  • Lebih banyak perdagangan yang tidak sah meningkatkan biaya waktu dan energi
  • TP yang terlalu konservatif gagal mengikuti tren
  • Sulit untuk mendapatkan keuntungan di pasar yang terikat rentang

Risiko dapat dikurangi dengan:

  • Mengoptimalkan parameter MA untuk akurasi sinyal yang lebih baik
  • Menyenangkan TP untuk menangkap lebih banyak keuntungan tren
  • Menambahkan indikator lain untuk konfirmasi, mengurangi perdagangan yang tidak valid
  • Mengoptimalkan pemanfaatan modal dan ukuran posisi
  • Mempertimbangkan masuk kembali

Arahan Optimasi

Strategi dapat ditingkatkan dengan:

  1. Mengoptimalkan kombinasi MA

    Mencoba lebih banyak periode MA untuk deteksi pembalikan yang lebih baik.

  2. Meningkatkan tingkat keuntungan

    Izinkan jarak TP yang lebih luas untuk keuntungan tren yang lebih besar.

  3. Menambahkan indikator lain

    Seperti KDJ, MACD untuk konfirmasi untuk mengurangi perdagangan yang tidak valid.

  4. Optimasi ukuran posisi

    Posisi ukuran dinamis berdasarkan TP dan SL tertentu.

  5. Menambahkan aturan masuk kembali

    Pertimbangkan untuk masuk kembali setelah TP jika tren berlanjut.

Ringkasan

Strategi scalping ini mengidentifikasi potensi pembalikan jangka pendek dengan kombinasi MA untuk keuntungan kecil yang sering. Ini secara efektif mengendalikan kerugian dan risiko tunggal, membuatnya cocok untuk pertumbuhan akun kecil. Namun, ada batasan seperti kisaran keuntungan kecil dan perdagangan yang berlebihan. Perbaikan dapat dilakukan melalui penyesuaian parameter, penyesuaian TP, penambahan filter dll, untuk memperluas keuntungan sambil mempertahankan kekuatannya, membuat strategi lebih kuat dan efisien. Juga belajar terus-menerus strategi lain yang lebih maju penting.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//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()  => true       // create function "within window of time"

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Entry 
bullish = crossover(movingaverage_signal, movingaverage_fast)

strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window())

//Exit

bearish = crossover(movingaverage_signal, movingaverage_slow)


Stop_loss= ((input (2))/100)
Take_profit= ((input (8))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = bearish)

// close < longStopPrice or close > longTakeProfit and window())

//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2 )
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)
plot(movingaverage_mid, color=color.blue, linewidth=2)


Lebih banyak