123 Chiến lược hợp tác đảo ngược và STARC Bands

Tác giả:ChaoZhang, Ngày: 2023-12-04 13:38:30
Tags:

img

Tổng quan

Chiến lược này tạo ra các tín hiệu giao dịch chính xác hơn bằng cách kết hợp chiến lược 123 Reversal và chiến lược STARC Bands. Chiến lược 123 Reversal đánh giá các cơ hội phục hồi dưới cùng thông qua các mẫu đảo ngược đường K. Chiến lược STARC Bands sử dụng sự đột phá giá của các dải để xác định hướng xu hướng. Sử dụng cả hai chiến lược có thể làm cho tín hiệu giao dịch đáng tin cậy hơn trong khi sử dụng các lợi thế của mỗi chiến lược.

Chiến lược logic

123 Chiến lược đảo ngược

Chiến lược này có nguồn gốc từ trang 183 của cuốn sách How I Tripped My Money in The Futures Market của Ulf Jensen. Ý tưởng giao dịch là nắm giữ các vị trí dài khi giá cho thấy sự đảo ngược giảm như cơ hội cho sự phục hồi dưới cùng, và nắm giữ các vị trí ngắn khi giá cho thấy sự đảo ngược tăng như cơ hội cho sự đảo ngược xu hướng.

Tín hiệu dài: Khi giá đóng cửa cao hơn giá đóng cửa ngày trước trong hai ngày liên tiếp, và trung bình động 9 ngày của đường K chậm dưới 50, đi dài.

Tín hiệu ngắn: Khi giá đóng cửa thấp hơn giá đóng cửa ngày trước trong hai ngày liên tiếp, và đường K nhanh trung bình di chuyển 9 ngày trên 50, đi ngắn.

Chiến lược các dải STARC

Chiến lược này đánh giá hướng xu hướng bằng cách vẽ các dải xung quanh một đường trung bình di chuyển đơn giản ngắn hạn của giá. Dải trên được xây dựng bằng cách thêm khoảng trung bình thực sự (ATR) trên đường trung bình di chuyển. Dải dưới được xây dựng bằng cách trừ ATR khỏi đường trung bình di chuyển. Bước trên dải trên cho thấy xu hướng tăng, trong khi bước dưới dải dưới cho thấy xu hướng giảm.

STARC là viết tắt của Stoller Average Range Channels. Chỉ số được đặt tên theo người sáng tạo, Manning Stoller.

Phân tích lợi thế

Sử dụng cả 123 Reversal và STARC Bands chiến lược cải thiện độ chính xác của tín hiệu giao dịch. Chiến lược 123 Reversal nắm bắt cơ hội đảo ngược. Chiến lược STARC Bands đánh giá hướng xu hướng. Hai chiến lược bổ sung lẫn nhau để giảm tín hiệu sai và cải thiện tỷ lệ thắng.

Ngoài ra, chiến lược 123 Reversal giúp tránh đuổi theo mức cao hoặc thấp mới sau khi thị trường phá vỡ.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là không thể tránh hoàn toàn thua lỗ và thua lỗ liên tiếp. Mặc dù kết hợp hai chiến lược có thể làm giảm tín hiệu sai, nhưng vẫn có thể xảy ra phán đoán sai trong một số điều kiện thị trường nhất định.

Một rủi ro khác nằm trong cài đặt tham số không đúng đắn có thể dẫn đến hiệu suất chiến lược kém. Các tham số cần được thử nghiệm và tối ưu hóa theo các sản phẩm và khung thời gian khác nhau để phù hợp với đặc điểm của chúng.

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

Có chỗ cho việc tối ưu hóa thêm chiến lược này:

  1. Thêm các chiến lược dừng lỗ, chẳng hạn như dừng giá hoặc dừng chỉ số để tránh các giao dịch thua lỗ lớn;

  2. Thêm các điều kiện nhập khẩu như xác nhận giá để tránh giá nhập khẩu không thuận lợi;

  3. Thực hiện tối ưu hóa tham số để tìm ra các kết hợp tham số phù hợp nhất cho sản phẩm và khung thời gian;

  4. Thêm ý tưởng thoát động để điều chỉnh vị trí dựa trên những thay đổi của thị trường.

Tóm lại

Chiến lược này kết hợp các chiến lược 123 Reversal và STARC Bands, sử dụng cả hai chiến lược lợi thế trong việc đánh giá sự đảo ngược xu hướng và hướng. Nó có thể giảm hiệu quả các tín hiệu sai và cải thiện hiệu quả giao dịch. Nó cũng tối ưu hóa các vấn đề hiện có trong việc sử dụng một trong hai chiến lược một mình. Thông qua tối ưu hóa liên tục, chiến lược này có thể trở thành một chiến lược giao dịch định lượng ổn định và đáng tin cậy.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/07/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
// A type of technical indicator that is created by plotting two bands around 
// a short-term simple moving average (SMA) of an underlying asset's price. 
// The upper band is created by adding a value of the average true range 
// (ATR) - a popular indicator used by technical traders - to the moving average. 
// The lower band is created by subtracting a value of the ATR from the SMA.
// STARC is an acronym for Stoller Average Range Channels. The indicator is 
// named after its creator, Manning Stoller.
//
// 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


STARC(LengthMA,LengthATR,K) =>
    pos = 0.0
    xMA = sma(close, LengthMA)
    xATR = atr(LengthATR)
    xSTARCBandUp = xMA + xATR * K
    xSTARCBandDn = xMA - xATR * K
    pos := iff(close > xSTARCBandUp, 1,
             iff(close < xSTARCBandDn, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & STARC Bands", 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, "---- STARC Bands ----")
LengthMA = input(5, minval=1)
LengthATR = input(15, minval=1)
K = input(1.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSTARC = STARC(LengthMA,LengthATR,K)
pos = iff(posReversal123 == 1 and posSTARC == 1 , 1,
	   iff(posReversal123 == -1 and posSTARC == -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