Dựa trên chiến lược động lượng phản công kép


Ngày tạo: 2024-02-20 15:27:02 sửa đổi lần cuối: 2024-02-20 15:27:02
sao chép: 0 Số nhấp chuột: 298
1
tập trung vào
1166
Người theo dõi

Dựa trên chiến lược động lượng phản công kép

Tổng quan

Chiến lược tỷ lệ biến động ngược kép là một chiến lược giao dịch theo xu hướng bằng cách kết hợp tín hiệu biến động giá và tín hiệu biến động giá. Nó chủ yếu dựa trên hình thức 123 để xác định điểm biến động giá, đồng thời hỗ trợ việc sử dụng biến động đường Donchian để lọc các tín hiệu giả. Chiến lược này áp dụng cho các vị trí dài và trung bình, thông qua bộ lọc đảo ngược kép, có thể nắm bắt hiệu quả các điểm biến động của thị trường và đạt được lợi nhuận vượt mức.

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

Phần giá đảo ngược sử dụng phán đoán hình dạng 123. Hình dạng này có nghĩa là giá trên hai đường K đầu tiên bị đảo ngược (lên hoặc xuống) và đường K thứ ba lại bị đảo ngược (lên hoặc xuống) và do đó được gọi là hình dạng 123.

Phương pháp này sử dụng sự đảo ngược của tỷ lệ biến động kênh Donchian để lọc các tín hiệu giả mạo. Chỉ khi tỷ lệ biến động và giá cả cùng lúc đảo ngược, tín hiệu giao dịch sẽ được phát ra để tránh bị thao tác ngược.

Nói chung, chiến lược này đảm bảo độ tin cậy của tín hiệu giao dịch và kiểm soát rủi ro bằng cách kiểm tra ngược hai lần, một chiến lược xu hướng tương đối vững chắc.

Lợi thế chiến lược

  • Cơ chế lọc kép, đảm bảo tín hiệu giao dịch đáng tin cậy, tránh bị phá vỡ giả
  • Kiểm soát rủi ro, giảm khả năng thua lỗ
  • Giữ vị trí phù hợp với đường dài, tránh tiếng ồn thị trường, nắm bắt lợi nhuận dư thừa
  • Các tham số tối ưu có nhiều không gian, có thể điều chỉnh đến trạng thái tối ưu
  • Phong cách độc đáo, kết hợp hiệu quả với các chỉ số kỹ thuật phổ biến

Rủi ro chiến lược

  • Tùy thuộc vào tối ưu hóa tham số, tham số không đúng sẽ ảnh hưởng đến hiệu suất của chiến lược
  • Chiến lược dừng lỗ cần được nâng cao hơn nữa, kiểm soát rút tối đa cần được cải thiện
  • Tần số giao dịch có thể thấp, không thích nghi với giao dịch thuật toán tần số cao
  • Lựa chọn giống và thời gian thích hợp, phạm vi hạn chế
  • Tìm các tham số tối ưu bằng cách học máy

Hướng tối ưu hóa

  • Thêm mô-đun tự điều chỉnh để giảm đáng kể độ rút tối đa
  • Thêm chỉ số khối lượng giao dịch để đảm bảo truy cập khi khối lượng vượt qua
  • Tối ưu hóa tham số để đạt được sự ổn định tối ưu
  • Thử nghiệm các giống và chu kỳ thời gian khác nhau để tìm ra môi trường thích hợp nhất
  • Cố gắng kết hợp với các chỉ số hoặc chiến lược khác để đạt được hiệu quả cộng tác 1 + 1 > 2

Tóm tắt

Chiến lược số lượng xoay ngược kép, bằng cách xác minh hai lần về giá và biến động, kiểm soát rủi ro tốt hơn. So với chỉ số đơn lẻ, nó lọc ra nhiều tiếng ồn và ổn định hơn. Chiến lược này có thể nâng cao hơn nữa chất lượng tín hiệu và ổn định thu nhập thông qua các phương tiện như tối ưu hóa tham số, tăng cường mô-đun dừng lỗ và giới thiệu năng lượng lượng.

Mã nguồn chiến lược
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/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
// The Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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 )