
Chiến lược này kết hợp cả hai yếu tố 123 reversal và các chỉ số biến động số nguyên tố để thực hiện giao dịch định lượng được thúc đẩy bởi hai yếu tố. Chiến lược này cũng có thể xác định các xu hướng lâu dài hơn để đạt được lợi nhuận vượt quá rủi ro thấp, trong khi nắm bắt các cơ hội reversal ngắn hạn.
Phần thứ nhất là chiến lược 123 đảo ngược. Chiến lược này sử dụng các đặc điểm của giá trị đóng cửa trong vòng 2 ngày để xác định điểm mua và bán. Khi giá đóng cửa tăng 2 ngày liên tiếp và đường K chậm dưới 50, coi là sai lệch và tạo ra điểm mua; Khi giá đóng cửa giảm 2 ngày liên tiếp và đường K nhanh hơn 50, coi là đảo ngược và tạo ra điểm bán.
Phần thứ hai là chiến lược chỉ số biến động số nguyên tố. Chỉ số này tính toán số nguyên tố gần nhất với giá hiện tại trong phạm vi giá được chỉ định và xuất ra chênh lệch với giá hiện tại.
Nguyên tắc kết hợp tín hiệu giao dịch của hai chiến lược con là: tạo tín hiệu giao dịch thực tế trong trường hợp tín hiệu đồng chiều, không mở vị trí trong trường hợp tín hiệu ngược.
Chiến lược này kết hợp hai yếu tố, xem xét hiệu ứng đảo ngược ngắn hạn và tính đến các đặc điểm xu hướng dài hạn, đánh giá thị trường từ nhiều góc độ, nâng cao khả năng chống rủi ro của chiến lược.
So với chiến lược duy nhất của động lực, chiến lược này có thể sử dụng các yếu tố đảo ngược để dừng lỗ hoặc đảo ngược để kiểm soát rủi ro trong ngày một cách hiệu quả khi sự kiện bất ngờ gây ra giá tăng ngắn hạn.
So với chiến lược đảo ngược đơn lẻ, chiến lược này giới thiệu các chỉ số biến động số nguyên để xác định xu hướng, có thể tránh giao dịch đảo ngược thường xuyên gây ra quá giao dịch.
Rủi ro lớn nhất của chiến lược này là khi có xung đột tín hiệu giữa hai yếu tố. Khi 123 đảo ngược cho thấy dấu hiệu quá mua quá bán, tạo ra tín hiệu đảo ngược, trong khi chỉ số biến động số nguyên tử cho thấy vẫn đang trong xu hướng, giao dịch đảo ngược trực tiếp có thể dẫn đến thua lỗ.
Để kiểm soát rủi ro này, chiến lược đã thêm logic phán đoán, chỉ tạo ra tín hiệu giao dịch thực tế khi hai tín hiệu yếu tố đồng bộ. Tuy nhiên, điều này cũng có thể bỏ lỡ một số cơ hội giao dịch.
Tối ưu hóa các tham số chỉ số Stochastic để tìm các tham số đảo ngược phù hợp hơn với các tham số cụ thể
Tối ưu hóa các tham số tỷ lệ phần trăm chênh lệch dung lượng của chỉ số dao động chất lượng, giảm giao dịch tiếng ồn
Tăng các chiến lược ngăn chặn thiệt hại để ngăn chặn sự gia tăng tổn thất một chiều
Thêm mô-đun quản lý vị trí, điều chỉnh vị trí trong các môi trường thị trường khác nhau
Tham gia mô hình học máy để đánh giá độ tin cậy tín hiệu hai yếu tố, giảm khả năng xung đột tín hiệu
Chiến lược này đã kết hợp thành công các yếu tố đảo ngược ngắn hạn với các yếu tố xu hướng dài hạn, để thực hiện giao dịch định lượng có rủi ro thấp. Sử dụng hiệu quả các giao dịch âm thanh lọc yếu tố kép, và thiết lập các rủi ro kiểm soát logic phán đoán bổ sung, là một chiến lược chiến đấu thực tế có thu nhập ổn định. Tiếp theo sẽ tiếp tục tối ưu hóa tham số và mở rộng chức năng để chiến lược phù hợp hơn với đặc điểm của thị trường thực tế.
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/04/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
// Determining market trends has become a science even though a high number or people
// still believe it’s a gambling game. Mathematicians, technicians, brokers and investors
// have worked together in developing quite several indicators to help them better understand
// and forecast market movements.
//
// Developed by Modulus Financial Engineering Inc., the prime number oscillator indicates the
// nearest prime number, be it at the top or the bottom of the series, and outlines the
// difference between that prime number and the respective series.
//
// 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
PrimeNumberOscillator(price, percent) =>
res = 0.0
res1 = 0.0
res2 = 0.0
for j = price to price + (price * percent / 100)
res1 := j
for i = 2 to sqrt(price)
res1 := iff(j % i == 0 , 0, j)
if res1 == 0
break
if res1 > 0
break
for j = price to price - (price * percent / 100)
res2 := j
for i = 2 to sqrt(price)
res2 := iff(j % i == 0 , 0, j)
if res2 == 0
break
if res2 > 0
break
res := iff(res1 - price < price - res2, res1 - price, res2 - price)
res := iff(res == 0, res[1], res)
res
PNO(percent) =>
pos = 0.0
xPNO = PrimeNumberOscillator(close, percent)
pos:= iff(xPNO > 0, 1,
iff(xPNO < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Prime Number Oscillator", 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, "---- Prime Number Oscillator ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNO = PNO(percent)
pos = iff(posReversal123 == 1 and posPNO == 1 , 1,
iff(posReversal123 == -1 and posPNO == -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 )