Xu hướng theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-09-25 17:50:11
Tags:

Tổng quan

Chiến lược theo dõi xu hướng của Noro là một chiến lược giao dịch xu hướng đơn giản dựa trên kênh giá, RSI và bộ lọc cơ thể. Nó xác định xu hướng tổng thể bằng kênh giá, nhập dựa trên mức mua quá mức / bán quá mức của RSI và sử dụng bộ lọc cơ thể để xác nhận tín hiệu bổ sung. Chiến lược phù hợp với các công cụ xu hướng như chỉ số và ngoại hối.

Chiến lược logic

Các khía cạnh chính là:

  1. Kênh giá xác định xu hướng tổng thể. Kênh được hình thành bằng cách nhìn lại cao / thấp xác định xu hướng tăng / giảm.

  2. Chỉ số RSI chỉ ra quá mua / quá bán cho thời gian vào. RSI trên 60 là quá mua, dưới 40 là vùng quá bán.

  3. Bộ lọc cơ thể cung cấp tín hiệu cuối cùng. Chỉ giao dịch nếu thân nến vượt quá ngưỡng để tránh tiếng ồn.

  4. Các mục nhập dựa trên sự kết hợp xu hướng, tín hiệu RSI và bộ lọc cơ thể. Các mục nhập dài trong xu hướng tăng trên các tín hiệu tăng, các mục nhập ngắn trong xu hướng giảm trên các tín hiệu giảm.

  5. Màu nền tùy chọn hiển thị rõ xu hướng.

  6. Các khung thời gian giao dịch có thể tùy chỉnh để giao dịch chọn lọc.

Nhiều chỉ số liên kết để tạo ra một xu hướng tương đối ổn định theo hệ thống.

Ưu điểm

Những lợi thế chính là:

  1. Kênh giá trực quan xác định hướng xu hướng tổng thể.

  2. RSI phát hiện hiệu quả mức mua quá mức / bán quá mức cho thời gian nhập cảnh.

  3. Bộ lọc cơ thể cải thiện chất lượng tín hiệu và tránh tín hiệu sai.

  4. Xác nhận nhiều chỉ số cải thiện độ chính xác.

  5. Các chỉ số đơn giản làm giảm rủi ro phù hợp đường cong.

  6. Khung thời gian giao dịch tùy chỉnh thêm tính linh hoạt.

  7. Dễ sử dụng với các thông số tối thiểu.

  8. Màu sắc nền cung cấp sự rõ ràng thị giác.

Rủi ro

Một số rủi ro cần xem xét:

  1. Rủi ro xác định sai xu hướng kênh giá.

  2. Rủi ro tín hiệu RSI không chính xác.

  3. Bộ lọc cơ thể loại bỏ các tín hiệu hợp lệ.

  4. Rủi ro rút vốn trong thời gian điều chỉnh xu hướng.

  5. Rủi ro tối ưu hóa do điều chỉnh tham số sai.

  6. Tiêu chuẩn này được sử dụng để xác định các loại rủi ro.

  7. Rủi ro lựa chọn công cụ nếu được áp dụng cho các tài sản không có xu hướng.

  8. Rủi ro khung thời gian giao dịch nếu được cấu hình không chính xác.

Cơ hội gia tăng

Một số khả năng nâng cao:

  1. Thêm chiến lược dừng lỗ để kiểm soát lỗ cho mỗi giao dịch.

  2. Tối ưu hóa các thông số dựa trên hành vi của thiết bị.

  3. Bao gồm các quy tắc định kích thước vị trí dựa trên sức mạnh xu hướng.

  4. Thực hiện giới hạn rút tiền để hạn chế tổn thất.

  5. Thêm phân tích giá khối lượng để xác minh tín hiệu.

  6. Giới thiệu máy học để tối ưu hóa tham số.

  7. Các thông số chuyên môn dựa trên các loại tài sản.

  8. Cải thiện logic khung thời gian giao dịch để linh hoạt hơn.

Kết luận

Chiến lược theo xu hướng của Noro tích hợp kênh giá, RSI và bộ lọc cơ thể vào một hệ thống giao dịch xu hướng đơn giản và thực tế. Nó có thể giao dịch theo xu hướng và tránh giao dịch ngược xu hướng. Với tối ưu hóa tham số, kiểm soát rủi ro và các cải tiến khác, chiến lược có tiềm năng trở thành một chiến lược giao dịch xu hướng có lợi nhuận nhất quán.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "long")
needshort = input(true, defval = true, title = "short")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
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")

//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Thêm nữa