Chiến lược đảo ngược trung bình di chuyển chéo kép

Tác giả:ChaoZhang, Ngày: 2023-11-21 11:28:27
Tags:

imgĐây là bài viết mà tôi đã cố gắng viết theo yêu cầu của bạn:

Tổng quan

Chiến lược này kết hợp chiến lược mô hình đảo ngược 123 và chiến lược chỉ số Bear Power. Các tín hiệu giao dịch được tạo ra khi cả hai cung cấp tín hiệu mua hoặc bán theo cùng một hướng.

Chiến lược logic

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

  1. 123 Chiến lược đảo ngược mô hình

    Nó tạo ra tín hiệu mua khi giá đóng phá vỡ lên sau hai ngày liên tiếp giảm và chỉ số Stoch thấp bật trở lại từ mức thấp; Nó tạo ra tín hiệu bán khi giá đóng phá vỡ sau hai ngày liên tiếp tăng và chỉ số Stoch cao kéo trở lại từ mức cao.

  2. Chiến lược chỉ số sức mạnh gấu

    Chỉ số Bear Power phản ánh sự so sánh giữa sức mạnh tăng và giảm. Nó tạo ra tín hiệu bán khi trên đường bán đặt và tạo ra tín hiệu mua khi dưới đường mua đặt.

Khi kết hợp các tín hiệu, các tín hiệu giao dịch thực tế được tạo ra nếu cả hai cung cấp tín hiệu theo cùng một hướng.

Ưu điểm

  1. Kết hợp các tín hiệu đảo ngược và bộ lọc chỉ số tránh sự đột phá sai và cải thiện chất lượng tín hiệu.

  2. Áp dụng cho nhiều khung thời gian, linh hoạt trong việc thích nghi với môi trường thị trường khác nhau.

  3. Các chiến lược cấu thành có thể được sử dụng một mình hoặc kết hợp với thiết kế mô-đun.

Rủi ro

  1. Các tín hiệu đảo ngược có thể đối mặt với độ sâu rút lui lớn.

  2. Các thông số chỉ số Bear Power cần thử nghiệm và tối ưu hóa lặp đi lặp lại.

  3. Các chiến lược tích hợp đa yếu tố có điều chỉnh tham số phức tạp và yêu cầu một lượng lớn dữ liệu lịch sử để thử nghiệm.

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

  1. Kết nối nhiều nguồn dữ liệu hơn với mô-đun kết nối Quant để có được khoảng thời gian dài hơn và bộ dữ liệu phong phú hơn.

  2. Áp dụng các phương pháp học máy để tự động tìm kiếm và đánh giá các kết hợp tham số.

  3. Thêm các cơ chế dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

Kết luận

Chiến lược này kết hợp phân tích kỹ thuật đảo ngược và các chỉ số định lượng để cải thiện chất lượng tín hiệu thông qua xác nhận hai lần. Nó có tính mô-đun và khả năng mở rộng cao. Tăng cường thêm với các công nghệ tiên tiến có thể điều chỉnh nó cho môi trường thị trường phức tạp hơn.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/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
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BearPower(SellLevel, BuyLevel) =>
    value =  iff (close < open ,  
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))
    pos = 0.0
    pos := iff(value > SellLevel, -1,
	   iff(value <= BuyLevel, 1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
	   iff(posReversal123 == -1 and posBearPower == -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