Chiến lược của Larry Williams để vượt qua đường trung bình động


Ngày tạo: 2023-12-26 15:03:16 sửa đổi lần cuối: 2023-12-26 15:03:16
sao chép: 1 Số nhấp chuột: 1523
1
tập trung vào
1623
Người theo dõi

Chiến lược của Larry Williams để vượt qua đường trung bình động

Tổng quan

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.

Nguyên tắc chiến lược

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.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Ý tưởng chiến lược đơn giản, dễ hiểu và dễ thực hiện.
  2. Công nghệ trung bình di động đã được phát triển và sử dụng rộng rãi.
  3. 21 ngày giới thiệu một bộ lọc hiệu quả để phá vỡ giả mạo.
  4. Các cầu thủ đã sử dụng các điểm cực đoan vào ngày hôm qua để tránh bị bẫy.
  5. Các tham số chiến lược khá ổn định và không dễ dàng phù hợp.

Phân tích rủi ro

Chiến lược này có những rủi ro:

  1. Trong một số trường hợp, các trung bình di chuyển có thể bị tụt hậu và có thể bỏ lỡ điểm xuất sắc nhất.
  2. Trong một cuộc khủng hoảng song song, những tổn thất nhỏ thường xảy ra.
  3. Không có khả năng đối phó hiệu quả với những thay đổi lớn trong tình hình do sự kiện bất ngờ.

Những rủi ro trên có thể được tối ưu hóa và kiểm soát bằng cách:

  1. Các chỉ số MACD được đưa vào để giúp đưa ra các phán đoán và nhận được nhiều tín hiệu thời gian thực hơn.
  2. Tăng các tham số chu kỳ trung bình di chuyển, giảm tần suất giao dịch.
  3. Tăng chiến lược dừng lỗ, kiểm soát tổn thất đơn lẻ

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các hướng sau:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Tóm tắt

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.

Mã nguồn chiến lược
// @_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)  )