Chiến lược tái nhập động chỉ mua

Tác giả:ChaoZhang, Ngày: 2023-12-19 13:56:55
Tags:

img

Tổng quan

Chiến lược này là một hệ thống giao dịch chỉ mua mà tạo ra tín hiệu mua dựa trên đường chéo trung bình động và Chỉ số kênh hàng hóa hàng tuần (CCI) hoặc Chỉ số hướng trung bình hàng tuần (ADX). Nó tạo ra tín hiệu mua khi trung bình di chuyển nhanh vượt qua trung bình di chuyển chậm và khi CCI hàng tuần và / hoặc ADX hàng tuần đáp ứng các điều kiện cụ thể.

Chiến lược này cũng cho phép nhập lại năng động, có nghĩa là nó có thể mở các vị trí dài mới nếu giá vượt quá ba đường trung bình động sau khi thoát. Tuy nhiên, chiến lược sẽ thoát khỏi vị trí dài nếu giá đóng dưới đường trung bình động thứ ba.

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

Các kịch bản xác định các điều kiện để tạo ra tín hiệu mua. Nó kiểm tra hai điều kiện cho một tín hiệu mua hợp lệ:

  • Trung bình di chuyển nhanh vượt qua trung bình di chuyển chậm
  • Người dùng có thể chọn lọc giao dịch bằng cách sử dụng CCI hàng tuần hoặc ADX hàng tuần

Dynamic Re-entry:Nếu không có vị trí dài hoạt động và giá trên tất cả ba đường trung bình động, một vị trí dài mới được mở.

Điều kiện thoát:Nếu giá đóng giảm xuống dưới mức trung bình động thứ ba, kịch bản sẽ đóng vị trí dài.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Sử dụng nhiều chỉ số kỹ thuật để lọc tín hiệu làm giảm tín hiệu sai
  2. Cơ chế nhập lại năng động tối đa hóa việc nắm bắt xu hướng
  3. Chỉ sử dụng thời gian dài sẽ tránh rủi ro rút ngắn

Phân tích rủi ro

Những rủi ro của chiến lược này bao gồm:

  1. Có một số rủi ro của chém
  2. Thời gian chờ dài có thể quá dài, đòi hỏi phải dừng lại
  3. Cài đặt tham số kém có thể gây ra giao dịch quá thường xuyên

Giải pháp:

  1. Sử dụng kết hợp tham số tốt hơn và kết hợp chỉ số để lọc
  2. Thiết lập lỗ dừng hợp lý
  3. Điều chỉnh các thông số để đảm bảo sự ổn định

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

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

  1. Kiểm tra nhiều sự kết hợp các chỉ số kỹ thuật hơn để tìm ra thời gian nhập cảnh tốt hơn
  2. Tối ưu hóa các tham số để tìm kết hợp tham số tốt nhất
  3. Thêm các cơ chế dừng lỗ để kiểm soát lỗ đơn
  4. Thêm kích cỡ vị trí để tăng/giảm các vị trí dựa trên điều kiện thị trường

Tóm lại

Chiến lược mua lại chỉ tham gia năng động này tích hợp nhiều chỉ số kỹ thuật để xác định thời gian tham gia và áp dụng thiết kế tái tham gia năng động để theo dõi xu hướng trong thời gian thực. Chỉ tham gia dài tránh rủi ro mua ngắn. Thông qua tối ưu hóa tham số, dừng lỗ và kích thước vị trí, chiến lược này có thể được thực hiện trong giao dịch trực tiếp để kiểm soát rủi ro trong khi nắm bắt lợi nhuận dư thừa.


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

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)


Thêm nữa