Chiến lược đảo ngược kết hợp dựa trên yếu tố chuyển đổi ngẫu nhiên và tín hiệu đảo ngược chính

Tác giả:ChaoZhang, Ngày: 2023-12-13 17:54:34
Tags:

img

Tổng quan

Chiến lược này kết hợp yếu tố xoay vòng ngẫu nhiên và tín hiệu đảo ngược chính, hai loại chiến lược đảo ngược, để có được các tín hiệu giao dịch kết hợp. Trước tiên nó sử dụng yếu tố xoay vòng ngẫu nhiên để xác định xem giá có hiển thị dấu hiệu đảo ngược hay không. Sau đó nó kết hợp tín hiệu đảo ngược chính để lọc các đảo ngược sai và đảm bảo nắm bắt các cơ hội đảo ngược thực sự, giảm rủi ro giao dịch.

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

Factor Stochastic Turnaround

Phần này xuất phát từ chiến lược đảo ngược được giới thiệu trong cuốn sách của Ulf Jensen How I Tripled My Money in the Futures Market. Nó kết hợp các mô hình đảo ngược của giá đóng cửa và chỉ số chứng khoán để xác định xem xu hướng giá đã đảo ngược hay không.

Nó đi dài khi giá đóng cửa cao hơn giá đóng cửa trước đó trong hai ngày liên tiếp và đường stochastic chậm 9 ngày dưới 50. Điều này cho thấy giá đã tiếp tục tăng trong ngắn hạn, nhưng chỉ số stochastic cho thấy cổ phiếu được mua quá mức, báo trước một sự sụt giảm đảo ngược có thể xảy ra.

Nó đi ngắn khi giá đóng cửa thấp hơn giá đóng cửa trước đó trong hai ngày liên tiếp và đường stochastic nhanh 9 ngày trên 50. Điều này cho thấy giá đã tiếp tục giảm trong ngắn hạn, nhưng chỉ số stochastic cho thấy cổ phiếu được bán quá mức, báo trước một cuộc biểu tình đảo ngược có thể xảy ra.

Tín hiệu đảo ngược chính

Tín hiệu đảo ngược chính đề cập đến mô hình đường K khi giá đạt mức cao hoặc thấp mới trong ngày và sau đó đảo ngược rõ rệt.

Trong thị trường tăng giá, sau khi giá đạt mức cao mới, nếu giá đóng gần mức thấp nhất của ngày trước, nó tạo thành một tín hiệu đảo ngược dài. Trong một thị trường gấu, sau khi giá đạt mức thấp mới, nếu giá đóng gần mức cao nhất của ngày trước, nó tạo thành một tín hiệu ngắn đảo ngược chính.

Ưu điểm của Chiến lược

  1. Kết hợp nhiều chỉ số và mô hình đường K cải thiện độ chính xác của tín hiệu giao dịch.

  2. Được xây dựng dựa trên lý thuyết đảo ngược để nắm bắt các cơ hội đảo ngược tiềm năng.

  3. Đánh giá xu hướng và chỉ số chứng khoán cùng một lúc có thể lọc hiệu quả các tín hiệu sai.

  4. Các tín hiệu đảo ngược chính có thể tránh đảo ngược sai và giảm rủi ro giao dịch.

Rủi ro và tối ưu hóa

  1. Khi các mô hình đảo ngược xuất hiện, thị trường có thể không thực sự đảo ngược, gây ra rủi ro gọi lại.

  2. Sự khác biệt có thể xảy ra giữa chỉ số chứng khoán và giá cả, dẫn đến tín hiệu sai. Các thông số của chỉ số chứng khoán có thể được tối ưu hóa hoặc kết hợp với các chỉ số khác để xác nhận.

  3. Chiến lược này chủ yếu dựa trên giao dịch trong ngày và ngắn hạn và không thể đối phó với thị trường xu hướng dài hạn.

Kết luận

Chiến lược này kết hợp hành động giá, chỉ số chứng khoán và các tín hiệu đảo ngược chính để nắm bắt các cơ hội đảo ngược tiềm năng. So với các phương pháp giao dịch đảo ngược độc lập, nó có thể xác định chính xác hơn thời gian đảo ngược và lọc các tín hiệu sai. Tuy nhiên, vẫn nên chú ý đến rủi ro rút lui sau khi đảo ngược và sự khác biệt giữa chứng khoán và giá. Các chiến lược giao dịch đáng tin cậy hơn có thể đạt được thông qua tối ưu hóa tham số, thiết lập dừng lỗ và tích hợp thêm với các chiến lược khác.


/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/12/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// A key reversal is a one-day trading pattern that may signal the reversal of a trend. 
// Other frequently-used names for key reversal include "one-day reversal" and "reversal day."
// How Does a Key Reversal Work?
// Depending on which way the stock is trending, a key reversal day occurs when:
// In an uptrend -- prices hit a new high and then close near the previous day's lows.
// In a downtrend -- prices hit a new low, but close near the previous day's highs
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

KRU(nLength) =>
    pos = 0.0
    xLL = lowest(low[1], nLength)
    C1 = iff(low < xLL and close > close[1], true, false)
    pos := iff(C1, 1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & Key Reversal Up", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLength = input(1, minval=1, title="Enter the number of bars over which to look for a new low in prices.")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKRU = KRU(nLength)
pos = iff(posReversal123 == 1 and posKRU == 1 , 1,
	   iff(posReversal123 == -1 and posKRU == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Thêm nữa