Trung bình xu hướng chuyển động tái diễn kết hợp với 123 Chiến lược mô hình đảo ngược

Tác giả:ChaoZhang, Ngày: 2024-02-21 16:02:32
Tags:

img

Tổng quan

Chiến lược này kết hợp Trung bình xu hướng chuyển động tái diễn và Mô hình đảo ngược 123 thành một tín hiệu tổng hợp để cải thiện sự ổn định và lợi nhuận.

Nguyên tắc

123 Mô hình đảo ngược

Phần này lấy cảm hứng từ cuốn sách How I Tripped My Money in the Futures Market của Ulf Jensen. Nó mua khi giá đóng tăng trong hai ngày liên tiếp và STO SLOWK 9 ngày dưới 50. Nó bán khi giá đóng giảm trong hai ngày liên tiếp và STO FASTK 9 ngày trên 50.

Trung bình xu hướng chuyển động tái diễn

Kỹ thuật này được gọi là sự phù hợp đa thức tái diễn. Nó sử dụng giá của vài ngày qua và giá ngày hôm nay để dự đoán giá ngày mai. Nó đi ngắn khi giá dự đoán cao hơn giá thực tế ngày hôm qua, và đi dài nếu không.

Ưu điểm

Mẫu 123 Reversal Pattern có thể bắt được các xu hướng lớn khi sự đảo ngược giá xảy ra. Mức trung bình xu hướng chuyển động tái diễn có thể đánh giá hướng chuyển động giá chính xác hơn.

Rủi ro và giải pháp

  • Mô hình đảo ngược 123 có thể tạo ra tín hiệu sai do biến động giá ngắn hạn.
  • Trung bình xu hướng chuyển động tái diễn có thể phản ứng chậm với các sự kiện đột ngột.
  • Hai chiến lược có thể cung cấp các tín hiệu không nhất quán đôi khi. Một giải pháp là chỉ mở các vị trí khi các tín hiệu kép xuất hiện, hoặc chỉ theo một tín hiệu dựa trên điều kiện thị trường.

Hướng dẫn để cải thiện

  • Kiểm tra sự kết hợp khác nhau của các tham số thời gian để tìm cặp tối ưu.
  • Thiết lập các cơ chế dừng mất mát tự động.
  • Điều chỉnh các thông số dựa trên các sản phẩm và môi trường thị trường khác nhau.
  • Xem xét kết hợp với các chiến lược hoặc chỉ số khác để hình thành các hệ thống mạnh mẽ hơn.

Kết luận

Chiến lược này kết hợp hai loại chiến lược khác nhau và tạo ra các tín hiệu tổng hợp để cải thiện sự ổn định. Nó khai thác cả hai lợi thế của chúng để bắt các điểm đảo ngược giá và đánh giá xu hướng giá trong tương lai.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 01/06/2021
// 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
// Taken from an article "The Yen Recused" in the December 1998 issue of TASC, 
// written by Dennis Meyers. He describes the Recursive MA in mathematical terms 
// as "recursive polynomial fit, a technique that uses a small number of past values 
// of the estimated price and today's price to predict tomorrows price."
// Red bars color - short position. Green is long.
//
// 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


RMTA(Length) =>
    pos = 0.0
    Bot = 0.0
    nRes = 0.0
    Alpha = 2 / (Length+1)
    Bot := (1-Alpha) * nz(Bot[1],close) + close
    nRes := (1-Alpha) * nz(nRes[1],close) + (Alpha*(close + Bot - nz(Bot[1], 0)))
    pos:= iff(nRes > close[1], -1,
    	     iff(nRes < close[1], 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Recursive Moving Trend Average", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Recursive Moving Trend Average ----")
LengthRMTA = input(21, minval=3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMTA = RMTA(LengthRMTA)
pos = iff(posReversal123 == 1 and posRMTA == 1 , 1,
	   iff(posReversal123 == -1 and posRMTA == -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