Chiến lược giao dịch dao động số nguyên tố

Tác giả:ChaoZhang, Ngày: 2023-11-02 14:42:22
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số Trình dao động số chính để xác định xu hướng thị trường và xây dựng các vị trí dài / ngắn phù hợp. PNO tính toán sự khác biệt giữa số chính gần nhất với giá và chính giá, với các giá trị dương cho thấy xu hướng tăng và các giá trị âm cho thấy xu hướng giảm. Chiến lược có thể nắm bắt thông tin xu hướng ẩn trong các dao động giá và cung cấp hướng dẫn cho giao dịch đột phá.

Chiến lược logic

Chiến lược đầu tiên xác định một hàm PrimeNumberOscillator lấy giá và allowedPercent làm tham số. Chức năng tìm kiếm số nguyên tố gần nhất với giá trong phạm vi allowedPercent và trả về sự khác biệt của chúng. Sự khác biệt dương cho thấy tăng và sự khác biệt âm cho thấy giảm.

Trong chiến lược, chức năng PrimeNumberOscillator được gọi để tính toán giá trị xPNO. Hướng của vị trí được xác định bởi dấu hiệu xPNO và nhân với ReverseFactor để có được hướng giao dịch cuối cùng. Các vị trí dài / ngắn được mở dựa trên hướng.

Chiến lược này chủ yếu dựa trên chỉ số PNO cho hướng xu hướng. Chỉ số chính nó khá thô và cần được kết hợp với các yếu tố khác để xác minh tín hiệu. Nhưng nó dựa trên các nguyên tắc toán học và có thể cung cấp một số hướng dẫn khách quan.

Phân tích lợi thế

  • Dựa trên các nguyên tắc toán học, tương đối khách quan
  • Có thể xác định xu hướng ẩn trong dao động
  • Điều chỉnh tham số linh hoạt để điều chỉnh độ nhạy
  • Dễ thực hiện, dễ hiểu và tối ưu hóa

Phân tích rủi ro

  • Bản thân PNO là thô, dễ bị nhiều tín hiệu sai
  • Cần xác minh từ các chỉ số kỹ thuật khác, không thể sử dụng một mình
  • Chọn tham số cẩn thận cần thiết, quá lớn hoặc nhỏ sẽ thất bại
  • Tần suất giao dịch cao, cần kiểm soát kích thước vị trí

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

  • Thêm bộ lọc như trung bình động, RSI để xác minh tín hiệu
  • Thực hiện lệnh dừng lỗ để hạn chế rủi ro giảm
  • Điều chỉnh năng động được phépPhần trăm dựa trên điều kiện thị trường
  • Tối ưu hóa kích thước vị trí thông qua biến động và các số liệu khác

Kết luận

Chiến lược xác định hướng xu hướng dựa trên các nguyên tắc dao động số nguyên tố, với logic và thực hiện đơn giản. Nhưng PNO có những hạn chế đòi hỏi phải sử dụng cẩn thận. Kết hợp các chỉ số kỹ thuật khác để xác minh tín hiệu và kiểm soát rủi ro là cần thiết. Là một đại diện điển hình của các chiến lược giao dịch toán học, nó có giá trị tham chiếu cho nghiên cứu và nghiên cứu.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/2018
// 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.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
PrimeNumberOscillator(price, percent) =>
    res = 0
    res1 = 0
    res2 = 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
    
strategy(title="Prime Number Oscillator Backtest")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
xPNO = PrimeNumberOscillator(close, percent)
pos = iff(xPNO > 0, 1,
       iff(xPNO < 0, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
clr = iff(xPNO > 0, green, red)
p1 = plot(xPNO, color=blue, title="KPO")
p2 = plot(0, color=black, title="0")
fill(p1,p2,color=clr)

Thêm nữa