Tài nguyên đang được tải lên... tải...

Xu hướng theo dõi với bộ lọc đột phá và tần số (chỉ dài)

Tác giả:ChaoZhang, Ngày: 2024-05-28 14:00:24
Tags:EMAAO

img

Tổng quan

Chiến lược này là một chiến lược theo xu hướng dựa trên việc lọc tần suất và tần suất, chỉ có các vị trí dài. Ý tưởng chính của chiến lược là sử dụng chỉ số EMA để xác định hướng xu hướng hiện tại, tạo ra một tín hiệu dài khi giá vượt qua mức giá cao nhất trong một phạm vi nhất định và sử dụng bộ lọc tần suất để kiểm soát tần suất giao dịch để tránh mở các vị trí quá thường xuyên. Chiến lược cũng thiết lập điểm dừng lỗ để kiểm soát rủi ro và đóng các vị trí khi xu hướng kết thúc.

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

  1. Tính toán chỉ số EMA để xác định hướng xu hướng hiện tại Khi giá đóng trên EMA, nó được coi là xu hướng tăng.
  2. Khi giá đóng phá vỡ giá cao nhất trong khoảng thời gian nhìn lại ngắn nhất hoặc dài nhất và xu hướng hiện tại tăng, một tín hiệu dài được tạo ra.
  3. Thiết lập bộ lọc tần số để kiểm soát thời gian khoảng thời gian tối thiểu giữa các vị trí mở liên tiếp để tránh tần suất giao dịch quá cao.
  4. Thiết lập điểm dừng lỗ Khi giá giảm xuống dưới mức dừng lỗ, đóng vị trí để kiểm soát rủi ro.
  5. Định nghĩa tín hiệu kết thúc xu hướng. Khi giá đóng giảm xuống dưới đường EMA, xu hướng được coi là đã kết thúc. Nếu một vị trí dài được giữ tại thời điểm này, đóng vị trí.

Ưu điểm chiến lược

  1. Theo dõi xu hướng: Bằng cách sử dụng chỉ số EMA để xác định hướng xu hướng và giao dịch phù hợp với xu hướng, nó giúp cải thiện lợi nhuận chiến lược.
  2. Xác nhận đột phá: Sử dụng đột phá giá như là tín hiệu nhập cảnh cho phép nhập vào kịp thời vào đầu xu hướng, nắm bắt nhiều tiềm năng lợi nhuận hơn.
  3. Kiểm soát tần số: Thiết lập bộ lọc tần số để kiểm soát khoảng thời gian giữa các vị trí mở liên tiếp tránh giao dịch quá mức và giảm chi phí và rủi ro giao dịch.
  4. Bảo vệ dừng lỗ: Thiết lập điểm dừng lỗ để ngay lập tức dừng lỗ khi giá di chuyển theo hướng ngược lại với một quy mô nhất định có hiệu quả kiểm soát rủi ro giảm.
  5. Khóa vị trí năng động: Khóa vị trí năng động dựa trên tín hiệu kết thúc xu hướng cho phép khóa kịp thời lợi nhuận hiện có và tránh thua lỗ do đảo ngược xu hướng.

Rủi ro chiến lược

  1. Tính nhạy cảm của các tham số: Hiệu suất của chiến lược tương đối nhạy cảm với việc lựa chọn tham số, và các cài đặt tham số khác nhau có thể dẫn đến sự khác biệt đáng kể trong hiệu suất chiến lược.
  2. Thất bại đột phá: Sự đột phá giá không đảm bảo rằng xu hướng sẽ chắc chắn tiếp tục, và có thể có trường hợp thất bại đột phá, dẫn đến tổn thất liên tiếp cho chiến lược.
  3. Nhận dạng xu hướng: Chiến lược dựa trên chỉ số EMA để đánh giá xu hướng, nhưng chỉ số EMA có thể gặp sự chậm trễ hoặc đánh giá sai, ảnh hưởng đến độ chính xác của chiến lược.
  4. Giao dịch thường xuyên: Mặc dù chiến lược giới thiệu bộ lọc tần số, việc mở và đóng các vị trí thường xuyên vẫn có thể xảy ra khi biến động thị trường cao, làm tăng chi phí giao dịch.
  5. Rủi ro dừng lỗ: Việc thiết lập điểm dừng lỗ có thể không hoàn toàn tránh được mức rút tiền tối đa của chiến lược và tổn thất lớn vẫn có thể xảy ra trong điều kiện thị trường cực đoan.

Hướng dẫn tối ưu hóa chiến lược

  1. Tối ưu hóa tham số: Tối ưu hóa các tham số chính của chiến lược, chẳng hạn như độ dài EMA, độ dài thời gian xem lại, tỷ lệ stoploss, v.v., để tìm sự kết hợp tham số tối ưu và cải thiện sự ổn định và lợi nhuận của chiến lược.
  2. Bộ lọc tín hiệu: Sau khi tín hiệu đột phá được tạo ra, các chỉ số hoặc điều kiện kỹ thuật khác có thể được đưa vào để xác nhận tín hiệu lần thứ hai, cải thiện chất lượng tín hiệu và giảm các đánh giá sai và tín hiệu sai.
  3. Phán quyết xu hướng: Hãy thử sử dụng các chỉ số đánh giá xu hướng khác như MACD, DMI, v.v., hoặc kết hợp nhiều chỉ số để cùng đánh giá xu hướng và cải thiện độ chính xác nhận dạng xu hướng.
  4. Động thái dừng lỗ: Điều chỉnh động điểm dừng lỗ theo điều kiện biến động thị trường, chẳng hạn như sử dụng chỉ số ATR để tính giá dừng lỗ động hoặc giới thiệu chiến lược dừng lỗ kéo dài để kiểm soát tốt hơn rủi ro.
  5. Quản lý vị trí: Tối ưu hóa chiến lược quản lý vị trí, điều chỉnh động kích thước vị trí theo biến động thị trường và điều kiện vốn tài khoản, kiểm soát rủi ro của một giao dịch duy nhất và cải thiện hiệu quả sử dụng vốn.

Tóm lại

Chiến lược này là một chiến lược theo xu hướng dựa trên việc phá vỡ và lọc tần số. Nó sử dụng chỉ số EMA để xác định hướng xu hướng, sử dụng đột phá giá như tín hiệu đầu vào, giới thiệu bộ lọc tần số để kiểm soát tần số giao dịch và thiết lập điểm dừng lỗ để kiểm soát rủi ro. Những lợi thế của chiến lược nằm trong việc theo xu hướng, xác nhận đột phá, kiểm soát tần số, bảo vệ dừng lỗ và đóng vị trí động, nhưng nó cũng có những rủi ro tiềm ẩn như độ nhạy của tham số, thất bại đột phá, nhận dạng xu hướng, giao dịch thường xuyên và rủi ro dừng lỗ. Để tối ưu hóa thêm chiến lược, chúng ta có thể bắt đầu từ các khía cạnh như tối ưu hóa tham số, lọc tín hiệu, phán đoán xu hướng, dừng lỗ động và quản lý vị trí để cải thiện sự ổn định và lợi nhuận của chiến lược.


/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following with Breakout and Frequency Filter (Long Only)", overlay=true)

// 输入参数
emaLength = input.int(50, title="EMA长度")
lookbackPeriodMin = input.int(80, title="最短回溯期")
lookbackPeriodMax = input.int(120, title="最长回溯期")
stopLossPct = input.float(2, title="止损百分比") / 100  // 止损百分比
minHoldBars = input.int(10, title="最小持仓K线数量")  // 最小持仓K线数量

// 计算EMA
ema = ta.ema(close, emaLength)

// 计算最高价和最低价
highestHigh = ta.highest(high, lookbackPeriodMax)
lowestLow = ta.lowest(low, lookbackPeriodMax)

// 定义趋势方向
isBullish = close > ema

// 定义突破信号
breakoutCondition = (ta.crossover(close, highestHigh[lookbackPeriodMin]) or ta.crossover(close, highestHigh[lookbackPeriodMax])) and isBullish

// 计算止损点
stopLossLevelLong = close * (1 - stopLossPct)

// 绘制EMA
plot(ema, title="EMA", color=color.blue)

// 记录上次开仓时间
var float lastEntryTime = na

// 策略执行并标注信号
if (breakoutCondition and (na(lastEntryTime) or (time - lastEntryTime) > minHoldBars * timeframe.multiplier))
    strategy.entry("做多", strategy.long)
    label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white)
    strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)
    lastEntryTime := time

// 定义趋势结束信号
exitCondition = close < ema

if (exitCondition and (strategy.position_size > 0) and (time - lastEntryTime) > minHoldBars * timeframe.multiplier)
    strategy.close("做多")
    label.new(bar_index, low, text="卖出", style=label.style_label_down, color=color.red, textcolor=color.white)

Có liên quan

Thêm nữa