Trend Penembusan Berikutan Strategi

Penulis:ChaoZhang, Tarikh: 2023-12-08 17:16:34
Tag:

img

Ringkasan

Strategi ini menjejaki trend harga mata wang kripto dengan menetapkan harga tinggi dan rendah. Ia pergi lama apabila harga memecahkan di atas harga tertinggi dan pergi pendek apabila harga memecahkan di bawah harga terendah untuk menangkap trend.

Prinsip Strategi

Strategi ini terutamanya menggunakan kaedah purata bergerak yang ditimbang untuk menentukan sama ada terdapat trend menaik atau menurun yang jelas. Khususnya, ia akan merekodkan harga tertinggi dan terendah dalam tempoh tertentu. Apabila harga dagangan sebenar melebihi harga tertinggi yang direkodkan, ia dinilai bahawa trend menaik telah berlaku, dan ia akan menjadi panjang. Apabila harga dagangan sebenar lebih rendah daripada harga terendah yang direkodkan, ia dinilai bahawa trend menurun telah berlaku, dan ia akan menjadi pendek.

Harga pembukaan untuk panjang dan pendek ditetapkan melalui parameter input ENTRY, dan harga penutupan ditetapkan melalui parameter EXIT. Jangka masa backtest juga boleh ditetapkan melalui parameter. Ini membolehkan mencari kombinasi terbaik dengan menyesuaikan parameter.

Secara khusus, logik utama strategi adalah:

  1. Mencatatkan harga tertinggi dan terendah dalam tempoh tertentu (boleh disesuaikan)
  2. Menghakimi jika harga dagangan sebenar lebih tinggi daripada harga tertinggi
    1. Jika lebih tinggi, terdapat peluang panjang, buka kedudukan panjang berdasarkan tahap harga yang ditetapkan oleh parameter ENTRY
    2. Jika harga dagangan sebenar adalah lebih rendah daripada harga terendah, terdapat peluang pendek, buka kedudukan pendek berdasarkan tahap harga yang ditetapkan oleh parameter EXIT
  3. Selepas membuka kedudukan panjang, tutup apabila harga jatuh di bawah tahap yang ditetapkan oleh parameter EXIT
  4. Selepas membuka kedudukan pendek, tutup apabila harga meningkat di atas tahap yang ditetapkan oleh parameter ENTRY

Melalui gelung logik ini, ia dapat menangkap trend harga ke atas dan ke bawah dan mencapai trend berikut.

Kelebihan

Kelebihan terbesar strategi ini ialah dengan menyesuaikan parameter, ia boleh menangkap trend harga secara automatik tanpa perlu menilai arah trend secara manual. Selagi parameter ditetapkan dengan betul, ia boleh menjejaki turun naik harga cryptocurrency secara automatik.

Di samping itu, strategi ini sangat sesuai untuk perdagangan kuantitatif dan dengan mudah dapat mencapai penempatan pesanan automatik. Tanpa operasi manual, ia mengurangkan risiko perdagangan emosi dan sangat meningkatkan kecekapan perdagangan.

Akhirnya, strategi ini juga dapat memaksimumkan pulangan dengan menyesuaikan parameter. Dengan menguji parameter ENTRY dan EXIT yang berbeza, parameter optimum dapat dijumpai untuk memaksimumkan pulangan.

Risiko

Risiko terbesar strategi ini adalah bahawa tetapan parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu kerap, meningkatkan yuran dagangan dan kerugian slippage.

Di samping itu, penyesuaian parameter yang tidak betul juga boleh menyebabkan kegagalan untuk menangkap trend harga tepat pada masanya, kehilangan peluang perdagangan.

Akhirnya, strategi ini terlalu sensitif terhadap bunyi bising pasaran jangka pendek, yang boleh menghasilkan isyarat dagangan yang salah.

Arahan pengoptimuman

Aspek berikut boleh dioptimumkan lagi untuk strategi ini:

  1. Tambah logik stop loss. Ini membolehkan stop loss apabila kerugian melebihi peratusan tertentu untuk mengelakkan kerugian yang lebih besar.

  2. Tambah penapis penunjuk teknikal seperti purata bergerak, KDJ untuk menilai trend keseluruhan untuk mengelakkan terlalu banyak perdagangan kerana bunyi bising jangka pendek.

  3. Mengoptimumkan logik tetapan parameter. Mekanisme perubahan adaptif boleh ditetapkan untuk parameter ENTRY dan EXIT dan bukannya tetapan statik supaya mereka boleh menyesuaikan diri berdasarkan keadaan pasaran.

  4. Gunakan pembelajaran mesin untuk melatih parameter optimum. Dapatkan tetapan ENTRY dan EXIT yang optimum untuk persekitaran pasaran semasa melalui latihan data sejarah yang besar.

Kesimpulan

Kelebihan terbesar strategi ini ialah dengan menangkap trend harga ia mencapai perdagangan automatik, yang dapat mengurangkan kesan emosi manusia pada perdagangan, mengurangkan risiko, dan meningkatkan kecekapan.

Risiko utama strategi adalah tetapan parameter yang tidak betul dan terlalu sensitif terhadap bunyi pasaran. Ini perlu ditingkatkan melalui stop loss, penapis penunjuk, pengoptimuman parameter adaptif dan banyak lagi.

Secara keseluruhan, ini adalah trend yang mudah dan berkesan mengikuti strategi yang sesuai untuk perdagangan kuantitatif dan automatik. Dengan pengoptimuman berterusan, kestabilan strategi dapat ditingkatkan lagi.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())



Lebih lanjut