Tài nguyên đang được tải lên... tải...

Chiến lược vượt qua xu hướng đa chỉ số: Hệ thống giao dịch hỗ trợ thị trường tăng

Tác giả:ChaoZhang, Ngày: 2024-12-27 14:35:53
Tags:SMABMSBEMA

img

Tổng quan

Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên Dải hỗ trợ thị trường bò. Nó chủ yếu sử dụng các tín hiệu chéo giữa Trung bình di chuyển đơn giản (SMA) 20 tuần và Trung bình di chuyển biểu mô (EMA) 21 tuần để xác định hướng xu hướng thị trường và đưa ra quyết định giao dịch. Chiến lược tạo ra các tín hiệu dài khi các đường trung bình di chuyển vượt lên và thoát ra khi chúng vượt xuống, nhằm nắm bắt các cơ hội xu hướng trung hạn đến dài hạn.

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

Lý thuyết cốt lõi của chiến lược là theo dõi vị trí tương đối của SMA 20 tuần và EMA 21 tuần để đánh giá xu hướng thị trường. Khi trung bình ngắn hạn (20 tuần SMA) vượt qua mức trung bình dài hạn (21-tuần EMA), nó chỉ ra xu hướng tăng tiềm năng, kích hoạt nhập vị trí dài. Khi trung bình ngắn hạn giảm xuống dưới trung bình dài hạn, nó báo hiệu một kết thúc tiềm năng của xu hướng tăng, kích hoạt đóng vị trí. Chiến lược sử dụng quản lý vị trí phần trăm_of_equity, với phí giao dịch 0,1% và trượt 3 điểm cơ bản.

Ưu điểm chiến lược

  1. Xu hướng mạnh: Sử dụng khung thời gian hàng tuần chuyển trung bình chéo để lọc tiếng ồn thị trường ngắn hạn và nắm bắt cơ hội xu hướng trung bình đến dài hạn
  2. Kiểm soát rủi ro hợp lý: Sử dụng các đường trung bình động động làm tham chiếu dừng lỗ cho việc thoát khỏi thị trường kịp thời
  3. Thiết lập tham số khoa học: Các tham số 20 tuần và 21 tuần đảm bảo sự ổn định tín hiệu mà không bị chậm quá mức
  4. Logic thực thi rõ ràng: Các tín hiệu vào và ra rõ ràng, loại bỏ phán đoán chủ quan
  5. Quản lý vốn linh hoạt: Hỗ trợ kích thước vị trí dựa trên vốn chủ sở hữu tài khoản, cho phép điều chỉnh vị trí năng động

Rủi ro chiến lược

  1. Không hiệu quả trong các thị trường dao động: Chuyển đổi thường xuyên trong các thị trường bên có thể dẫn đến sự phá vỡ sai và thua lỗ liên tiếp
  2. Tác động trượt đáng kể: Các giao dịch khung thời gian hàng tuần có thể gặp trượt đáng kể trong giao dịch thực
  3. Thời gian nhập chậm: Các tín hiệu chéo trung bình chuyển động vốn có sự chậm trễ, có khả năng thiếu các điểm nhập tối ưu
  4. Kiểm soát rút vốn không đầy đủ: Chỉ dựa vào đường chéo trung bình động để dừng lỗ có thể dẫn đến rút vốn lớn
  5. Nhu cầu vốn cao: Giao dịch khung thời gian hàng tuần đòi hỏi vốn đáng kể và khả năng phục hồi tâm lý

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

  1. Thêm các chỉ số lọc: Kết hợp RSI, MACD, vv để xác nhận xu hướng và cải thiện độ tin cậy tín hiệu
  2. Tối ưu hóa cơ chế dừng lỗ: Thực hiện dừng lỗ năng động bằng chỉ số ATR để tăng cường kiểm soát rủi ro
  3. Cải thiện quản lý vị thế: Điều chỉnh kích thước vị thế theo cách năng động dựa trên biến động thị trường
  4. Thêm lọc xu hướng: Đưa ra đánh giá xu hướng dài hạn để giao dịch chỉ theo hướng xu hướng chính
  5. Cải thiện việc thực hiện giao dịch: Tối ưu hóa các quy tắc giao dịch để giảm tác động trượt và cải thiện sự ổn định chiến lược

Tóm lại

Chiến lược giao dịch Bull Market Support Band là một hệ thống theo dõi xu hướng dựa trên lý thuyết phân tích kỹ thuật cổ điển. Nó nắm bắt các cơ hội xu hướng trung và dài hạn thông qua các đường chéo trung bình chuyển động theo khung thời gian hàng tuần, có logic rõ ràng và rủi ro có thể kiểm soát được. Tuy nhiên, chiến lược hoạt động kém trong các thị trường khác nhau và có một số sự chậm trễ. Thông qua việc thêm các chỉ số phụ trợ, tối ưu hóa dừng lỗ và quản lý vốn cải thiện, chiến lược có không gian tối ưu hóa đáng kể. Nó phù hợp với các nhà đầu tư có vốn đáng kể và dung nạp rủi ro.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © zkdev

//@version=6
strategy(title='Demo GPT - Bull Market Support Band', 
     overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1, 
     slippage=3)

// -------------------------------------------------------------------------
// Compile-time timestamp constants for default date range
// (2018-01-01 00:00:00 UTC -> 1514764800000
//  2069-12-31 23:59:59 UTC -> 3155759999000)
// -------------------------------------------------------------------------
const int defaultFromDate = 1514764800000
const int defaultToDate   = 3155759999000

// -------------------------------------------------------------------------
// Inputs: date range
// -------------------------------------------------------------------------
fromDate = input(title='Start Date', defval=defaultFromDate)
toDate   = input(title='End Date',   defval=defaultToDate)

// -------------------------------------------------------------------------
// Indicator settings & calculations
// -------------------------------------------------------------------------
smaLength = 20
emaLength = 21

source = close
sma    = ta.sma(source, smaLength)
ema    = ta.ema(source, emaLength)

// -------------------------------------------------------------------------
// Fetch weekly SMA & EMA
// -------------------------------------------------------------------------
outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)

// -------------------------------------------------------------------------
// Plot visuals (20w SMA, 21w EMA, fill in between)
// -------------------------------------------------------------------------
smaPlot = plot(outSma, color=color.new(color.red,   0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// -------------------------------------------------------------------------
// We evaluate crossover/crossunder on *every bar* and store the result
// -------------------------------------------------------------------------
crossUp   = ta.crossover(outSma, outEma)
crossDown = ta.crossunder(outSma, outEma)

// -------------------------------------------------------------------------
// Trade logic: only operate within chosen date range
// Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma
// -------------------------------------------------------------------------
inDateRange = true

if inDateRange
    // If we have a crossUp event on this bar, buy (go Long)
    if crossUp
        strategy.entry('Long', strategy.long)

    // If we have a crossDown event on this bar, sell (close Long)
    if crossDown
        strategy.close('Long')


Có liên quan

Thêm nữa