Walnut xu hướng theo chiến lược dựa trên khoảng cách từ 200 EMA

Tác giả:ChaoZhang, Ngày: 2024-03-01 10:50:03
Tags:

Đạt mục tiêu lợi nhuận vào cuối ngày

Khóa tắt:Đóng <= 200 EMA đạt mục tiêu lợi nhuận cuối ngày

Stop loss là 20% phí bảo hiểm tùy chọn.

II. Ưu điểm

Những lợi thế chính của chiến lược này là:

  1. Sử dụng trung bình động 200 ngày để xác định xu hướng trung bình dài hạn, tránh tiếng ồn thị trường ngắn hạn
  2. Xác định xu hướng theo cơ chế theo dõi xu hướng giá trung bình dài hạn
  3. Tối ưu hóa thời gian nhập cảnh khi hướng nến cuối cùng phù hợp với xu hướng chính
  4. Stop loss hợp lý và lấy lợi nhuận để tránh tổn thất lớn hơn

III. Rủi ro

Những rủi ro chính của chiến lược này là:

  1. Có thể xảy ra nhiều lỗ trong quá trình củng cố thị trường xung quanh đường trung bình động
  2. Sự đảo ngược xu hướng đột ngột kích hoạt dừng lỗ
  3. Chọn tham số không phù hợp như thời gian trung bình động dẫn đến đánh giá xu hướng không chính xác

Các khía cạnh sau đây có thể được tối ưu hóa để giảm các rủi ro trên:

  1. Điều chỉnh các thông số trung bình động hoặc thêm các chỉ số khác để xác định xu hướng chính
  2. Tối ưu hóa cơ chế dừng lỗ như điều chỉnh khoảng cách dừng dựa trên sự thay đổi giá
  3. Tối ưu hóa điều kiện nhập cảnh với nhiều chỉ số phán đoán hơn

IV. Định hướng tối ưu hóa

Các hướng tối ưu hóa chính cho chiến lược này là:

  1. Tối ưu hóa các thông số trung bình động, tác động thử nghiệm của các thông số thời gian khác nhau
  2. Thêm các chỉ số khác như Bollinger Bands, KDJ để xác định xu hướng chính
  3. Điều chỉnh chiến lược dừng lỗ để theo dõi giá năng động
  4. Tối ưu hóa các điều kiện nhập để tránh các mục nhập sai do sửa chữa ngắn hạn

V. Kết luận

Bài viết này phân tích chi tiết về logic, điểm mạnh, điểm yếu và hướng tối ưu hóa của chiến lược theo xu hướng dựa trên khoảng cách giữa giá và trung bình động 200 ngày. Chiến lược này đánh giá xu hướng trung dài hạn bằng cách theo dõi độ lệch giá so với trung bình động dài hạn. Các vị trí được thiết lập khi độ lệch vượt quá ngưỡng và đóng khi đạt được mục tiêu dừng lỗ hoặc lấy lợi nhuận. Chiến lược này có thể theo dõi xu hướng trung dài hạn tốt nhưng vẫn có một số không gian tối ưu hóa tham số. Những cải tiến trong tương lai có thể được thực hiện từ nhiều góc độ để làm cho chiến lược mạnh mẽ hơn trong các điều kiện thị trường khác nhau.


/*backtest
start: 2024-02-22 00:00:00
end: 2024-02-24 06:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Intraday Price Away from 200 EMA Strategy", overlay=true)

// Define inputs
emaPeriod = input(200, title="EMA Period")
thresholdPercent = input(0.75, title="Threshold Percent", minval=0)  // Define the threshold percentage

// Calculate 200 EMA
ema = ema(close, emaPeriod)

// Calculate distance from 200 EMA as a percentage
distance_percent = ((close - ema) / ema) * 100

// Track average entry price
var float avgEntryPrice = na

// Buy conditions
buy_condition = close < ema and abs(distance_percent) >= thresholdPercent and close[1] < close[2]

// Exit conditions for buy
exit_buy_condition = close >= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) <= close

// Sell conditions
sell_condition = close > ema and abs(distance_percent) >= thresholdPercent and close[1] > close[2]

// Exit conditions for sell
exit_sell_condition = close <= ema or time_close(timeframe.period) or (avgEntryPrice * 1.5) >= close

// Execute buy and sell orders only if there are no open trades
if strategy.opentrades == 0
    strategy.entry("Buy", strategy.long, when=buy_condition)
    strategy.entry("Sell", strategy.short, when=sell_condition)

// Update average entry price for buy condition
if buy_condition
    avgEntryPrice := close

// Update average entry price for sell condition
if sell_condition
    avgEntryPrice := close

// Close buy position if exit condition is met
strategy.close("Buy", when=exit_buy_condition)

// Close sell position if exit condition is met
strategy.close("Sell", when=exit_sell_condition)

// Plot 200 EMA
plot(ema, color=color.blue, linewidth=2)

// Plot buy and sell signals
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)


Thêm nữa