Chiến lược dài hạn và ngắn hạn dựa trên các thực thể K-line


Ngày tạo: 2023-11-16 17:14:48 sửa đổi lần cuối: 2023-11-16 17:14:48
sao chép: 0 Số nhấp chuột: 649
1
tập trung vào
1617
Người theo dõi

Chiến lược dài hạn và ngắn hạn dựa trên các thực thể K-line

Tổng quan

Chiến lược này dựa trên chiều dài thực thể của đường K để đánh giá chiều đa không. Nó tính trung bình chiều dài thực thể của 30 đường K gần nhất, làm nhiều khi chiều dài thực thể đường dương lớn hơn chiều dài thực thể trung bình và trống khi chiều dài thực thể đường âm lớn hơn chiều dài thực thể trung bình.

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

Chiến lược này bắt đầu bằng cách tính body của chiều dài thực thể của dòng K, và sbody của chiều dài thực thể của 30 dòng K gần đây nhất.

Khởi mở đa đơn khi K là âm ((bar==-1) và chiều dài thực thể lớn hơn chiều dài thực thể trung bình.

Khi K-đường ngày hôm nay là đường dương ((bar==1), và chiều dài thực thể lớn hơn chiều dài thực thể trung bình, mở đơn trống ((dn1) .

Sau khi mở nhiều lệnh, nếu ngày hôm nay đường K là đường dương ((bar == 1) và vị trí hiện tại là trạng thái lợi nhuận, thì lệnh nhiều lệnh sẽ bị xóa.

Sau khi mở lệnh trống, nếu đường K hôm nay là đường âm ((bar==-1), và vị trí hiện tại là trạng thái lợi nhuận, thì lệnh trống sẽ được đóng.

Chiến lược này đơn giản và hiệu quả sử dụng chiều dài của thực thể K-đường để đánh giá xu hướng thị trường, thực thể càng dài thì xu hướng càng mạnh, do đó sử dụng chiều dài của thực thể làm cơ sở để đánh giá nhiều không gian.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Các ý tưởng chiến lược rất đơn giản, dễ hiểu và dễ thực hiện.

  2. Sử dụng chiều dài thực thể K để đánh giá xu hướng, tránh bị nhiễu bởi tiếng ồn.

  3. Sử dụng tính toán trung bình động để thích ứng với sự thay đổi của thị trường.

  4. Thiết lập các điều kiện cân bằng lợi nhuận có thể làm tăng lợi nhuận chiến lược.

  5. Các tham số chiến lược có thể được cấu hình cho các môi trường thị trường khác nhau.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Một thực thể dài hơn không nhất thiết phải là một xu hướng mạnh mẽ, có thể là một biến động bình thường.

  2. Thiết lập không đúng cửa sổ thời gian của chiều dài thực thể trung bình có thể dẫn đến cơ hội giao dịch bị bỏ lỡ.

  3. Các sự kiện bất ngờ có thể dẫn đến tổn thất chiến lược.

  4. Giữ quá nhiều vị trí trống có thể gây ra tổn thất lớn.

Giải pháp đối phó với rủi ro:

  1. Trong khi đó, các chỉ số khác cũng có thể được sử dụng để đánh giá xu hướng và tránh các giao dịch sai.

  2. Kiểm tra các tham số khác nhau và tối ưu hóa tính toán chiều dài thực thể trung bình.

  3. Thiết lập các điều kiện dừng lỗ để kiểm soát tổn thất một lần.

  4. Tối ưu hóa logic mở kho và giữ kho, tránh giữ kho quá lâu

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

Chiến lược này có thể được tối ưu hóa bằng cách:

  1. Kết hợp các chỉ số như MACD, RSI để đánh giá xu hướng, tránh tín hiệu sai do biến động thường xuyên.

  2. Kiểm tra các tham số khác nhau của cửa sổ thời gian chiều dài thực thể trung bình để tìm kiếm sự kết hợp tham số tối ưu.

  3. Thêm logic kiểm soát số lượng mở, giảm dần số lượng mở khi số lần lỗ tăng lên.

  4. Thiết lập điều kiện thoát lỗ di động hoặc lỗ lợi nhuận, kiểm soát tỷ lệ thua lỗ đơn.

  5. Tối ưu hóa các điều kiện mở và giữ vị trí, tránh giao dịch không hiệu lực. Ví dụ: 3 thực thể K-line liên tiếp dài hơn sau đó mở vị trí.

  6. Tránh giao dịch trong một khoảng thời gian nhất định hoặc trước hoặc sau khi công bố dữ liệu quan trọng để kiểm soát tổn thất do cú sốc tỷ giá hối đoái.

Tóm tắt

Chiến lược này có ý tưởng tổng thể rõ ràng và dễ hiểu, để đánh giá thời gian tham gia bằng cách so sánh các thực thể K-line với chiều dài trung bình của nó. Có nhiều không gian để tối ưu hóa chiến lược, có thể điều chỉnh tối ưu hóa từ nhiều khía cạnh, làm cho các tham số chiến lược phù hợp hơn với môi trường thị trường khác nhau.

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

//Noro
//2018

//@version=3
strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usebody = input(true, defval = true, title = "Use body")
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")

//Signals
bar = close > open ? 1 : close < open ? - 1 : 0
body = abs(close - open)
sbody = ema(body, 30)

up1 = bar == -1 and (body > sbody or usebody == false)
dn1 = bar == 1 and (body > sbody or usebody == false)

plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0)
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus

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

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()