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


Ngày tạo: 2024-01-29 16:57:01 sửa đổi lần cuối: 2024-01-29 16:57:01
sao chép: 0 Số nhấp chuột: 536
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược này dựa trên đường trung bình di chuyển, trong quá trình đi theo xu hướng, mở nhiều vị trí sau khi điều chỉnh ngắn hạn, thuộc loại chiến lược theo dõi xu hướng.

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

Chiến lược này sử dụng 3 đường EMA có chu kỳ khác nhau, đường EMA1 được sử dụng để xác định xu hướng ngắn hạn, nó ngắn hơn hai đường EMA khác; đường EMA2 và đường EMA3 được sử dụng để xác định xu hướng trung hạn dài hạn, trong đó đường EMA3 có chu kỳ dài nhất. Khi đường EMA1 ngắn hạn dừng lại, chỉ báo ở trong xu hướng tăng ngắn hạn, đường EMA2 trên đường EMA3 cho thấy đường dài hạn cũng đang trong xu hướng tăng, vì vậy đây là một thời điểm tốt hơn để làm.

Thiết lập đường dừng lỗ và đường dừng lỗ để khóa lỗ. Cụ thể, đường dừng lỗ di chuyển theo giá trị của ATR, đường dừng cũng được thiết lập theo giá trị của ATR.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược này là có thể nắm bắt hiệu quả xu hướng tăng trung bình và dài hạn, đồng thời xem xét các điều chỉnh ngắn hạn, điều này làm cho thời gian nắm giữ và lợi nhuận của nó rất đáng kể.

Ngoài ra, các hệ thống ngăn chặn và ngăn chặn cũng giúp kiểm soát rủi ro của nó.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là không thể xác định được điểm đảo ngược xu hướng, nếu xu hướng đường dài trung tâm đảo ngược và trong thời gian ngắn vẫn tăng, điều này sẽ tạo ra tín hiệu nhầm lẫn và nhập vào, do đó có thể gây thiệt hại lớn.

Ngoài ra, có thể có tổn thất thương mại không cần thiết trong quá trình thanh toán.

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

Có thể xem xét điều chỉnh các tham số chu kỳ của EMA theo đặc điểm của các giống giao dịch cụ thể để phù hợp hơn với chu kỳ đường dài trung bình của giống đó.

Kết thúc điều chỉnh ngắn hạn có thể được kết hợp với các chỉ số khác để tránh sai lệch nhập cảnh.

Bạn có thể cân nhắc điều chỉnh hệ số dừng tùy thuộc vào kích thước của giá trị ATR, giảm khoảng cách dừng thích hợp khi ATR lớn hơn.

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng đường dài trung bình hoạt động tốt. Bằng phương tiện di chuyển để xác định hướng xu hướng, tín hiệu quay trở lại để xác định thời gian nhập cảnh, thiết lập dừng lỗ để khóa lỗ. Nhưng cũng có một số rủi ro theo dõi mù quáng, cần kết hợp với phán đoán của nhà giao dịch về hành động để quyết định có nên tham gia hay không.

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