Chiến lược đảo ngược động lực nhiều khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-10-30 10:42:54
Tags:

img

Tổng quan

Chiến lược này kết hợp các chỉ số động lực trên các khung thời gian khác nhau để xác định sự đảo ngược xu hướng ở nhiều quy mô thời gian. Nó sử dụng dao động Stochastic để phát hiện sự đảo ngược ngắn hạn và chỉ số (Tối cao-Tí thấp nhất) / Khép cho xu hướng trung hạn đến dài hạn, cho phép phát hiện sự đảo ngược trong nhiều chiều dài thời gian.

Chiến lược logic

Chiến lược bao gồm hai thành phần:

  1. 123 Phục hồi

Nó sử dụng đường nhanh Stochastic vượt dưới đường chậm cùng với các mô hình đảo ngược giá để xác định sự đảo ngược xu hướng ngắn hạn. Cụ thể, nó sẽ dài khi giá đóng cao hơn mức đóng trước và đường nhanh Stochastic vượt dưới đường chậm và dưới 50; nó sẽ ngắn khi giá đóng thấp hơn mức đóng trước và đường nhanh Stochastic vượt trên đường chậm và trên 50.

  1. (Tối cao nhất - thấp nhất) / Chỉ số gần

Chỉ số này đo độ biến động của thanh hiện tại. Giá trị cao hơn cho thấy sự biến động tăng và khả năng đảo ngược, trong khi giá trị thấp hơn cho thấy sự biến động giảm và xu hướng tiếp tục. Chiến lược sử dụng SMA của chỉ số này để xác định sự đảo ngược xu hướng trung và dài hạn.

Kết hợp với nhau, hai thành phần cho phép chiến lược phát hiện sự đảo ngược trên các khung thời gian ngắn và trung bình đến dài.

Ưu điểm

  • Cải thiện độ chính xác với các chỉ số nhiều khung thời gian

    Sử dụng cả các chỉ số ngắn hạn và trung bình đến dài hạn đảm bảo độ tin cậy của tín hiệu và tránh các tín hiệu sai.

  • Các thông số chỉ số linh hoạt

    Các tham số của cả Stochastic và (H-L) /C có thể được điều chỉnh cho các chế độ thị trường, làm cho chiến lược mạnh mẽ.

  • Logic đơn giản và trực quan

    Với Stochastic là cốt lõi và bộ lọc xu hướng, khuôn khổ là đơn giản và dễ hiểu.

  • Khả năng mở rộng

    Khung đơn giản cho phép dễ dàng kết hợp nhiều chỉ số hơn để xây dựng các mô hình đa yếu tố.

Rủi ro

  • Có thể hoạt động kém hơn trong xu hướng bền vững

    Bản chất đảo ngược trung bình làm cho nó ít lý tưởng hơn cho các thị trường có xu hướng mạnh.

  • Nguy cơ tín hiệu sai

    Stochastic và (H-L) /C có thể phát ra các tín hiệu sai trong thị trường bất thường.

  • Điều chỉnh chỉ số đòi hỏi chuyên môn

    Các thông số phải được tối ưu hóa cho thị trường thay đổi, nếu không hiệu suất có thể bị ảnh hưởng.

  • Cần có kích thước vị trí thích hợp

    Là một chiến lược đảo ngược, quản lý rủi ro thận trọng về kích thước vị trí là quan trọng.

Cơ hội gia tăng

  • Nhiều yếu tố trong mô hình đa yếu tố

    Các yếu tố bổ sung như khối lượng, các chỉ số đảo ngược khác có thể được thêm vào để tạo ra các mô hình đa yếu tố.

  • Thực hiện lệnh dừng lỗ

    Dừng lỗ theo thời gian hoặc cơ sở di chuyển có thể giúp kiểm soát lỗ giao dịch duy nhất.

  • Tối ưu hóa tham số

    Các phương pháp điều chỉnh tham số có hệ thống hơn như thuật toán di truyền có thể được khám phá.

  • Học máy

    Các thuật toán ML có thể giúp cải thiện độ chính xác dự đoán đảo ngược.

  • Phân tích tình cảm

    Kết hợp dữ liệu thay thế như tình cảm xã hội có thể giúp dự đoán sự đảo ngược.

Kết luận

Chiến lược này kết hợp các chỉ số ngắn hạn và trung hạn để xác định sự đảo ngược trên các khung thời gian. Nó có những lợi thế như các tham số linh hoạt, cấu trúc đơn giản, khả năng mở rộng. Các bước tiếp theo có thể bao gồm nhiều yếu tố hơn, dừng lỗ, tối ưu hóa tham số, học máy để cải thiện thêm lợi nhuận và quản lý rủi ro. Nhìn chung, đây là một chiến lược sáng tạo đáng nghiên cứu và áp dụng.


//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
//  This histogram displays (high-low)/close
//  Can be applied to any time frame.
//
// 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

HLCHist(input_barsback, input_percentorprice, input_smalength) =>
    xPrice = (high-low)/close
    xPriceHL = (high-low)
    xPrice1 = iff(input_percentorprice, xPrice * 100, xPriceHL)
    xPrice1SMA = sma(abs(xPrice1), input_smalength)
    pos = 0.0
    pos := iff(xPrice1SMA[input_barsback] > abs(xPrice1), 1,
    	   iff(xPrice1SMA[input_barsback] < abs(xPrice1), -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & (H-L)/C Histogram", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
input_barsback = input(4, title="Look Back")
input_percentorprice = input(false, title="% change")
input_smalength = input(13, title="SMA Length")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLCHist = HLCHist(input_barsback, input_percentorprice, input_smalength)
pos = iff(posReversal123 == 1 and posHLCHist == 1 , 1,
	   iff(posReversal123 == -1 and posHLCHist == -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 ? red: possig == 1 ? green : blue ) 	   

Thêm nữa