Ini adalah strategi crossover rata-rata bergerak sederhana dan klasik yang diciptakan oleh pedagang terkenal Larry Williams. Strategi ini menggunakan rata-rata bergerak sederhana 9 hari sebagai garis cepat dan rata-rata bergerak eksponensial 21 hari sebagai garis lambat.
Strategi ini didasarkan pada golden crossover dan death crossover rata-rata bergerak untuk menentukan peluang panjang dan pendek. Ketika garis cepat melanggar di atas garis lambat dari bawah, itu adalah crossover emas, menunjukkan perubahan ke tren bullish. Breakout semacam itu digunakan untuk pergi panjang. Ketika garis cepat melanggar di bawah garis lambat dari atas, itu adalah crossover kematian, menunjukkan perubahan ke tren bearish. Breakout semacam itu digunakan untuk pergi pendek.
Untuk menghindari false breakout yang menyebabkan kerugian virtual, garis 21 hari juga digunakan untuk menentukan tren utama. Hanya ketika garis cepat pecah dan harga juga melanggar garis 21 hari, tindakan perdagangan akan diambil. Ini dapat secara efektif menyaring banyak false breakout.
Secara khusus, sinyal panjang dipicu ketika: garis cepat melanggar di atas level tertinggi kemarin dan melanggar di atas garis 21 hari. sinyal pendek dipicu ketika: garis cepat melanggar di bawah level rendah kemarin dan melanggar di bawah garis 21 hari.
Keuntungan utama dari strategi ini adalah:
Risiko utama dari strategi ini adalah:
Untuk mengatasi risiko ini, optimasi dapat dilakukan dalam aspek berikut:
Arah optimasi utama untuk strategi ini meliputi:
Optimasi parameter: Metode yang lebih sistematis dapat digunakan untuk menguji kombinasi periode MA yang berbeda untuk menemukan parameter yang lebih baik.
Tambahkan stop loss. Atur stop loss bergerak yang tepat, stop loss persentase dll untuk secara efektif mengontrol kerugian perdagangan tunggal.
Menggabungkan indikator lain. Memperkenalkan sinyal dari MACD, ATR, KD dll untuk mendapatkan lebih banyak dimensi konfirmasi dan meningkatkan stabilitas strategi.
Mengoptimalkan mekanisme keluar. meneliti berbagai jenis metode keluar seperti keluar sinyal pembalikan, bergerak keluar mengambil keuntungan dll
Singkatnya, strategi crossover rata-rata bergerak ini adalah strategi tren yang sangat tipikal dan praktis. Ini memiliki keuntungan mudah dipahami dan diimplementasikan, dan juga memiliki ruang untuk perbaikan. Melalui metode seperti optimasi parameter, optimasi stop loss, kombinasi multi-indikator dll, perbaikan berkelanjutan dapat dilakukan untuk mengubahnya menjadi sistem perdagangan yang lebih stabil dan praktis.
// @_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) )