Strategi Penjejakan Dua Pusingan


Tarikh penciptaan: 2023-12-01 15:36:34 Akhirnya diubah suai: 2023-12-01 15:36:34
Salin: 0 Bilangan klik: 566
1
fokus pada
1619
Pengikut

Strategi Penjejakan Dua Pusingan

Gambaran keseluruhan

Strategi pengesanan putaran dua kali menghasilkan isyarat perdagangan dengan mengesan titik putaran dua kali harga. Strategi ini memasuki posisi kosong apabila harga membentuk titik tinggi baru; strategi ini memasuki posisi banyak apabila harga membentuk titik rendah baru. Pengesanan masa nyata titik putaran harga ini dapat menangkap perubahan momentum pasaran tepat pada masanya.

Prinsip Strategi

Strategi pengesanan putaran ganda menggunakan dua bentuk penilaian untuk menghasilkan isyarat perdagangan, termasuk bentuk putaran beli tinggi ((HHS) dan bentuk putaran jual rendah ((LLB) . Rumus penghakiman adalah seperti berikut:

  1. HHS: hampir[0] < close[1] dan high[0] > high[1]
  2. Bentuk LLB: close[0] > close[1] dan low[0] < low[1]

Apabila syarat-syarat di atas dipenuhi, bar indeks dan harga HHS dan LLB akan dibuat secara berasingan. Kemudian, strategi akan memantau secara langsung sama ada harga telah memecahkan rekod harga belokan. Apabila harga menembusi HHS tinggi belokan, menunjukkan bahawa model harga telah berbalik ke arah turun, strategi akan membuka kedudukan kosong; sebaliknya, apabila harga menembusi LLB rendah belokan, menunjukkan bahawa model harga telah berbalik ke arah naik, strategi akan membuka banyak kedudukan. Dengan cara ini, strategi pengesanan belokan berganda dapat menangkap peluang belokan harga secara dinamik.

Strategi ini juga berfungsi untuk menunjukkan bentuk HHS, LLB dan penembusan harga dengan menggambar tanda dan warna. Ini sangat membantu untuk menilai corak pasaran secara intuitif dan mengesahkan strategi berfungsi.

Analisis kelebihan

Strategi pengesanan dua kali ganda mempunyai kelebihan berikut:

  1. Mengesan perubahan harga dalam masa nyata, anda dapat menangkap peluang perubahan pasaran dengan cepat. Strategi ini bertindak balas lebih cepat daripada strategi lain yang mengesan indikator seperti purata bergerak.

  2. Penggunaan ciri-ciri peralihan harga itu sendiri menghasilkan isyarat dagangan, tanpa terlalu banyak parameter yang memerlukan penyesuaian optimum, pelaksanaan mudah dan langsung.

  3. Menggambar tanda bentuk dan tanda penembusan, menjadikan proses operasi strategi visual, dan mengesahkan keberkesanan strategi dengan mudah.

  4. Strategi pelaksanaan tidak banyak kod, mudah difahami dan dikembangkan. Ia boleh dipelajari sebagai strategi permulaan untuk perdagangan kuantitatif.

Secara keseluruhannya, strategi double turn tracking adalah agak mudah, tetapi ia berkesan untuk menangkap harga yang berbalik dan patut digunakan sebagai strategi jenis tracking yang cepat.

Analisis risiko

Strategi pengesanan balik berganda juga mempunyai beberapa risiko, terutamanya:

  1. Penghakiman harga berbalik bergantung pada maklumat satu titik, kemungkinan kesalahan penghakiman yang lebih besar. Anda boleh menetapkan nilai terendah yang berkesan untuk mengesan nilai terendah untuk mengurangkan kemungkinan kesalahan penghakiman.

  2. Tanpa mengambil kira trend harga peringkat besar, isyarat kosong yang salah masih boleh dihasilkan dalam gelombang utama. Anda boleh memasukkan penapis trend untuk mengelakkan risiko seperti itu.

  3. Tidak ada mekanisme penangguhan kerugian untuk mengawal kerugian tunggal. Strategi penangguhan kerugian yang munasabah perlu ditetapkan di dalam ruang nyata, untuk mengawal kerugian tunggal dalam lingkungan yang boleh diterima.

  4. Data tinjauan mempunyai penyimpangan pengoptimuman, dan prestasi cakera mungkin lebih lemah daripada hasil tinjauan semula.

Secara keseluruhannya, strategi ini adalah strategi pembalikan kelas yang cepat, mudah dilaksanakan, tetapi terdapat risiko kesalahan dengan kebarangkalian tertentu. Dengan menambahkan modul seperti penapisan trend, strategi hentikan kerugian, risiko dapat dikurangkan dengan berkesan, menjadikannya strategi yang stabil dan boleh dipercayai.

Arah pengoptimuman

Strategi ini boleh dioptimumkan untuk mengurangkan kebarangkalian kesalahan dan meningkatkan kestabilan:

  1. Menambah harga yang berkesan untuk penembusan ditentukan, jika harga yang diminta jatuh di bawah titik tinggi peralihan pada peratusan tertentu, maka ia akan dibuka.

  2. Menambah modul penilaian trend peringkat besar, untuk mengelakkan kesalahan kosong dalam gelombang utama. Anda boleh menggunakan indikator penilaian trend seperti purata bergerak indeks.

  3. Menambah strategi hentikan kerugian, seperti hentikan pengesanan, hentikan jarak, dan lain-lain, untuk mengawal kerugian tunggal dalam had tertentu.

  4. Algoritma kedudukan optimum, boleh menyesuaikan saiz kedudukan mengikut kadar turun naik pasaran, mengurangkan kedudukan tunggal apabila turun naik tinggi.

  5. Uji data cakera dalam jangka masa yang lebih lama, menilai kestabilan parameter, dan melakukan pengoptimuman berulang.

Dengan penyesuaian optimum dalam beberapa arah di atas, prestasi dan kestabilan strategi ini dapat ditingkatkan dengan ketara.

ringkaskan

Strategi pengesanan berganda untuk menangkap peluang berbalik dengan memantau titik-titik perubahan harga dalam masa nyata. Ia mudah difahami, dilaksanakan secara langsung, dan dapat membuka kedudukan yang berbalik dengan cepat. Tetapi strategi ini juga mempunyai risiko kesalahan penghakiman dengan kebarangkalian tertentu. Dengan menambahkan modul seperti penghakiman trend, strategi henti rugi, dan mengoptimumkan parameter, kemungkinan kesalahan penghakiman dapat dikurangkan dengan berkesan, menjadikannya strategi perdagangan sebenar yang stabil dan cekap.

Kod sumber strategi
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Rev. FO", shorttitle="Rev. FO", overlay=true, pyramiding=0,calc_on_order_fills=true,calc_on_every_tick=true,default_qty_type=strategy.percent_of_equity,default_qty_value=50,initial_capital=1000,currency="USD",commission_type=strategy.commission.percent,commission_value=0.2,process_orders_on_close=false)

HHS = close[0] < close[1] and high[0] > high[1]
LLB = close[0] > close[1] and low[0] < low[1]

var trade_long = false
var text_status = "Awaiting Trade..."
var index_hhs = 0
var index_llb = 0
var price_hhs = 0.0
var price_llb = 0.0

if (HHS)
    trade_long := false
    text_status := "Trade in Short"
    index_hhs := bar_index
    price_hhs := high
if (LLB)
    trade_long := true
    text_status := "Trade in Long"
    index_llb := bar_index
    price_llb := low

plotshape(HHS, style=shape.labeldown, title="HHS", location=location.abovebar, color=color.red, text="HHS", textcolor=color.white,size=size.tiny)
plotshape(LLB, style=shape.labelup, title="LLB", location=location.belowbar, color=color.white, text="LLB", textcolor=color.white,size=size.tiny)

// HHS_top = line.new(index_hhs-1,price_hhs,bar_index,price_hhs,extend=extend.right,style=line.style_solid,width=1,color=color.red)
// LLB_bot = line.new(index_llb-1,price_llb,bar_index,price_llb,extend=extend.right,style=line.style_solid,width=1,color=color.white)
// line.delete(HHS_top[1])
// line.delete(LLB_bot[1])

//Calculates how far the signal is painted to right. 
hours = 5
lapos_x = timenow+1000*60*60*hours
lapos_y = highest(20)

// lb = label.new(lapos_x, lapos_y, text=text_status,color=trade_long?color.white:color.red,xloc = xloc.bar_time,style=label.style_diamond,textcolor=trade_long?color.white:color.red,size=size.small)
// label.delete(lb[1])

breakout_hhs = crossover(high,price_hhs)
breakout_llb = crossunder(low,price_llb)

bgcolor(breakout_hhs?color.lime:na,transp=50,title="BO HHS")
bgcolor(breakout_llb?color.maroon:na,transp=50,title="BO LLB")

long_condition = breakout_hhs
long_close = close < price_hhs or breakout_llb
short_condition = breakout_llb
short_close = close > price_llb or breakout_hhs

strategy.entry(id="long",long=true,comment="L",when=long_condition)
strategy.close(id="long",when=long_close)
strategy.entry(id="short",long=false,comment="S",when=short_condition)
strategy.close(id="short",when=short_close)