Strategi Scalping Purata Bergerak

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

Ringkasan

Strategi ini termasuk dalam jenis strategi scalping, yang bertujuan untuk membuka dan menutup kedudukan dengan kerap untuk mendapat keuntungan daripada keuntungan kecil sambil mengehadkan risiko penurunan.

Logika Strategi

Strategi ini menggunakan 4 purata bergerak - 9, 50, 100, dan 200 tempoh.

Peraturan perdagangan khusus ialah:

  • Pergi panjang apabila 9 MA melintasi 50 MA
  • 50 MA adalah di bawah 100 MA
  • 100 MA adalah di bawah 200 MA

Gabungan ini mengenal pasti situasi apabila harga berada dalam trend penurunan jangka pendek tetapi pembalikan mungkin berlaku.

Peraturan keluar adalah apabila 9 MA melintasi di atas 200 MA. Sasaran keuntungan yang hampir digunakan untuk mengunci keuntungan kecil yang kerap untuk keuntungan yang stabil.

Kelebihan

  • Pengendalian pembukaan dan penutupan kerap kerugian tunggal
  • MA crossover menangkap potensi bawah
  • Matlamat keuntungan yang hampir terkunci dalam kemenangan tertentu kecil
  • Tempoh tahan yang dikurangkan meminimumkan pengaruh trend
  • Penggunaan modal yang tinggi sesuai untuk akaun kecil

Risiko

  • MA lag mungkin terlepas titik kemasukan terbaik
  • Julat keuntungan kecil terdedah kepada yuran
  • Lebih banyak perdagangan yang tidak sah meningkatkan kos masa dan tenaga
  • TP yang terlalu konservatif gagal untuk menaiki trend
  • Sukar mendapat keuntungan di pasaran terhad julat

Risiko boleh dikurangkan dengan:

  • Mengoptimumkan parameter MA untuk ketepatan isyarat yang lebih baik
  • Relaksasi TP untuk menangkap lebih banyak keuntungan trend
  • Menambah penunjuk lain untuk pengesahan, mengurangkan dagangan yang tidak sah
  • Mengoptimumkan penggunaan modal dan saiz kedudukan
  • Mempertimbangkan kemasukan semula

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dengan:

  1. Mengoptimumkan gabungan MA

    Uji lebih banyak tempoh MA untuk pengesanan pembalikan yang lebih baik.

  2. Peningkatan tahap keuntungan

    Membolehkan jarak TP yang lebih luas untuk lebih banyak keuntungan trend.

  3. Menambah penunjuk lain

    Seperti KDJ, MACD untuk pengesahan untuk mengurangkan perdagangan yang tidak sah.

  4. Pengoptimuman saiz kedudukan

    Posisi saiz dinamik berdasarkan TP dan SL tertentu.

  5. Menambah peraturan kemasukan semula

    Pertimbangkan untuk masuk semula selepas TP jika trend berterusan.

Ringkasan

Strategi scalping ini mengenal pasti potensi pembalikan jangka pendek dengan kombinasi MA untuk keuntungan kecil yang kerap. Ini berkesan mengawal kerugian dan risiko tunggal, menjadikannya sesuai untuk pertumbuhan akaun kecil. Walau bagaimanapun, terdapat batasan seperti julat keuntungan kecil dan perdagangan yang berlebihan. Penambahbaikan boleh dibuat melalui penyesuaian parameter, penyesuaian TP, penambahan penapis dll, untuk memperluas keuntungan sambil mengekalkan kekuatannya, menjadikan strategi lebih mantap dan cekap. Juga belajar terus strategi lain yang lebih maju adalah 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 lanjut