Band Bilangan Prima Backtest Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-08 11:54:52
Tag:

img

Ringkasan

Strategi backtest Band nombor perdana menilai trend pasaran dengan mengenal pasti nombor perdana tertinggi dan terendah di sekitar harga dan merangka kedua-dua siri nombor perdana ini sebagai band.

Logika Strategi

  1. Melalui julat fluktuasi harga yang ditentukan berdasarkan peratusan toleransi input untuk mencari nombor perdana tertinggi dan terendah.
  2. Gunakan fungsi tertinggi dan terendah untuk mendapatkan titik tertinggi dan terendah dalam bar N yang paling baru.
  3. Tentukan arah panjang atau pendek berdasarkan sama ada harga penutupan menembusi titik tertinggi dan terendah jalur nombor perdana.
  4. Boleh memilih untuk membalikkan isyarat perdagangan.

Analisis Kelebihan

  1. Mengambil rawak pasaran menggunakan ciri-ciri pembahagian rawak dan tidak teratur nombor perdana.
  2. Band nombor perdana mempunyai kelewatan tertentu, yang boleh menapis beberapa bunyi bising.
  3. Batas atas dan bawah jalur nombor perdana adalah fleksibel dan boleh diselaraskan melalui peratusan toleransi untuk menyesuaikan diri dengan kitaran yang berbeza dan jenis perdagangan yang berbeza.

Analisis Risiko

  1. Band nombor perdana tidak dapat sepenuhnya menyesuaikan pergerakan harga dan mempunyai tahap kelewatan tertentu.
  2. Pembalikan harga disebabkan oleh melampau boleh membawa kepada isyarat yang salah.
  3. Tetapan peratusan toleransi yang berlebihan menapis beberapa isyarat yang sah.

Risiko boleh dielakkan dengan menyesuaikan parameter dengan betul, menggabungkan dengan penunjuk lain, dll.

Arahan pengoptimuman

  1. Tetapkan dua keadaan untuk mencetuskan isyarat dengan menggabungkan purata bergerak mudah dan penunjuk lain.
  2. Penyelidikan penggunaan nombor rawak lain seperti nombor Fibonacci.
  3. Memperkenalkan algoritma pembelajaran mesin untuk mencapai pengoptimuman parameter automatik.

Ringkasan

Strategi uji balik band nombor perdana secara keseluruhan adalah strategi yang sangat inovatif dengan nilai praktikal. Ia menggunakan ciri-ciri nombor perdana untuk menangkap rawak pasaran sambil juga mempertimbangkan ketinggalan harga dalam mengenal pasti trend, sangat berharga untuk penyelidikan. Langkah seterusnya adalah untuk mengoptimumkan dari aspek meningkatkan kualiti isyarat, memperluaskan jenis nombor rawak, pengoptimuman automatik, dll. untuk menjadikan kesan strategi lebih luar biasa.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/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.
// 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.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
PrimeNumberUpBand(price, percent) =>
    res = 0
    res1 = 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
    res2 = 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

strategy(title="Prime Number Bands Backtest", overlay = true)
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
Length = input(5, minval=1)
srcUp = input(title="Source Up Band",  defval=high)
srcDn = input(title="Source Down Band",  defval=low)
reverse = input(false, title="Trade reverse")
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))) 
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 ) 
plot(xHighestPNUB, color=red, title="PNUp")
plot(xLowestPNUB, color=green, title="PNDn")

Lebih lanjut