Chiến lược này dựa trên đường trung bình động. Nó đi lâu sau khi một sự điều chỉnh ngắn hạn trong xu hướng tăng. Nó thuộc về chiến lược theo xu hướng.
Chiến lược này sử dụng 3 đường EMA với các khoảng thời gian khác nhau. Dòng EMA1 với khoảng thời gian ngắn hơn được sử dụng để đánh giá xu hướng ngắn hạn. Dòng EMA2 và EMA3 với khoảng thời gian dài hơn được sử dụng để xác định xu hướng trung dài hạn, trong đó EMA3 có khoảng thời gian dài nhất. Khi đường EMA1 ngắn hạn tăng lên, nó chỉ ra rằng nó đang có xu hướng tăng ngắn hạn. Nếu EMA2 trên EMA3, điều đó có nghĩa là trung dài hạn cũng đang có xu hướng tăng, vì vậy đây là thời điểm tốt cho bước vào dài hạn. Cụ thể, tín hiệu giao dịch được tạo ra khi giá vượt qua đường EMA1. Để xác minh thêm tính ổn định của xu hướng, nó đòi hỏi EMA2 và EMA3 đang hướng lên và thanh cuối cùng cũng đang tăng trong thanh lọc tín hiệu, giúp loại bỏ các tín hiệu sai từ các điều chỉnh ngắn hạn.
Đường dừng lỗ và đường lấy lợi nhuận được thiết lập để khóa lợi nhuận và lỗ. Cụ thể, đường dừng lỗ di chuyển theo giá trị ATR, và đường lấy lợi nhuận cũng di chuyển dựa trên giá trị ATR.
Ưu điểm lớn nhất của chiến lược này là nó có thể nắm bắt hiệu quả xu hướng tăng trung dài hạn, đồng thời cũng tính đến sự điều chỉnh ngắn hạn, làm cho thời gian giữ và không gian lợi nhuận của nó đáng kể.
Ngoài ra, việc thiết lập dừng lỗ và lấy lợi nhuận cũng làm cho rủi ro của nó có thể kiểm soát được.
Rủi ro lớn nhất của chiến lược này là nó không thể xác định điểm đảo ngược xu hướng. Nếu xu hướng trung dài hạn đảo ngược trong khi ngắn hạn vẫn đang tăng, nó sẽ tạo ra một tín hiệu dài sai để vào thị trường, có thể gây ra tổn thất lớn hơn.
Ngoài ra, lỗ giao dịch không cần thiết cũng có thể xảy ra trên các thị trường giới hạn phạm vi.
Xem xét điều chỉnh các tham số chu kỳ của EMA dựa trên các đặc điểm của các giống giao dịch cụ thể để phù hợp hơn với chu kỳ trung dài của giống.
Kết hợp với các chỉ số khác để xác định kết thúc điều chỉnh ngắn hạn có thể tránh nhập sai.
Xem xét điều chỉnh hệ số stop loss dựa trên giá trị ATR, giảm bớt khoảng cách stop loss khi ATR lớn.
Nói chung, chiến lược này là một chiến lược theo xu hướng trung dài hạn hoạt động tốt. Nó xác định hướng xu hướng thông qua đường trung bình động, thời gian vào thông qua tín hiệu pullback, và khóa lợi nhuận và lỗ thông qua thiết lập dừng lỗ và lấy lợi nhuận. Nhưng cũng có một số rủi ro theo xu hướng mù. Các nhà giao dịch cần đưa ra phán đoán của riêng họ về thị trường để quyết định có nên vào hay không.
/*backtest start: 2024-01-21 00:00:00 end: 2024-01-28 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true) // Input price = input(close) MA1_Length = input.int(50, step=1, title='EMA 1 Length') MA2_Length = input.int(80, step=1, title='EMA 2 Length') MA3_Length = input.int(200, step=1, title='EMA 3 Length') numberOfCandles = input(1) slATRFactor = input(3.5) tpATRFactor = input(3.5) ATRLength = input(14) // switch1=input(true, title="Show Bar Color?") // switch2=input(true, title="Show Moving Averages?") // Calculation MA1 = ta.ema(price, MA1_Length) MA2 = ta.ema(price, MA2_Length) MA3 = ta.ema(price, MA3_Length) prev_price = close[numberOfCandles] // Strategy allPositive = true for i = 0 to numberOfCandles - 1 by 1 if close[i] < close[i + 1] or close[i] < MA1 allPositive := false break long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive // short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 ) if long strategy.entry('Long', strategy.long, comment='Long') bought = strategy.position_size[0] > strategy.position_size[1] atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0) // Stop loss and take profit slPrice = strategy.position_avg_price - slATRFactor * atrAtLong tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0)) if price >= tpPrice and price < MA1 strategy.close('Long') if price < strategy.position_avg_price strategy.exit('Stop Loss', 'Long', stop=slPrice) // Strategy Alert alertcondition(long, title='Long Alert', message='Go Long!') // alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!') // MA trend bar color // up = change(MA2)>0 and change(MA3)>0 // dn = change(MA2)<0 and change(MA3)<0 // bar_color = up?green:dn?red:blue // barcolor(switch1?bar_color:na) // MA trend output color change_1 = ta.change(MA2) MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue change_2 = ta.change(MA3) MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue // MA output // EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color) // EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color) // fill(EMA2, EMA3, color=silver, transp=50) color_1 = MA2 > MA3 ? color.green : color.red EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1) // EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue) // EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)