Fisher Turnaround EMA Multi-Take Profit và chiến lược đa điểm dừng

Tác giả:ChaoZhang, Ngày: 2024-01-05 15:40:28
Tags:

img

Tổng quan

Fisher Turnaround EMA Multi-Take Profit and Multi-Stop Strategy kết hợp chỉ số EMA và tín hiệu Fisher Turn tùy chỉnh để thực hiện các giao dịch theo dõi xu hướng. Nó tạo ra tín hiệu mua khi EMA ngắn hạn vượt qua EMA dài hạn và tín hiệu Fisher Turn lớn hơn 0. Chiến lược đặt ra hai mức lợi nhuận và một mức dừng lỗ động để khóa lợi nhuận và kiểm soát rủi ro. Lợi nhuận đầu tiên là 2xATR, 3xATR thứ hai, và lỗ dừng là 1xATR. Sau khi lấy lợi nhuận đầu tiên được kích hoạt, lỗ dừng sẽ chuyển sang giá nhập cảnh.

Chiến lược logic

Chiến lược chủ yếu dựa trên hai chỉ số kỹ thuật:

  1. EMA: Chỉ số trung bình chuyển động. Chiến lược sử dụng 12 và 26 EMA thời gian.
  2. Tín hiệu quay Fisher tùy chỉnh. Tín hiệu này được tính dựa trên sự khác biệt giữa mức cao và thấp trong một khoảng thời gian nhất định.

Các tín hiệu mua được tạo ra khi EMA thời gian ngắn vượt qua EMA thời gian dài. Ngoài ra, đường tín hiệu Fisher Turn cũng phải lớn hơn 0, cho thấy xu hướng tăng hiện tại.

Các quy tắc lấy lợi nhuận và dừng lỗ là như sau:

  1. Đầu tiên lấy lợi nhuận ở 2xATR
  2. Lợi nhuận thứ hai tại 3xATR
  3. Dừng lỗ ở 1xATR
  4. Sau khi lấy lợi nhuận đầu tiên được kích hoạt, stop loss sẽ di chuyển đến giá nhập cảnh.

Chiến lược có thể được tối ưu hóa bằng cách điều chỉnh các tham số như thời gian EMA, thời gian tín hiệu Fisher Turn và thời gian ATR.

Ưu điểm

Bằng cách kết hợp các chỉ số theo dõi xu hướng và các chỉ số quản lý rủi ro, chiến lược này có những lợi thế sau:

  1. Sử dụng EMA để nắm bắt hướng xu hướng
  2. Bộ lọc tín hiệu quay Fisher tùy chỉnh
  3. Nhiều mức lợi nhuận để khóa lợi nhuận
  4. Đặt lỗ dừng động để kiểm soát rủi ro
  5. Các thông số điều chỉnh thích nghi với môi trường thị trường khác nhau

Rủi ro

Ngoài ra còn có một số rủi ro cho chiến lược này:

  1. Các yếu tố kích hoạt việc đảo ngược xu hướng dừng lỗ
  2. Cài đặt tham số không chính xác gây ra các bước nhập quá mạnh hoặc thoát sớm
  3. Cấu hiệu quay Fisher tùy chỉnh có thể thất bại trong một số môi trường thị trường

Những rủi ro này có thể được giảm thiểu thông qua tối ưu hóa tham số, kết hợp các chỉ số khác, can thiệp bằng tay v.v.

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

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

  1. Tối ưu hóa các thông số thời gian EMA để thích nghi với nhiều môi trường thị trường hơn
  2. Thêm các chỉ số xu hướng khác để xác minh tín hiệu mua
  3. Kết hợp các bộ lọc thị trường tổng thể để tránh môi trường không chắc chắn
  4. Tối ưu hóa các tham số tín hiệu quay Fisher hoặc thử các chỉ số tùy chỉnh khác
  5. Thêm nhiều mức lợi nhuận để khóa trong lợi nhuận nhiều hơn
  6. Tích hợp chức năng dừng mất mát theo dõi tự động

Bằng cách thử nghiệm các thiết lập tham số và kết hợp các chỉ số khác nhau, hiệu suất chiến lược có thể được cải thiện liên tục.

Kết luận

Fisher Turnaround EMA Multi-Take Profit and Multi-Stop Strategy tích hợp các điểm mạnh của việc theo dõi xu hướng và quản lý rủi ro. Với tiềm năng lớn về xác minh và tối ưu hóa dài hạn, đây là một chiến lược đầy hứa hẹn.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Eliebf13
//@version=4
strategy("GDAX EMA & Blackflag FTS Strategy with Multiple Take Profits and Dynamic Stop Loss", overlay=true)

// Input parameters for Blackflag FTS
fts_length = input(14, title="Blackflag FTS Length")
atr_length = input(14, title="ATR Length")

// GDAX EMA calculation
short = ema(close, 12)
long = ema(close, 26)

// Calculate Blackflag FTS signal line manually
up = 0.0
down = 0.0
for i = 0 to fts_length - 1
    up := up + (high[i] - low[i])
    down := down + (high[i] - low[i])

fts_value = down == 0 ? 100 : 100 - (100 / (1 + (up / down)))

// Buy condition: GDAX EMA crossover and Blackflag FTS signal above zero
buy_condition = crossover(short, long) and fts_value > 0

// ATR calculation
atr_value = atr(atr_length)

// Calculate Stop Loss and Take Profit levels
stop_loss_level = close - atr_value
take_profit_level1 = close + 2 * atr_value
take_profit_level2 = close + 3 * atr_value

// Sell condition: GDAX EMA crossunder or Blackflag FTS signal below zero
sell_condition = crossunder(short, long) or fts_value < 0

// Strategy orders with Multiple Take Profits and Dynamic Stop Loss
strategy.entry("Buy", strategy.long, when = buy_condition)

// Calculate position size for 50% closure at each take profit level
position_size = strategy.position_size
target_position_size1 = position_size * 0.5
target_position_size2 = position_size * 1

strategy.exit("Take Profit 1", from_entry="Buy", loss=close, profit=take_profit_level1, qty=target_position_size1)
strategy.exit("Take Profit 2/Move Stop Loss", from_entry="Buy", loss=close, profit=take_profit_level2, qty=target_position_size2)

// Plot GDAX EMA lines
plot(short, color=#6f92ce, linewidth=2, title="Ema 12")
plot(long, color=#e08937, linewidth=2, title="Ema 26")

// Plot Blackflag FTS signal
plot(fts_value, color=color.blue, title="Blackflag FTS Signal")

// Plot buy and sell signals on the chart
plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")

Thêm nữa