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

Chiến lược đột phá đảo ngược nến liên tiếp

Tác giả:ChaoZhang, Ngày: 2024-03-05 16:07:40
Tags:

img

Tổng quan chiến lược

Ý tưởng cốt lõi của Chiến lược Breakout đảo ngược nến liên tiếp là nắm bắt các cơ hội giao dịch khi giá cổ phiếu cho thấy tín hiệu đảo ngược và phá vỡ mức kháng cự quan trọng sau một giai đoạn giảm liên tiếp. Chiến lược đặt các tham số như số nến giảm liên tiếp, số nến tăng liên tiếp và điều kiện dừng lỗ. Khi các điều kiện cụ thể được đáp ứng, nó đi vào một vị trí dài và đóng vị trí khi các điều kiện dừng lỗ được kích hoạt.

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

  1. Thiết lập điều kiện nhập cảnh: Khi giá cổ phiếu đã giảm cho X nến liên tiếp, tiếp theo là Y nến liên tiếp, và chiến lược hiện không có vị trí, điều kiện nhập cảnh được kích hoạt và một vị trí dài được mở.
  2. Thiết lập điều kiện dừng lỗ: Sau khi mở một vị trí, nếu giá cổ phiếu giảm xuống dưới giá đóng cửa thấp nhất của một vài ngọn nến trước đó, hoặc giảm xuống dưới giá cao nhất tại thời điểm nhập trừ 2 lần ATR (Mức trung bình True Range), điều kiện dừng lỗ được kích hoạt và vị trí được đóng.
  3. Ghi lại giá nhập và giá dừng lỗ tương ứng cho mỗi mục nhập, và đặt lại các tham số sau khi đóng vị trí để chuẩn bị cho giao dịch tiếp theo.
  4. Sử dụng Pine script để viết mã chiến lược, có thể được kiểm tra lại và tối ưu hóa trên các nền tảng như TradingView.

Chìa khóa của chiến lược nằm ở việc xác định chính xác các tín hiệu đảo ngược và thiết lập các thông số thích hợp. Số lượng nến giảm liên tiếp và số lượng nến tăng liên tiếp là hai thông số quan trọng cần được tối ưu hóa dựa trên kết quả backtest. Ngoài ra, việc thiết lập các điều kiện dừng lỗ cũng rất quan trọng. Nó cần kiểm soát rủi ro trong khi không đóng các vị trí quá sớm và bỏ lỡ cơ hội.

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

  1. Thích hợp cho các thị trường dao động và giai đoạn đầu của xu hướng: Chiến lược mở các vị trí khi một tín hiệu đảo ngược xuất hiện sau một giai đoạn điều chỉnh giá, giúp dễ dàng nắm bắt các cơ hội vào đầu xu hướng.
  2. Stop-loss kịp thời để kiểm soát rủi ro: Bằng cách thiết lập các điều kiện stop-loss dựa trên mức thấp trước đó và ATR, các vị trí có thể được đóng kịp thời khi giá cổ phiếu giảm lại, kiểm soát lỗ.
  3. Các tham số có thể điều chỉnh và thích nghi mạnh: Các tham số như số lượng nến liên tiếp và điều kiện dừng lỗ có thể được điều chỉnh theo đặc điểm thị trường và sở thích cá nhân, tăng khả năng thích nghi của chiến lược.

Rủi ro chiến lược

  1. Chọn tham số không phù hợp dẫn đến giao dịch thường xuyên: Nếu số lượng nến liên tiếp được đặt quá nhỏ, nó có thể khiến chiến lược mở và đóng các vị trí thường xuyên, làm tăng chi phí giao dịch.
  2. Việc thiết lập vị trí dừng lỗ không đúng dẫn đến tăng lỗ: Nếu vị trí dừng lỗ được thiết lập quá rộng, nó có thể gây ra tổn thất quá mức trong một giao dịch duy nhất; nếu vị trí dừng lỗ được thiết lập quá hẹp, nó có thể khiến các giao dịch có lợi nhuận bị đóng cửa quá sớm.
  3. Hiệu suất trung bình trong các thị trường xu hướng dài hạn: Chiến lược này thích hợp hơn để sử dụng trong các thị trường dao động và giai đoạn đầu của xu hướng.
  4. Thiếu quản lý vị trí và quản lý vốn: Bộ luật chiến lược hiện tại không bao gồm quản lý vị trí và quản lý vốn.

Hướng dẫn tối ưu hóa chiến lược

  1. Tối ưu hóa số lượng nến liên tiếp: Tìm số lượng nến xuống và nến lên liên tiếp hiệu suất tốt nhất trong giai đoạn gần đây nhất bằng cách kiểm tra lại các kết hợp tham số khác nhau.
  2. Tối ưu hóa các điều kiện dừng lỗ: Xem xét sử dụng các điều kiện dừng lỗ năng động hơn, chẳng hạn như thiết lập các vị trí dừng lỗ dựa trên ATR hoặc tỷ lệ phần trăm, để thích nghi với các tình huống biến động thị trường khác nhau.
  3. Thêm giao dịch hai chiều cho dài và ngắn: Hiện tại, chiến lược chỉ có một hướng đi dài. Hãy xem xét thêm một chiến lược ngắn để nắm bắt cả cơ hội tăng và giảm.
  4. Đưa ra quản lý vị trí và quản lý vốn: Điều chỉnh động kích thước vị trí của mỗi giao dịch theo tình hình vốn của tài khoản và ưu tiên rủi ro, và thiết lập giới hạn rủi ro tổng thể để cải thiện độ vững chắc của chiến lược.
  5. Kết hợp với các chỉ số hoặc tín hiệu kỹ thuật khác: Chiến lược có thể được kết hợp với các chỉ số kỹ thuật khác (như RSI, MACD, v.v.) hoặc các tín hiệu giao dịch (như đột phá, mô hình, v.v.) để cải thiện độ chính xác của các vị trí mở và đóng.

Tóm tắt chiến lược

Chiến lược Breakout đảo ngược nến liên tiếp đưa ra quyết định giao dịch bằng cách nắm bắt các tín hiệu đảo ngược sau khi giá cổ phiếu giảm liên tiếp. Chiến lược đơn giản và dễ hiểu, phù hợp để sử dụng trong thị trường dao động và giai đoạn đầu của xu hướng. Bằng cách thiết lập các tham số như số nến liên tiếp và điều kiện dừng lỗ, nó có thể thích nghi linh hoạt với các điều kiện thị trường khác nhau. Tuy nhiên, chiến lược cũng có một số hạn chế, chẳng hạn như khả năng thích nghi trung bình với các thị trường xu hướng dài hạn và thiếu quản lý vị trí và quản lý vốn.

Trong các ứng dụng thực tế, chiến lược cần được tối ưu hóa và cải thiện theo đặc điểm thị trường và sở thích rủi ro của riêng mình. Ví dụ, tối ưu hóa việc thiết lập số lượng nến liên tiếp và điều kiện dừng lỗ, thêm giao dịch hai chiều cho các vị trí dài và ngắn, giới thiệu quản lý vị trí và quản lý vốn, và kết hợp với các chỉ số kỹ thuật và tín hiệu giao dịch khác. Điều này có thể cải thiện lợi nhuận của chiến lược trong khi kiểm soát rủi ro và đạt được lợi nhuận đầu tư ổn định.

Nói chung, Chiến lược Breakout đảo ngược nến liên tiếp là một chiến lược giao dịch đơn giản và thực tế đáng được khám phá và tối ưu hóa hơn nữa trong thực tế. Tuy nhiên, không có chiến lược nào là toàn năng. Các nhà đầu tư cũng cần kết hợp kinh nghiệm và phán đoán của riêng họ, đưa ra quyết định thận trọng và thực hiện nghiêm ngặt để đứng bất khả chiến bại trên thị trường trong dài hạn.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0

// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true

entry_condition() => 
	date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active

exit_condition() =>
	date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))

if (entry_condition())
	strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
	entry_bar_index := bar_index
	active := true
	stop_loss := math.min(close, close[1], close[2])
	// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
	strategy.close("ConsDnLong", comment = "CDLClose")
	// log.info("Close at bar {0}", bar_index)
	entry_bar_index := 1000000
	active := false
// if (dns >= consecutiveBarsDown)
// 	strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))

Thêm nữa