Band Bilangan Prima Backtest Strategi

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

img

Gambaran umum

Strategi backtest Prime Number Bands menilai tren pasar dengan mengidentifikasi bilangan prima tertinggi dan terendah di sekitar harga dan memetakan dua deret bilangan prima ini sebagai band.

Logika Strategi

  1. Melalui rentang fluktuasi harga yang ditentukan berdasarkan persentase toleransi input untuk menemukan bilangan prima tertinggi dan terendah.
  2. Gunakan fungsi tertinggi dan terendah untuk mendapatkan titik tertinggi dan terendah dari band bilangan prima di N bar terbaru.
  3. Tentukan arah panjang atau pendek berdasarkan apakah harga penutupan menembus titik tertinggi dan terendah dari pita bilangan prima.
  4. Dapat memilih untuk membalikkan sinyal perdagangan.

Analisis Keuntungan

  1. Menangkap keacakan pasar menggunakan karakteristik distribusi acak dan tidak teratur dari bilangan prima.
  2. Band bilangan prima memiliki keterlambatan tertentu, yang dapat menyaring beberapa kebisingan.
  3. Batas atas dan bawah pita bilangan prima fleksibel dan dapat disesuaikan melalui persentase toleransi untuk menyesuaikan diri dengan siklus yang berbeda dan varietas perdagangan yang berbeda.

Analisis Risiko

  1. Band bilangan prima tidak dapat sepenuhnya menyesuaikan pergerakan harga dan memiliki tingkat lag tertentu.
  2. Pembalikan harga karena ekstrem bisa menyebabkan sinyal yang salah.
  3. Pengaturan persentase toleransi yang berlebihan menyaring beberapa sinyal yang valid.

Risiko dapat dihindari dengan menyesuaikan parameter dengan benar, menggabungkan dengan indikator lain, dll.

Arahan Optimasi

  1. Atur dua kondisi untuk memicu sinyal dengan menggabungkan rata-rata bergerak sederhana dan indikator lainnya.
  2. Penelitian penggunaan angka acak lainnya seperti angka Fibonacci.
  3. Memperkenalkan algoritma pembelajaran mesin untuk mencapai optimasi parameter otomatis.

Ringkasan

Strategi backtest band bilangan prima secara keseluruhan adalah strategi yang sangat inovatif dengan nilai praktis. Ini menggunakan karakteristik bilangan prima untuk menangkap keacakan pasar sambil juga mempertimbangkan keterlambatan harga dalam mengidentifikasi tren, sangat berharga untuk penelitian. Langkah selanjutnya adalah mengoptimalkan dari aspek peningkatan kualitas sinyal, memperluas jenis bilangan acak, optimasi otomatis, dll untuk membuat efek 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 banyak