Strategi regresi berasaskan pecahan


Tarikh penciptaan: 2024-03-01 11:58:56 Akhirnya diubah suai: 2024-03-01 11:58:56
Salin: 2 Bilangan klik: 651
1
fokus pada
1617
Pengikut

Strategi regresi berasaskan pecahan

Gambaran keseluruhan

Strategi ini adalah kaedah sistematik yang bertujuan untuk memanfaatkan turun naik dalam pasaran niaga hadapan minyak mentah. Ia mengukur julat purata kelab yang lebih besar jika rata-rata bergerak cepat lebih tinggi daripada rata-rata bergerak perlahan, dan lebih kecil jika rata-rata bergerak perlahan lebih tinggi daripada rata-rata bergerak cepat.

Mengikut prinsip ini, untuk mengenal pasti titik masuk yang panjang dan titik masuk yang pendek. Posisi hanya mengekalkan jumlah batang tertentu, parameter ini dikawal oleh input batang Exit after bars.

Prinsip Strategi

  1. Hitung harga penutupan tertinggi bagi 9 baris K terkini sebagai kriteria untuk menilai penembusan
  2. Hitung harga penutupan minimum 50 baris K terkini sebagai kriteria untuk menilai penembusan
  3. Mengira perbandingan purata gelombang antara 5 dan 20 garis K terkini untuk menentukan apakah bentuk K semakin meluas atau semakin kecil
  4. Kenali tanda-tanda penembusan garis panjang dan garis pendek: apabila harga penutupan sama dengan harga penutupan tertinggi dan garis K semakin berkurangan, buat lebih banyak; apabila harga penutupan sama dengan harga penutupan terendah dan garis K semakin berkurangan, buat kosong
  5. Kaki tetap K keluar dari kedudukan rata: parameter boleh disesuaikan untuk mengubah selang kedudukan rata

Analisis kelebihan

  1. Strategi kemerosotan, menilai arah pasaran melalui perbandingan dengan paras tertinggi sejarah
  2. Penghakiman yang tidak menentu dapat mengelakkan penembusan palsu
  3. Garis K yang tetap keluar, boleh mengunci keuntungan tertentu, mengelakkan penarikan balik

Analisis risiko

  1. Nilai teratas bersejarah berubah mengikut struktur pasaran yang berubah dan mungkin menyebabkan kegagalan isyarat
  2. Penembusan palsu membawa kepada penjara
  3. Parameter jarak jauh yang tidak betul, mungkin kehilangan keuntungan yang lebih besar atau meningkatkan kerugian

Arah pengoptimuman

  1. Parameter nilai teratas boleh dioptimumkan melalui statistik praktikal
  2. Indeks kadar turun naik yang boleh dimasukkan untuk menilai kebarangkalian sebenar penembusan
  3. Kaedah untuk mengoptimumkan hasil pengukuran balik

ringkaskan

Strategi ini menggunakan penembusan dan pengembalian untuk menilai trend jangka pendek, termasuk strategi turun naik. Dengan menetapkan parameter yang dioptimumkan dan penambahan penunjuk kadar turun naik, anda dapat mengurangkan kebarangkalian penembusan palsu dan meningkatkan tahap keuntungan. Pada masa yang sama, mekanisme keluar cepat dari garis K akar tetap dapat mengunci keuntungan tertentu dan mengawal risiko dengan berkesan.

Kod sumber strategi
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Celestial_Logic

//@version=5
strategy("Crudeoil Breakout strategy", overlay = true, initial_capital = 20000, default_qty_type = strategy.fixed, default_qty_value = 1)


highestCloseLookback = input(9 , title = 'Highest Close lookback')
lowestCloseLookback  = input(50, title = 'Lowest Close lookback'  ) 

exitAfter = input(10, title = 'Exit after bars')

hc = ta.highest(close,highestCloseLookback)
lc = ta.lowest(close,lowestCloseLookback)

rangeFilter = (ta.sma( (high - low), 5 ) > ta.sma((high-low), 20) ) // Candles getting bigger.

longCondition  = (close == hc ) and not rangeFilter
shortCondition = (close == lc ) and not rangeFilter
if  longCondition
    strategy.entry(id = 'long', direction = strategy.long) 
if shortCondition
    strategy.entry(id = 'short', direction = strategy.short)



var int longsince = 0 
var int shortsince = 0 

if strategy.position_size > 0 
    longsince += 1
else
    longsince := 0

if strategy.position_size < 0 
    shortsince += 1 
else 
    shortsince := 0

if longsince >= exitAfter 
    strategy.close(id = 'long', comment = 'long close')
if shortsince >= exitAfter
    strategy.close(id = 'short', comment = 'short close')