Strategi Crossover Purata Bergerak Larry Williams

Penulis:ChaoZhang, Tarikh: 2023-12-26 15:03:16
Tag:

img

Ringkasan

Ini adalah strategi crossover purata bergerak yang mudah dan klasik yang dicipta oleh peniaga terkenal Larry Williams. Strategi ini menggunakan purata bergerak mudah 9 hari sebagai garisan pantas dan purata bergerak eksponensial 21 hari sebagai garisan perlahan. Ia pergi lama apabila harga memecahkan di atas garisan 9 hari, dan pergi pendek apabila harga memecahkan di bawah garisan 9 hari. Untuk menapis pecah palsu, garisan 21 hari juga digunakan untuk mengesahkan trend.

Logika Strategi

Strategi ini adalah berdasarkan crossover emas dan crossover kematian purata bergerak untuk menentukan peluang panjang dan pendek. Apabila garisan pantas memecahkan di atas garis perlahan dari bawah, ia adalah crossover emas, yang menunjukkan perubahan kepada trend bullish. Penembusan sedemikian digunakan untuk pergi panjang. Apabila garisan pantas memecahkan di bawah garis perlahan dari atas, ia adalah crossover kematian, yang menunjukkan perubahan kepada trend menurun. Penembusan sedemikian digunakan untuk pergi pendek.

Untuk mengelakkan pecah palsu yang membawa kepada kerugian maya, garis 21 hari juga digunakan untuk menentukan trend utama. Hanya apabila garis pantas pecah dan harga juga memecahkan garis 21 hari, tindakan perdagangan akan diambil. Ini dapat menapis banyak pecah palsu dengan berkesan.

Khususnya, isyarat panjang diaktifkan apabila: garis cepat memecahkan di atas kemuncak semalam dan memecahkan di atas garis 21 hari. isyarat pendek diaktifkan apabila: garis cepat memecahkan di bawah kemuncak semalam dan memecahkan di bawah garis 21 hari.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Idea strategi adalah mudah dan mudah difahami dan dilaksanakan.
  2. Teknik purata bergerak adalah matang dan digunakan secara meluas.
  3. Pengenalan barisan 21 hari berkesan menapis pecah palsu.
  4. Menggunakan titik melampau semalam untuk memasuki kedudukan boleh mengelakkan terperangkap.
  5. Parameter strategi agak kukuh tanpa terlalu mudah.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Di pasaran yang tidak menentu, purata bergerak tertinggal dan mungkin terlepas titik kemasukan terbaik.
  2. Dalam pasaran yang terikat julat dengan pergerakan harga sampingan, kerugian kecil yang kerap boleh berlaku.
  3. Ia tidak dapat bertindak balas dengan berkesan terhadap peristiwa tiba-tiba dan perubahan trend yang ketara.

Untuk menangani risiko ini, pengoptimuman boleh dibuat dalam aspek berikut:

  1. Memperkenalkan penunjuk MACD untuk lebih banyak isyarat masa nyata.
  2. Meningkatkan parameter tempoh MA untuk mengurangkan kekerapan dagangan.
  3. Tambah strategi stop loss untuk mengawal jumlah kerugian perdagangan tunggal.

Arahan pengoptimuman

Arah pengoptimuman utama untuk strategi ini termasuk:

  1. Pengoptimuman parameter. Kaedah yang lebih sistematik boleh digunakan untuk menguji kombinasi tempoh MA yang berbeza untuk mencari parameter yang lebih baik.

  2. Tambah stop loss. Tetapkan stop loss bergerak yang betul, peratusan stop loss dan lain-lain untuk mengawal kerugian perdagangan tunggal dengan berkesan.

  3. Menggabungkan penunjuk lain. Memperkenalkan isyarat dari MACD, ATR, KD dll untuk mendapatkan dimensi pengesahan yang lebih banyak dan meningkatkan kestabilan strategi.

  4. Mengoptimumkan mekanisme keluar. Penyelidikan pelbagai jenis kaedah keluar seperti keluar isyarat pembalikan, keluar mengambil keuntungan bergerak dan lain-lain.

Kesimpulan

Ringkasnya, strategi crossover purata bergerak ini adalah strategi trend yang sangat tipikal dan praktikal. Ia mempunyai kelebihan mudah difahami dan dilaksanakan, dan juga mempunyai ruang untuk penambahbaikan. Melalui kaedah seperti pengoptimuman parameter, pengoptimuman stop loss, kombinasi pelbagai penunjuk dan lain-lain, penambahbaikan berterusan boleh dibuat untuk menjadikannya menjadi sistem perdagangan yang lebih stabil dan praktikal.


// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                 Codigo Operacional                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start     = timestamp(2020, 00, 00, 00, 00)         // backtest start window
finish    = timestamp(2022, 01, 07, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"  

if time < start 
    strategy.close_all("Closing All")

// Take infos from inputs. 
inp_mmshort = input.int(defval = 9, title = "Media Curta"  )
inp_mminter = input.int(defval = 21, title = "Media Curta"  )

// Risk Manager, here define max and min 
inp_max = input.int(defval = 15, title = "Percentual Ganho"  )
inp_min = input.int(defval = 5, title = "Percental  Perda"  )

// Converting the input to % 
pmax = (inp_max / 100 )
pmin =  (inp_min / 100)

// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)


// Trend Logic
//Long Condition 

//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra. 
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter

// Creating the entry
if tendencia_alta 
    strategy.entry("Compra" , strategy.long , stop = low - 0.01  )
    stop_inst = low - 0.01 
if tendencia_baixa 
    strategy.entry("Venda" , strategy.short , stop= high + 0.01  )
    stop_inst = high + 0.01


// TrailingStop Creation

// Sell Position
if strategy.position_size < 0 
    gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close < gain_p 
        strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close > stop_p 
        strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    
    if  high > mm_short[1]
        strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
      

// Buy Position    
if strategy.position_size > 0
    gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close > gain_p 
        strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close < stop_p 
        strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if low < mm_short[1]
        strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
        



Lebih lanjut