Strategi Perdagangan Osilator Bilangan Prima

Penulis:ChaoZhang, Tarikh: 2023-11-02 14:42:22
Tag:

img

Ringkasan

Strategi ini menggunakan penunjuk Oscillator Nombor Utama untuk menentukan trend pasaran dan membina kedudukan panjang / pendek dengan sewajarnya. PNO mengira perbezaan antara nombor perdana terdekat dengan harga dan harga itu sendiri, dengan nilai positif yang menunjukkan trend menaik dan nilai negatif yang menunjukkan trend menurun. Strategi ini dapat menangkap maklumat trend tersembunyi semasa turun naik harga dan memberikan panduan untuk perdagangan pecah.

Logika Strategi

Strategi pertama menentukan fungsi PrimeNumberOscillator yang mengambil harga dan Peratusan yang dibenarkan sebagai parameter. Fungsi ini mencari nombor perdana terdekat dengan harga dalam julat Peratusan yang dibenarkan dan mengembalikan perbezaan mereka. Perbezaan positif menunjukkan kenaikan dan perbezaan negatif menunjukkan penurunan.

Dalam strategi, fungsi PrimeNumberOscillator dipanggil untuk mengira nilai xPNO. Arah kedudukan ditentukan oleh tanda xPNO dan dikalikan dengan ReverseFactor untuk mendapatkan arah perdagangan akhir. Posisi panjang / pendek dibuka berdasarkan arah.

Strategi ini terutamanya bergantung kepada penunjuk PNO untuk arah trend. Penunjuk itu sendiri agak mentah dan perlu digabungkan dengan faktor lain untuk pengesahan isyarat. Tetapi ia berdasarkan prinsip matematik dan boleh memberikan beberapa panduan objektif.

Analisis Kelebihan

  • Berdasarkan prinsip matematik, agak objektif
  • Boleh mengenal pasti trend tersembunyi dalam goyangan
  • Penyesuaian parameter yang fleksibel untuk pelarasan kepekaan
  • Mudah dilaksanakan, mudah difahami dan dioptimumkan

Analisis Risiko

  • PNO sendiri adalah kasar, terdedah kepada pelbagai isyarat palsu
  • Perlukan pengesahan dari penunjuk teknikal lain, tidak boleh digunakan sendiri
  • Pilihan parameter yang teliti diperlukan, terlalu besar atau kecil akan gagal
  • Frekuensi dagangan yang tinggi, kawalan keperluan saiz kedudukan

Arahan pengoptimuman

  • Tambah penapis seperti purata bergerak, RSI untuk pengesahan isyarat
  • Melaksanakan stop loss untuk mengehadkan risiko penurunan
  • Sesuaikan secara dinamik dibenarkanPeratusan berdasarkan keadaan pasaran
  • Mengoptimumkan saiz kedudukan melalui turun naik dan metrik lain

Kesimpulan

Strategi ini menentukan arah trend berdasarkan prinsip-prinsip goyangan nombor perdana, dengan logika dan pelaksanaan yang mudah. Tetapi PNO mempunyai batasan yang memerlukan penggunaan yang berhati-hati. Menggabungkan penunjuk teknikal lain untuk mengesahkan isyarat dan mengawal risiko diperlukan. Sebagai wakil khas strategi perdagangan matematik, ia mempunyai nilai rujukan untuk kajian dan penyelidikan.


/*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)

Lebih lanjut