Đây là bài viết mà tôi đã cố gắng viết theo yêu cầu của bạn:
Chiến lược tổng hợp này sử dụng chiến lược đảo ngược hình dạng 123 và chiến lược chỉ số sức mạnh của con gấu, tạo ra tín hiệu giao dịch khi cả hai cùng xuất hiện với tín hiệu mua nhiều hoặc mua ít, thuộc chiến lược giao dịch đảo ngược đột phá.
Chiến lược này bao gồm hai phần:
Khi giá đóng cửa sau 2 ngày liên tiếp giảm, giá đóng cửa đã phá vỡ vào ngày thứ 3 và chỉ số stoch thấp tạo ra tín hiệu mua khi nó phục hồi từ mức thấp; khi giá đóng cửa đã phá vỡ xuống vào ngày thứ 3 sau 2 ngày liên tiếp tăng và chỉ số stoch cao tạo ra tín hiệu bán khi nó phục hồi từ mức cao.
Chỉ số sức mạnh gánh nặng phản ánh sự tương phản sức mạnh không gian, tạo ra tín hiệu bán khi chỉ số lớn hơn giới hạn bán tháo được đặt và tín hiệu mua khi chỉ số nhỏ hơn giới hạn mua được đặt.
Khi tổng hợp, nếu cả hai cung cấp tín hiệu đồng hướng, sẽ tạo ra tín hiệu giao dịch thực tế.
Kết hợp tín hiệu đảo ngược và lọc chỉ số, tránh phá vỡ giả, cải thiện chất lượng tín hiệu.
Có nhiều chu kỳ thời gian, linh hoạt đối với các môi trường thị trường khác nhau.
Có thể sử dụng các chiến lược thành phần một mình hoặc kết hợp với nhau để thiết kế mô-đun chiến lược.
Tín hiệu đảo ngược có thể xảy ra với độ sâu hồi âm lớn hơn.
Cài đặt tham số chỉ số lực đẩy cần được kiểm tra và tối ưu hóa nhiều lần.
Điều chỉnh tham số của chiến lược tổng hợp đa yếu tố rất phức tạp và cần nhiều thử nghiệm dữ liệu lịch sử.
Các mô-đun định lượng join kết nối nhiều nguồn dữ liệu hơn, thu thập dữ liệu phong phú hơn trong thời gian dài hơn.
Ứng dụng phương pháp học máy để tự động tìm kiếm và đánh giá các tham số.
Tăng hệ thống ngăn chặn để kiểm soát tổn thất đơn lẻ.
Chiến lược này sử dụng tổng hợp các phân tích và số liệu định lượng kỹ thuật đảo ngược, cải thiện chất lượng tín hiệu thông qua xác nhận kép, mức độ mô đun cao, khả năng mở rộng mạnh mẽ, thuộc chiến lược thực tế. Tiếp theo có thể được tối ưu hóa bằng cách giới thiệu nhiều phương tiện kỹ thuật tiên tiến hơn, để thích nghi với 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 )