Shift Exit Strategy v2.0

Tác giả:ChaoZhang, Ngày: 2023-09-21 15:21:40
Tags:

Tổng quan

Chiến lược này đi vào và ra khỏi giao dịch ở mức giá thay đổi để theo xu hướng.

Làm thế nào nó hoạt động

  1. Tính toán giá chuyển đổi dựa trên tỷ lệ phần trăm đóng cửa trước đó.

  2. Giá chuyển xuống là đường mua, giá chuyển lên là đường bán.

  3. Nhập dài khi giá chạm vào đường mua.

  4. Ra khi giá đạt đến đường bán.

Ưu điểm

  • Đặt lệnh dừng lỗ / lấy lợi nhuận tự động mà không cần can thiệp bằng tay
  • Tỷ lệ thay đổi tùy chỉnh cho tối ưu hóa tham số
  • Long chỉ làm giảm tần suất giao dịch
  • Có thể giới hạn phạm vi thời gian giao dịch

Rủi ro

  • Không thể xác định hiệu quả cuối xu hướng
  • Thời gian trễ, có thể bỏ lỡ sự đảo ngược nhanh chóng

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

  • Kiểm tra các thông số tỷ lệ thay đổi khác nhau
  • Tối ưu hóa cài đặt từng bước của các tham số
  • Bao gồm các thay đổi năng động dựa trên xu hướng
  • Xem xét xây dựng kim tự tháp ở những đỉnh cao mới

Kết luận

Chiến lược này đạt được lợi nhuận theo dõi tự động thông qua các mức nhập / xuất chuyển. Những cải tiến hơn nữa thông qua tối ưu hóa tham số và cải tiến logic có thể cải thiện hiệu suất. Nhưng rủi ro whipsaw cần phải được quản lý. Nhìn chung một cách tiếp cận đơn giản và thực tế cho xu hướng sau giao dịch.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's ShiftEx Strategy v2.0", shorttitle = "ShiftEx 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
buy = input(-10.0, title = "Buy, src-%")
sell = input(0.0, title = "Sell, src+%")
buysrc = input(low, title = "Source for buy")
sellsrc = input(ohlc4, title = "Source for sell")
offset = input(true)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Levels
bar = close > open ? 1 : close < open ? -1 : 0
mult = 1 / syminfo.mintick
lb = bar == -1 ? buysrc + ((buysrc / 100) * (buy * 1)) : buysrc + ((buysrc / 100) * (buy * 2))
levelbuy = round(lb * mult) / mult
ls = sellsrc + ((sellsrc / 100) * sell)
levelsell = round(ls * mult) / mult

//Lines
os = offset ? 1 : 0
plot(levelbuy, offset = os, linewidth = 2, color = lime, title = "Buy")
plot(levelsell, offset = os, linewidth = 2, color = blue, title = "Sell")

//Trading
if low[1] > 0
    strategy.entry("long", strategy.long, limit = levelbuy, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("close", strategy.short, 0, limit = levelsell, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

Thêm nữa