Strategi penembusan berdasarkan Kaedah Perdagangan Penyu


Tarikh penciptaan: 2023-10-17 17:22:34 Akhirnya diubah suai: 2023-10-17 17:22:34
Salin: 2 Bilangan klik: 920
1
fokus pada
1617
Pengikut

Strategi penembusan berdasarkan Kaedah Perdagangan Penyu

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada strategi perdagangan ikan laut yang terkenal, menggunakan petunjuk saluran Donchian untuk menentukan harga yang pecah, dan digabungkan dengan penunjuk ATR untuk menetapkan titik berhenti, untuk mengikuti trend. Kelebihan strategi ini adalah keupayaan kawalan penarikan balik yang kuat, yang dapat mengawal hentian tunggal dengan berkesan, mengurangkan kebarangkalian kerugian berturut-turut. Tetapi strategi ini kurang sesuai untuk jenis perdagangan, memerlukan parameter saluran yang dioptimumkan.

Prinsip

Strategi ini berdasarkan kepada dua petunjuk: saluran Donchian dan ATR.

Saluran Donchian dikira dari harga tertinggi dan terendah. Strategi menetapkan saluran secara lalai untuk 20 hari, dengan harga tertinggi dan terendah dalam tempoh 20 hari. Apabila harga menembusi saluran di atas, ia menghasilkan isyarat beli; apabila harga menembusi saluran di bawah, ia menghasilkan isyarat jual.

Indeks ATR digunakan untuk mengukur tahap turun naik pasaran dan menetapkan stop loss. Secara lalai, kitaran ATR ditetapkan pada 20 hari. Strategi menggunakan dua kali ganda ATR sebagai stop loss.

Logik urus niaga adalah seperti berikut:

  1. Apabila harga menembusi saluran, masuk lebih banyak.

  2. Stop loss ialah titik rendah semasa masuk dikurangkan dua kali ATR.

  3. Apabila harga menembusi saluran bawah, anda boleh meletakkan lebih banyak kedudukan.

  4. Apabila harga menembusi saluran bawah, masuklah secara kosong.

  5. Stop loss adalah titik tertinggi semasa masuk ditambah dua kali ganda ATR.

  6. Apabila harga menembusi saluran di atas, kedudukan teratas kosong.

Secara keseluruhannya, strategi ini bergantung kepada saluran Donchian untuk menentukan arah trend dan masa masuk, dan mengawal risiko dengan menetapkan ATR untuk menghentikan kerugian, untuk menjejaki trend.

Analisis kelebihan

Strategi ini mempunyai kelebihan utama:

  1. Kawalan penarikan balik yang kuat. Menggunakan indikator ATR untuk menetapkan hentian, anda boleh mengawal kerugian tunggal dengan berkesan.

  2. Mengikut trend. Saluran Donchian dapat menilai harga yang pecah dan menunjukkan perubahan trend.

  3. Sesuai untuk varieti yang berfluktuasi tinggi. Indeks ATR mengambil kira turun naik pasaran, dan menetapkan stop loss lebih sesuai dengan ciri-ciri varieti yang berbeza.

  4. Strategi ini mudah difahami dan diimplementasikan.

  5. Strategi penulisan dan pengoptimuman yang fleksibel dalam bahasa Python.

Analisis risiko

Strategi ini juga mempunyai beberapa risiko yang perlu diperhatikan:

  1. Parameter saluran perlu dioptimumkan. Di bawah pelbagai jenis dan tempoh masa, parameter saluran perlu disesuaikan untuk menyesuaikan diri dengan ciri-ciri pasaran.

  2. Risiko Hentikan Kerosakan Berterusan. Dalam keadaan yang tidak biasa, ia mungkin mencetuskan beberapa hentikan dalam jangka masa yang singkat, menyebabkan kerugian yang lebih besar.

  3. Parameter ATR perlu diuji. Parameter ATR secara langsung mempengaruhi kesan hentikan, dan perlu disesuaikan dengan pelbagai jenis dan persekitaran yang bergelombang.

  4. Frekuensi dagangan mungkin terlalu tinggi. Dalam pasaran goyah yang tidak menunjukkan trend, mungkin terdapat terlalu banyak isyarat silang.

  5. Keuntungan mungkin terhad. Strategi tertumpu pada hentian kerugian tidak dapat menangkap sepenuhnya kenaikan tren.

  6. Penghentian mungkin tidak mencukupi dalam keadaan yang berlebihan. Dalam beberapa keadaan yang luar biasa, kenaikan harga boleh mencetuskan penghentian secara langsung.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Mengoptimumkan parameter saluran, menguji kesesuaian parameter yang berbeza dengan pelbagai jenis.

  2. Menambah syarat penapisan untuk mengelakkan terlalu banyak isyarat dalam keadaan gegaran. Penapisan Breakout atau Volume boleh dipertimbangkan.

  3. Mengoptimumkan parameter kitaran ATR, menguji kesan parameter yang berbeza terhadap kesan hentikan kerugian.

  4. Menambah strategi masuk piramid, menambah kedudukan dalam keadaan trend, dan memperluaskan ruang keuntungan.

  5. Gabungan dengan penunjuk lain untuk meningkatkan kesan penapisan. Sebagai contoh, penunjuk MACD, KD dan lain-lain untuk menilai trend dan mengelakkan perdagangan terbalik.

  6. Mengoptimumkan titik hentian berdasarkan kos transaksi seperti slippage, yuran, dan lain-lain.

  7. Uji kesesuaian pelbagai jenis, menyesuaikan parameter untuk jenis tertentu.

ringkaskan

Strategi ini adalah versi permulaan untuk kaedah perdagangan laut, secara keseluruhan, strategi ini mudah dan jelas, dan mempunyai kawalan penarikan balik yang kuat, yang dapat mengesahkan prinsip perdagangan laut. Tetapi, strategi ini kurang sesuai dengan jenis perdagangan, dan perlu mengoptimumkan parameter khusus mengikut jenis perdagangan yang berbeza, untuk memberi kesan kepada strategi. Dengan pengoptimuman parameter, peningkatan syarat penapisan dan lain-lain, strategi ini boleh menjadi salah satu strategi pengesanan trend asas untuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x
// initial version considerations :
//// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) 
//// 2. Does not consider pyramiding (aditional entries after 1N price movements)

strategy("Turtle trading strategy (Donchian/ATR)", overlay=true)

enter_period = input(20, minval=1, title="Enter Channel")
exit_period = input(10, minval=1, title="Exit Channel")
offset_bar = input(0,minval=0, title ="Offset Bars")
direction = input("Long",options=["Long","Short"],title="Direction")
max_length = max(enter_period,exit_period)
atrmult = input(2,title="ATR multiplier (Stop Loss)")
atrperiod = input(20,title="ATR Period")

closed_pos = false
dir_long = direction == "Long"? true : false
atr = atr(atrperiod)
upper = dir_long ? highest(enter_period): highest(exit_period)
lower = dir_long ? lowest(exit_period): lowest(enter_period)
atrupper = close + atr
atrlower = close - atr
plotted_atr = dir_long ? atrlower : atrupper

//basis = avg(upper, lower)

l = plot(lower, style=line, linewidth=3, color=lime, offset=1)
u = plot(upper, style=line, linewidth=3, color=lime, offset=1)
a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1)
//plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
//break upper Donchian (with 1 candle offset) (buy signal)
break_up = (close >= upper[1])
//break lower Donchian (with 1 candle offset) (sell signal)
break_down = (close <= lower[1])
stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1])

if break_up and dir_long
    strategy.entry("buy", strategy.long, 1)
    closed_pos :=false
if (break_down or stop_loss) and dir_long
    strategy.close("buy")
    
if break_down and not dir_long
    strategy.entry("sell", strategy.short, 1)
    closed_pos :=false
if (break_up or stop_loss) and not dir_long
    strategy.close("sell")
    closed_pos :=true
    
losing_trade = strategy.equity[0]<strategy.equity[1]
//plotshape(losing_trade,text="Losing!")    
plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!")
//plot(strategy.equity)