
Chiến lược này là một chiến lược vượt qua đường 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 sử dụng đường trung bình di chuyển đơn giản ngày 9 làm đường nhanh, đường trung bình di chuyển chỉ số ngày 21 làm đường chậm.
Chiến lược này dựa trên đường trung bình di chuyển của đường vàng và đường chết để đánh giá cơ hội mua và bán. Khi đường nhanh đi qua đường chậm từ phía dưới là đường vàng, biểu thị thị trường đi lên, như vậy một đột phá làm nhiều; khi đường nhanh đi qua đường dài từ phía trên xuống là đường chết, biểu thị thị trường đi xuống.
Để tránh sự phá vỡ giả tạo dẫn đến tổn thất ảo, chiến lược cũng giới thiệu xu hướng đánh giá đường 21 ngày. Chỉ khi giá vượt qua đường nhanh và đường 21 ngày, thì hành động giao dịch được thực hiện. Điều này có thể lọc hiệu quả nhiều phá vỡ giả.
Cụ thể, tín hiệu làm nhiều là: đường nhanh lên và vượt qua điểm cao hôm qua, đồng thời đường nhanh vượt qua đường 21 ngày, do đó, đa đầu được thiết lập; tín hiệu làm trống là: đường nhanh xuống và vượt qua điểm thấp hôm qua, đồng thời đường nhanh vượt qua đường 21 ngày, do đó, đầu trống được thiết lập.
Những lợi thế của chiến lược này bao gồm:
Chiến lược này có những rủi ro:
Những rủi ro trên có thể được tối ưu hóa và kiểm soát bằng cách:
Chiến lược này có thể được tối ưu hóa theo các hướng sau:
Tối ưu hóa tham số. Bạn có thể thử nghiệm các tham số MA theo một phương pháp có hệ thống hơn để tìm các tham số tốt hơn.
Tăng lỗ. Thiết lập các phương pháp dừng di chuyển hợp lý, dừng thu nhỏ, và các phương pháp khác để kiểm soát hiệu quả lỗ đơn.
Kết hợp với các chỉ số khác. Ghi dấu hiệu của các chỉ số khác như MACD, ATR, KD, để có được sự xác nhận nhiều chiều hơn, tăng sự ổn định của chiến lược.
Tối ưu hóa cơ chế ra sân. Nghiên cứu các loại chiến lược ra sân khác nhau, chẳng hạn như phương pháp ra sân bằng cách đảo ngược tín hiệu ra sân, di chuyển ra khỏi sân.
Chiến lược vượt qua đường trung bình di chuyển nói chung là một chiến lược theo dõi xu hướng rất điển hình và thực tế. Nó có những ưu điểm dễ hiểu và thực hiện, đồng thời có một số không gian cải tiến. Bằng các phương pháp tối ưu hóa tham số, tối ưu hóa dừng lỗ, kết hợp nhiều chỉ số, chiến lược có thể được cải thiện liên tục để làm cho nó trở 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) )