Đây là một chiến lược chéo trung bình di chuyển đơn giản và cổ điển được tạo ra bởi nhà giao dịch nổi tiếng Larry Williams. Chiến lược này sử dụng trung bình di chuyển đơn giản 9 ngày như đường nhanh và trung bình di chuyển theo hàm số 21 ngày như đường chậm. Nó đi dài khi giá vượt qua đường 9 ngày, và đi ngắn khi giá vượt qua đường 9 ngày. Để lọc các đột phá sai, đường 21 ngày cũng được sử dụng để xác nhận xu hướng.
Chiến lược này dựa trên đường chéo vàng và đường chéo chết của các đường trung bình động để xác định cơ hội dài và ngắn. Khi đường nhanh vượt qua đường chậm từ dưới, đó là đường chéo vàng, cho thấy sự thay đổi sang xu hướng tăng. Sự đột phá như vậy được sử dụng để đi dài. Khi đường nhanh vượt qua đường chậm từ trên, đó là đường chéo chết, cho thấy sự thay đổi sang xu hướng giảm. Sự đột phá như vậy được sử dụng để đi ngắn.
Để tránh các đợt phá vỡ sai dẫn đến tổn thất ảo, đường 21 ngày cũng được sử dụng để xác định xu hướng chính. Chỉ khi đường nhanh phá vỡ và giá cũng phá vỡ đường 21 ngày, các hành động giao dịch sẽ được thực hiện. Điều này có thể lọc hiệu quả nhiều đợt phá vỡ sai.
Cụ thể, tín hiệu dài được kích hoạt khi: đường nhanh vượt qua mức cao hôm qua và vượt qua đường 21 ngày.
Những lợi thế chính của chiến lược này là:
Những rủi ro chính của chiến lược này là:
Để đối phó với những rủi ro này, tối ưu hóa có thể được thực hiện trong các khía cạnh sau:
Các hướng tối ưu hóa chính cho chiến lược này bao gồm:
Tối ưu hóa tham số. Các phương pháp có hệ thống hơn có thể được sử dụng để kiểm tra các kết hợp thời gian MA khác nhau để tìm các tham số tốt hơn.
Thêm stop loss. Đặt đúng stop loss di chuyển, stop loss phần trăm vv để kiểm soát hiệu quả lỗ giao dịch duy nhất.
Kết hợp các chỉ số khác. giới thiệu các tín hiệu từ MACD, ATR, KD vv để có được nhiều chiều kích xác nhận hơn và cải thiện tính ổn định của chiến lược.
Tối ưu hóa cơ chế thoát. Nghiên cứu các loại phương pháp thoát khác nhau như thoát tín hiệu đảo ngược, di chuyển thoát lợi nhuận vv
Tóm lại, chiến lược chéo trung bình động này là một chiến lược theo xu hướng rất điển hình và thực tế. Nó có lợi thế dễ hiểu và thực hiện, và cũng có chỗ để cải thiện. Thông qua các phương pháp như tối ưu hóa tham số, tối ưu hóa dừng lỗ, kết hợp đa chỉ số vv, có thể cải thiện liên tục để biến nó thành một hệ thống giao dịch ổn định và thực tế hơn.
// @_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) )