Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch đảo ngược Golden Cross kép

Tác giả:ChaoZhang, Ngày: 2023-11-03 15:32:38
Tags:

img

Tổng quan

Chiến lược giao dịch đảo ngược chéo vàng kép là một chiến lược giao dịch kết hợp nhiều chỉ số phân tích kỹ thuật. Nó kết hợp chiến lược mô hình đảo ngược 123 và chỉ số dải số nguyên để tích hợp các tín hiệu giao dịch đa dạng và có được các tín hiệu giao dịch đáng tin cậy hơn.

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

Chiến lược bao gồm hai tiểu chiến lược:

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

    Nó tạo ra các tín hiệu giao dịch dựa trên giá đóng của cổ phiếu. Các tín hiệu được kích hoạt khi mối quan hệ giữa giá đóng của hai ngày liên tiếp thay đổi. Cụ thể, một tín hiệu ngắn được tạo ra khi giá đóng trước đó cao hơn giá đóng hai ngày trước, và giá đóng hiện tại thấp hơn ngày trước. Một tín hiệu dài được tạo ra khi giá đóng trước đó thấp hơn giá đóng hai ngày trước, và giá đóng hiện tại cao hơn ngày trước. Ngoài ra, các tín hiệu chỉ được kích hoạt khi dao động stochastic vượt qua.

  2. Chiến lược dải số nguyên tố

    Chiến lược này sử dụng sự phân bố độc đáo của các số nguyên tố để xác định phạm vi biến động giá. Nó đầu tiên xác định vị trí các số nguyên tố cao nhất và thấp nhất trong phạm vi tỷ lệ phần trăm nhất định của giá, và vẽ hai chuỗi số nguyên tố như các dải. Các tín hiệu giao dịch được tạo ra khi giá chạm vào các dải. Cụ thể, tín hiệu dài được kích hoạt khi giá vượt qua dải trên. Một tín hiệu ngắn được kích hoạt khi giá vượt qua dải dưới.

Hai chiến lược phụ được kết hợp để tạo ra các tín hiệu giao dịch cuối cùng. nghĩa là, tín hiệu dài chỉ được tạo ra khi cả hai chiến lược tạo ra tín hiệu dài. Tương tự đối với các tín hiệu ngắn. Không có giao dịch được thực hiện nếu các tín hiệu từ hai chiến lược mâu thuẫn với nhau.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Tăng lợi nhuận thông qua tích hợp tín hiệu

    Bằng cách kết hợp các tín hiệu từ hai loại chiến lược khác nhau, độ tin cậy của các tín hiệu có thể được xác minh để xác định các cơ hội giao dịch có lợi nhuận có khả năng cao.

  2. Tỷ lệ thắng cao của 123 mô hình đảo ngược

    Mô hình đảo ngược 123 là một chiến lược ngược cổ điển có thể nắm bắt các cơ hội đảo ngược phát sinh từ các tình huống mua quá nhiều và bán quá nhiều ngắn hạn, do đó có tỷ lệ thắng tương đối cao trong giao dịch trực tiếp.

  3. Phạm vi số nguyên tố ghi lại các mô hình giá

    Các dải số nguyên tố sử dụng tính ngẫu nhiên duy nhất của số nguyên tố để xác định phạm vi biến động giá, tránh thiên vị chủ quan và tăng tính khách quan của tín hiệu giao dịch.

  4. Logic chiến lược mới tránh khai thác

    Sự tích hợp sáng tạo của nhiều chỉ số làm cho chiến lược ít dễ bị kỹ thuật ngược và khai thác bởi các chiến lược bắt chước.

Phân tích rủi ro

Chiến lược cũng mang những rủi ro sau:

  1. Rủi ro đảo ngược thất bại

    Là một chiến lược đảo ngược, sự đảo ngược thất bại của mô hình 123 có thể dẫn đến tổn thất.

  2. Sự thất bại của các dải số nguyên tố

    Các dải số nguyên tố phụ thuộc vào việc điều chỉnh tham số đúng. Các tham số không chính xác có thể làm cho nó không hiệu quả.

  3. Tăng tần suất giao dịch từ nhiều tín hiệu

    Nhiều giao dịch có thể được tạo ra khi hai nguồn tín hiệu được kết hợp. Chi phí giao dịch quá mức có thể làm xói mòn lợi nhuận nếu không được kiểm soát đúng cách.

  4. Tối ưu hóa khó

    Tối ưu hóa các tham số từ hai chiến lược tích hợp có thể là một thách thức.

Các đề xuất tối ưu hóa

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Đặt giới hạn stop loss cho mỗi lỗ giao dịch.

  2. Tối ưu hóa các thông số dải số nguyên tố để phù hợp với các điều kiện thị trường mới nhất.

  3. Kiểm soát tần suất giao dịch để tránh chi phí giao dịch do giao dịch quá mức.

  4. Đưa ra các thuật toán học máy để tự động hóa tối ưu hóa tham số chiến lược.

  5. Thêm nhiều chỉ số xác nhận như chỉ số âm lượng để cải thiện thêm độ chính xác tín hiệu.

Tóm lại

Chiến lược giao dịch đảo ngược chéo vàng kép tích hợp nhiều chỉ số kỹ thuật để lọc các giao dịch tiếng ồn và xác định các cơ hội giao dịch có khả năng cao thông qua xác minh tín hiệu.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/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.
// The Prime Number Bands indicator was developed by Modulus Financial Engineering 
// Inc. This indicator is charted by indentifying the highest and lowest prime number 
// in the neighborhood and plotting the two series as a band.
//
// 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

PrimeNumberUpBand(price, percent) =>
    res = 0.0
    res1 = 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
    res := iff(res1 == 0, res[1], res1)
    res

PrimeNumberDnBand(price, percent) =>
    res = 0.0
    res2 = 0.0
    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(res2 == 0, res[1], res2)
    res

PNB(percent, Length,srcUp,srcDn) =>
    pos = 0.0
    xPNUB = PrimeNumberUpBand(srcUp, percent)
    xPNDB = PrimeNumberDnBand(srcDn, percent)
    xHighestPNUB = highest(xPNUB, Length)
    xLowestPNUB = lowest(xPNDB, Length)
    pos:= iff(close > xHighestPNUB[1], 1,
             iff(close < xLowestPNUB[1], -1, nz(pos[1], 0))) 
    pos


strategy(title="Combo Backtest 123 Reversal & Prime Number 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, "---- Prime Number Bands ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
Length_PNB = input(5, minval=1)
srcUp = input(title="Source Up Band", type=input.source, defval=high)
srcDn = input(title="Source Down Band", type=input.source, defval=low)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNB = PNB(percent, Length_PNB,srcUp,srcDn)
pos = iff(posReversal123 == 1 and posPNB == 1 , 1,
	   iff(posReversal123 == -1 and posPNB == -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