Chiến lược đảo ngược động lực

Tác giả:ChaoZhang, Ngày: 2023-11-16 10:47:41
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch ngắn hạn dựa trên đột phá đà và đảo ngược trung bình. Nó kết hợp nhiều chỉ số bao gồm trung bình động, mô hình nến, khối lượng và biến động để xác định các cơ hội theo hướng với đà đột phá để nắm bắt xu hướng ngắn hạn.

Chiến lược logic

  1. Sử dụng EMA 3 ngày như đường trung bình động tham chiếu. Khi giá đóng phá vỡ dưới đường này, nó báo hiệu xu hướng giảm trên thị trường (Cond01).

  2. Giá mở cao hơn giá OHLC ngày trước (trung bình của giá mở, cao, thấp và đóng). Điều này cho thấy sự quan tâm mua mạnh mẽ ở mức mở, đó là tín hiệu tăng (Cond02).

  3. Khối lượng thấp hơn khối lượng ngày trước. Điều này cho thấy động lượng không đủ, điều này ủng hộ một sự đột phá theo hướng (Cond03).

  4. Giá đóng phá vỡ phạm vi giá ngày trước. Điều này báo hiệu một sự phá vỡ (Cond04).

  5. Khi tất cả 4 điều kiện trên được đáp ứng, đi dài (Entry).

  6. Quy tắc thoát: đóng vị trí nếu các thanh kể từ khi bước vào vượt quá 10 hoặc lợi nhuận tối đa đóng đạt 5 (Exits).

Chiến lược này kết hợp nhiều chỉ số để xác định hướng đột phá thị trường để nắm bắt xu hướng ngắn hạn.

Phân tích lợi thế

  1. Sử dụng nhiều chỉ số giúp lọc các sự đột phá sai và xác định các sự đột phá hợp lệ.

  2. Động lực không đủ ưu đãi cho sự phá vỡ theo hướng và khởi động xu hướng, cho phép nắm bắt các cơ hội hướng rõ ràng hơn.

  3. Tần suất giao dịch cao phù hợp với giao dịch ngắn hạn để khóa lợi nhuận nhỏ nhanh chóng.

  4. Stop loss và take profit hợp lý cho phép giảm lỗ giao dịch duy nhất và kiểm soát rủi ro hiệu quả.

Phân tích rủi ro

  1. Nhiều giao dịch mở đồng thời gây ra rủi ro giao dịch quá mức.

  2. Các thiết lập tham số tĩnh có thể quá cứng nhắc. Các tham số thích nghi có thể được giới thiệu.

  3. Có khả năng phá vỡ thất bại, có thể dẫn đến thua lỗ giao dịch.

  4. Chỉ tập trung vào thông tin ngắn hạn mà không có sự hiểu biết toàn diện về các xu hướng chính.

  5. Điểm dừng mất mát có thể quá chật chội, có thể xem xét mở rộng đến 20-30 bar.

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

  1. Bao gồm xác định xu hướng để tránh giao dịch chống lại xu hướng chính.

  2. Tối ưu hóa cài đặt tham số. Thời gian EMA, các tham số đột phá có thể được thử nghiệm và tối ưu hóa để phù hợp với các điều kiện thị trường khác nhau. Các tham số thích nghi cũng có thể được sử dụng để điều chỉnh tự động.

  3. Cải thiện điều kiện. Các chỉ số phụ trợ khác như A / D, Bollinger Band Width, RSI có thể được thêm vào để xác minh tính hợp lệ của sự đột phá và giảm sự đột phá sai.

  4. Backtest rộng rãi, kiểm tra hiệu suất trong điều kiện thị trường cực đoan. Kiểm tra trên dữ liệu lịch sử để kiểm tra hiệu suất chiến lược trong những đợt tăng xuống lớn, thị trường hỗn loạn, v.v.

  5. Tối ưu hóa các cơ chế dừng lỗ. Xem xét dừng lỗ, tỷ lệ dừng lỗ, dừng lỗ thích nghi v.v. để làm cho dừng dễ dàng hơn.

Tóm lại

Chiến lược này tích hợp EMA, khối lượng, biến động và các chỉ số khác để xác định các cơ hội ngắn hạn với đà phát triển. Đây là một chiến lược đột phá ngắn hạn điển hình với lợi nhuận thường xuyên và các hoạt động nhanh chóng để khóa lợi nhuận nhanh chóng. Nhưng nó tập trung quá nhiều vào thông tin gần đây mà không có sự hiểu biết toàn diện về các xu hướng chính. Chúng ta có thể tối ưu hóa nó bằng cách kết hợp các yếu tố xu hướng, tối ưu hóa các tham số, cải thiện tính hợp lệ đột phá, thử nghiệm điều kiện cực đoan để làm cho chiến lược mạnh mẽ và thích nghi hơn.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Free Strategy #01 (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
EmaPeriod = input(3, minval=1, title="EMA Period")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Ema = ema(close, EmaPeriod)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Ema
Cond02 = open > OHLC
Cond03 = volume <= volume[1]
Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Thêm nữa