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


Ngày tạo: 2023-11-02 14:42:22 sửa đổi lần cuối: 2023-11-02 14:42:22
sao chép: 0 Số nhấp chuột: 797
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược này dựa trên chỉ số biến động số chất để đánh giá xu hướng thị trường và xây dựng vị trí dài và ngắn dựa trên đó. Chỉ số biến động số chất tính toán chênh lệch số chất gần nhất với giá gần giá, giá trị tích cực cho thấy xu hướng đa chiều, giá trị âm cho thấy xu hướng không. Chiến lược này có thể nắm bắt thông tin xu hướng ẩn trong khi biến động giá, có ý nghĩa hướng dẫn cho giao dịch đột phá.

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

Chiến lược này đầu tiên định nghĩa một hàm PrimeNumber Oscillator, nhập các tham số là giá và allowedPercent. Chức năng này sẽ tìm số nguyên gần nhất với giá trong phạm vi giá là tích cực và âm allowedPercent, và trả về sự chênh lệch của cả hai. Sự chênh lệch lớn hơn 0 cho thấy xu hướng đa đầu, nhỏ hơn 0 cho thấy xu hướng không đầu.

Sau đó, trong chiến lược, gọi hàm PrimeNumberOscillator để tính giá trị xPNO. XPNO định vị trí theo hướng dương và âm, nhân với ReverseFactor để xác định hướng giao dịch cuối cùng.

Chiến lược này chủ yếu dựa vào chỉ số biến động số nguyên để xác định xu hướng. Chỉ số này tự nó là thô hơn, cần kết hợp với các yếu tố khác để xác minh tín hiệu giao dịch. Nhưng nó dựa trên nguyên tắc toán học, 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 nguyên tắc toán học, tương đối khách quan
  • Có thể nhận ra xu hướng ẩn trong sự chấn động
  • Tính năng điều chỉnh linh hoạt, có thể tự do thiết lập độ nhạy
  • Đơn giản, dễ hiểu và tối ưu hóa

Phân tích rủi ro

  • Chỉ số dao động số lượng chất tự nó khá thô và có thể bị đánh giá sai nhiều lần
  • Cần xác thực kết hợp với các chỉ số kỹ thuật khác, không thể sử dụng một mình
  • Chọn các tham số một cách cẩn thận, quá lớn hoặc quá nhỏ sẽ không có tác dụng
  • Tần suất giao dịch có thể quá cao, cần kiểm soát quy mô vị trí

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

  • Các chỉ số có thể được lọc bằng các chỉ số như trung bình di chuyển, mua quá mức và bán quá mức.
  • Có thể thêm chiến lược dừng lỗ để giảm tổn thất đơn lẻ
  • Các tham số được cho phép có thể được điều chỉnh theo các biến động của thị trường
  • Có thể tối ưu hóa quản lý vị trí, kiểm soát kích thước vị trí thông qua các chỉ số như tỷ lệ biến động

Tóm tắt

Chiến lược này dựa trên nguyên tắc dao động số nguyên tố để đánh giá xu hướng, thực hiện đơn giản, logic rõ ràng. Tuy nhiên, dao động số nguyên tố tự nó có một số giới hạn, cần thận trọng. Có thể kiểm tra tín hiệu bằng cách kết hợp các chỉ số kỹ thuật khác để kiểm soát rủi ro giao dịch. Chiến lược này là đại diện điển hình của chiến lược giao dịch toán học, có giá trị tham khảo nhất định cho học tập và nghiên cứu.

Mã nguồn chiến lược
/*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)