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.
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.
Kelebihan utama strategi ini ialah:
Risiko utama strategi ini ialah:
Untuk menangani risiko ini, pengoptimuman boleh dibuat dalam aspek berikut:
Arah pengoptimuman utama untuk strategi ini termasuk:
Pengoptimuman parameter. Kaedah yang lebih sistematik boleh digunakan untuk menguji kombinasi tempoh MA yang berbeza untuk mencari parameter yang lebih baik.
Tambah stop loss. Tetapkan stop loss bergerak yang betul, peratusan stop loss dan lain-lain untuk mengawal kerugian perdagangan tunggal dengan berkesan.
Menggabungkan penunjuk lain. Memperkenalkan isyarat dari MACD, ATR, KD dll untuk mendapatkan dimensi pengesahan yang lebih banyak dan meningkatkan kestabilan strategi.
Mengoptimumkan mekanisme keluar. Penyelidikan pelbagai jenis kaedah keluar seperti keluar isyarat pembalikan, keluar mengambil keuntungan bergerak dan lain-lain.
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) )