Chiến lược lợi nhuận theo xu hướng


Ngày tạo: 2023-09-26 11:22:04 sửa đổi lần cuối: 2023-09-26 11:22:04
sao chép: 1 Số nhấp chuột: 594
1
tập trung vào
1621
Người theo dõi

Tổng quan

Chiến lược theo dõi xu hướng lợi nhuận nhằm phát hiện xu hướng dài hạn và điều chỉnh ngắn hạn của tài sản, nắm bắt cơ hội điều chỉnh ngắn hạn trong khi đặt vị trí dài hạn và thiết lập đường dừng lỗ hợp lý để có thể tiến triển và dừng lỗ kịp thời.

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

Chiến lược này chủ yếu dựa trên đường EMA trung bình và RSI để xác định xu hướng ngắn hạn dài. Cụ thể, nó sử dụng đường 50 ngày EMA và đường 200 ngày EMA để xác định xu hướng dài hạn, sử dụng đường RSI để xác định xu hướng dài hạn mạnh.

Sau khi vào cửa, chiến lược đặt điều kiện dừng lỗ. Khi giá tăng hơn 2 lần so với giá vào cửa, BHD được kết thúc; Khi giá giảm hơn 3 lần so với giá vào cửa, BHD bị đóng cửa. Trong đó, đơn vị BHD được tính dựa trên sự gia tăng của 200 đường K gần đây nhất.

Bằng cách này, chiến lược này có thể xem xét đầy đủ các đặc điểm của xu hướng dài hạn và ngắn hạn, kiểm soát rủi ro trong khi tăng lợi nhuận, và có thể được thực hiện theo thời gian và dừng lỗ kịp thời.

Phân tích lợi thế

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

  1. Cân nhắc các đặc điểm của xu hướng ngắn hạn và dài hạn, kết hợp với các chỉ số mạnh và yếu, tránh đặt cược mù quáng vào thị trường bất ổn.

  2. Theo dõi xu hướng và xây dựng nhà cái theo hướng thị trường, tỷ lệ thắng cao hơn.

  3. Thiết lập điểm dừng lỗ, có lợi cho lợi nhuận và kiểm soát rủi ro.

  4. Điểm dừng lỗ có thể được điều chỉnh động theo tính toán biến động của thị trường và hợp lý hơn.

  5. Dữ liệu phản hồi cho thấy chiến lược này mang lại lợi nhuận cao và ổn định trên nhiều cặp tiền tệ và chu kỳ.

  6. Các chiến lược này rất đơn giản, rõ ràng, dễ hiểu và thực hiện, phù hợp với các nhà giao dịch ở mọi cấp.

Phân tích rủi ro

Chiến lược này cũng có những rủi ro:

  1. Có thể có những sai lầm trong đánh giá dài hạn và ngắn hạn, có thể có những sai lầm trong định hướng đầu tư.

  2. Thị trường có thể rơi xuống một vách đá, và điểm dừng không thể hoàn toàn tránh được rủi ro mất mát lớn.

  3. Cài đặt tham số không đúng (ví dụ như chu kỳ trung bình) có thể ảnh hưởng đến hiệu quả của chiến lược.

  4. Các điểm dừng được thiết lập quá nhỏ, có thể ảnh hưởng đến thu nhập của người chơi.

  5. Dữ liệu phản hồi không đại diện cho hiệu suất thực, cần phải được tối ưu hóa liên tục trong thời gian thực.

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

  1. Tối ưu hóa tham số, điều chỉnh chu kỳ trung bình, hoặc thêm các chỉ số khác để đánh giá sức mạnh.

  2. Có thể thiết lập mức dừng lỗ lớn hơn hoặc thêm các cơ chế kiểm soát gió như giảm vị trí.

  3. Thử nghiệm nhiều lần để đánh giá tác động của các tham số khác nhau đối với chiến lược.

  4. Hoạt động tối ưu hóa các tham số dừng, điều chỉnh mức dừng tùy theo tình hình thị trường.

  5. Đánh giá và tối ưu hóa liên tục, kết hợp với ổ cứng để điều chỉnh, làm cho chiến lược ổn định hơn.

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

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

  1. Thiết lập tham số tối ưu hóa, chẳng hạn như điều chỉnh chu kỳ đường trung bình, chu kỳ đơn vị BHD, v.v., để tìm ra các tổ hợp tham số tối ưu.

  2. Thêm các chỉ số khác, như MACD, KD, để đưa ra phán đoán ngắn hạn chính xác hơn.

  3. Tối ưu hóa chiến lược dừng lỗ, chẳng hạn như điều chỉnh mức dừng tùy theo biến động của tỷ lệ dao động.

  4. Thêm chiến lược quản lý vị trí, chẳng hạn như cường độ xu hướng ảnh hưởng đến kích thước vị trí.

  5. Thử nghiệm dữ liệu từ nhiều giống và chu kỳ để đánh giá sức mạnh của chiến lược.

  6. Thêm các điều kiện lọc, chẳng hạn như giá đóng cửa cao hơn giá mở cửa, để tránh bẫy.

  7. Thêm vào đó là các công nghệ tiên tiến như học máy, giúp các chiến lược trở nên tự động và thông minh hơn.

Bằng cách tối ưu hóa, bạn có thể cải thiện hiệu suất chiến lược về tỷ lệ chiến thắng, lợi nhuận, ổn định và khả năng thích ứng.

Tóm tắt

Theo quan điểm tổng thể, chiến lược theo dõi xu hướng có lợi nhuận có những ưu điểm như tính năng ngắn hạn, trật tự và dừng lỗ rõ ràng, là một chiến lược theo dõi xu hướng ổn định và hiệu quả. Nhưng cũng có một số rủi ro, cần phải kiểm tra tối ưu hóa liên tục các tham số và quy tắc, kết hợp với điều kiện thực tế. Nhìn chung, chiến lược này rõ ràng và dễ sử dụng, đáng để các nhà giao dịch học hỏi. Nếu được tối ưu hóa hơn nữa, nó có thể trở thành một trong những chiến lược giao dịch định lượng ổn định và đáng tin cậy.

Mã nguồn chiến lược
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))