Chiến lược tiếp tục xu hướng mạnh mẽ

Tác giả:ChaoZhang, Ngày: 2024-01-29 16:57:01
Tags:

img

Tổng quan

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.

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

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.

Phân tích lợi thế

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

Phân tích rủi ro

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.

Hướng dẫn tối ưu hóa

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.

Kết luậ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)



Thêm nữa