Strategi perdagangan osilator bilangan prima

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

img

Gambaran umum

Strategi ini menggunakan indikator Prime Number Oscillator untuk menentukan tren pasar dan membangun posisi panjang/pendek sesuai dengan itu. PNO menghitung perbedaan antara nomor prima terdekat dengan harga dan harga itu sendiri, dengan nilai positif menunjukkan tren bullish dan nilai negatif menunjukkan tren bearish. Strategi dapat menangkap informasi tren tersembunyi selama osilasi harga dan memberikan panduan untuk perdagangan breakout.

Logika Strategi

Strategi ini pertama-tama mendefinisikan fungsi PrimeNumberOscillator yang mengambil harga dan allowedPercent sebagai parameter. Fungsi ini mencari nomor prima terdekat dengan harga dalam kisaran Percent yang diizinkan dan mengembalikan perbedaannya. Perbedaan positif menunjukkan bullish dan perbedaan negatif menunjukkan bearish.

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

Strategi ini terutama bergantung pada indikator PNO untuk arah tren. Indikator itu sendiri cukup mentah dan perlu dikombinasikan dengan faktor lain untuk verifikasi sinyal.

Analisis Keuntungan

  • Berdasarkan prinsip matematika, relatif obyektif
  • Dapat mengidentifikasi tren tersembunyi dalam osilasi
  • Pengaturan parameter yang fleksibel untuk penyesuaian sensitivitas
  • Mudah diterapkan, mudah dipahami dan dioptimalkan

Analisis Risiko

  • PNO itu sendiri mentah, rentan terhadap beberapa sinyal palsu
  • Butuh verifikasi dari indikator teknis lainnya, tidak dapat digunakan sendiri
  • Pilihan parameter yang cermat diperlukan, terlalu besar atau kecil akan gagal
  • Frekuensi perdagangan yang tinggi, pengendalian kebutuhan ukuran posisi

Arahan Optimasi

  • Tambahkan filter seperti rata-rata bergerak, RSI untuk verifikasi sinyal
  • Mengimplementasikan stop loss untuk membatasi risiko penurunan
  • Diizinkan menyesuaikan secara dinamis Persentase berdasarkan kondisi pasar
  • Mengoptimalkan ukuran posisi melalui volatilitas dan metrik lainnya

Kesimpulan

Strategi ini menentukan arah tren berdasarkan prinsip osilasi bilangan prima, dengan logika dan implementasi yang sederhana. namun PNO memiliki keterbatasan yang membutuhkan penggunaan yang berhati-hati. menggabungkan indikator teknis lainnya untuk memverifikasi sinyal dan mengendalikan risiko diperlukan. sebagai perwakilan khas strategi perdagangan matematika, ia memiliki nilai referensi untuk studi dan penelitian.


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