Chiến lược theo dõi xu hướng Triple EMA


Ngày tạo: 2023-12-20 15:00:44 sửa đổi lần cuối: 2023-12-20 15:00:44
sao chép: 0 Số nhấp chuột: 800
1
tập trung vào
1621
Người theo dõi

Chiến lược theo dõi xu hướng Triple EMA

Tổng quan

Chiến lược theo dõi xu hướng EMA ba lần là một chiến lược rất phù hợp để theo dõi xu hướng thị trường. Nó sử dụng ba chu kỳ EMA khác nhau làm tín hiệu đặt vị trí, thiết lập vị trí trên đầu hoặc trống khi có sự xác nhận xu hướng đầy đủ.

Ưu điểm của chiến lược này là nó có thể làm giảm tín hiệu sai và đảm bảo rằng xu hướng sẽ được đưa vào khi nó đủ mạnh. Đồng thời, nó có hệ thống dừng lỗ thích ứng, có thể theo dõi dừng lỗ theo biến động của thị trường, để đạt được hiệu quả quản lý rủi ro tốt hơn.

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

Lập hợp lý

Chiến lược này sử dụng ba EMA của chu kỳ 7, 14 và 21 như một chỉ số tín hiệu đặt hàng. Logic cụ thể là, khi giá đồng thời vượt qua ba EMA, hãy làm nhiều hơn; khi giá đồng thời vượt qua ba EMA, hãy làm trống.

Thiết kế như vậy có thể làm giảm tín hiệu giả, đảm bảo xu hướng đủ rõ ràng và sau đó tham gia. Trong khi đó, ba chu kỳ EMA được thiết lập đúng cách, có thể bắt kịp sự xuất hiện của xu hướng thị trường.

Phương pháp dừng lỗ

Chiến lược này sử dụng một hệ thống dừng lỗ thích ứng dựa trên ATR và rút lui tối đa. Nó sẽ tính toán tỷ lệ biến động giá trong thời gian thực và thiết lập đường dừng lỗ theo đó.

Trong quá trình tăng giá, đường dừng sẽ di chuyển lên với mức cao mới, có hiệu quả theo dõi tốt hơn. Khi giá quay trở lại mức thấp của vùng đệm, đường dừng sẽ được kích hoạt, dừng thanh toán. Điều này có thể kiểm soát rủi ro dừng tùy thuộc vào tình hình thị trường cụ thể.

Cách kiếm tiền

Chiến lược này sử dụng một phương thức dừng tỷ lệ cố định. Sau khi mở vị trí, sẽ thiết lập một đường dừng tỷ lệ phần trăm cao hơn giá vào. Khi giá chạm đến đường dừng, sẽ chủ động thanh toán vị trí.

Lợi ích của stop-loss tỷ lệ cố định này là bạn có thể đặt mục tiêu lợi nhuận, sau khi đạt được, bạn có thể thoát ra. Đồng thời, bạn cũng tránh được rủi ro của giá sẽ giảm trở lại.

Phân tích lợi thế

  • Có thể giảm tín hiệu sai lệch, đảm bảo xu hướng giá mạnh hơn sau khi xây dựng kho
  • Sử dụng EMA Cycle Overlay để nắm bắt xu hướng thị trường nhanh chóng
  • Hệ thống tự điều chỉnh, có thể kiểm soát rủi ro theo tỷ lệ dao động
  • Tỷ lệ dừng cố định, rút ra sau khi đạt được mục tiêu lợi nhuận
  • Phương pháp dừng lỗ dựa trên ATR và tính toán rút lui tối đa, có thể được tối ưu hóa theo tình hình thị trường
  • Dễ dàng điều chỉnh phong cách chính sách bằng cách thay đổi tham số

Phân tích rủi ro

  • Trong các trường hợp chấn động, EMA có thể tạo ra sự giao thoa thường xuyên, dễ bị trói buộc
  • Cụm cố định không thể điều chỉnh theo tình hình thị trường, có thể bỏ lỡ thêm lợi nhuận hoặc tăng lỗ
  • Sau khi ngừng theo dõi lỗ, không thể theo dõi điểm cao hơn một lần nữa, giá giảm một lần nữa có thể làm tăng tổn thất
  • Trong trường hợp đột phá đơn phương, tỷ lệ dừng cố định có thể quá bảo thủ và không thu được đủ lợi nhuận

Có thể kết hợp các chỉ số đánh giá xu hướng để tránh đặt cược mù quáng trong tình huống chấn động; hoặc có thể sử dụng các phương pháp như dừng di động hoặc tỷ lệ lỗ hổng để làm cho phương pháp dừng lại linh hoạt hơn. Nói chung, vẫn cần phán đoán nhân tạo để hỗ trợ sử dụng chiến lược.

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

Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:

  1. Sử dụng nhiều chỉ số hơn để đánh giá thời gian nhập cảnh, như MACD, KD, v.v., để tránh bị mắc kẹt trong tình huống chấn động.

  2. Cố gắng di chuyển các nút dừng, hoặc sử dụng các nút dừng khác để làm cho các nút dừng linh hoạt hơn.

  3. Thêm theo dõi xuống trong phương thức dừng lỗ, có thể theo dõi lại điểm thấp hơn khi giá giảm một lần nữa, do đó kiểm soát rủi ro.

  4. Điều chỉnh các tham số chu kỳ EMA theo đặc điểm của các giống khác nhau, tối ưu hóa phán đoán về xu hướng.

  5. Thêm mô-đun quản lý vị trí, có thể điều chỉnh vị trí đơn theo tỷ lệ sử dụng tiền.

Tóm tắt

Chiến lược theo dõi xu hướng EMA ba là một chiến lược theo dõi xu hướng rất thực tế. Nó có khả năng phán đoán xu hướng mạnh mẽ, đồng thời có cơ chế dừng và mất mát tự động, có thể tự động quản lý đơn đặt hàng. Từ góc độ tối ưu hóa, hệ thống dừng và mất mát có thể được cải tiến hơn nữa, cho phép nó được điều chỉnh theo tình hình thị trường thời gian thực.

Mã nguồn chiến lược
/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))

Take_profit= ((input (4))/100)

longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)

go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)



closeLong = close > longTakeProfit or crossunder(close, vStop)



//Entry 
strategy.entry(id="long", long = true, when = go_long and window())



//Exit
strategy.close("long", when = closeLong and window())

plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)