Di luar Strategi Awan

Penulis:ChaoZhang, Tarikh: 2023-11-03 16:10:33
Tag:

img

Ringkasan

Strategi ini menggunakan penunjuk Super Trend untuk membantu dalam meletakkan pesanan, dan penapis oleh lapisan awan dan warna candlestick untuk meletakkan pesanan had untuk meningkatkan keuntungan. Matlamatnya adalah untuk dengan cepat menangkap trend selepas mereka bermula, dan mengurangkan risiko semasa penyatuan.

Logika Strategi

  1. Mengira purata harga tertinggi dan terendah dalam tempoh ATR sebagai garis asas.

  2. Mengira jalur atas dan bawah berdasarkan faktor pengganda.

  3. Apabila dekat berada di atas jalur atas, tanda sebagai 1; di bawah jalur bawah, tanda sebagai -1. Jika tidak, mengekalkan keadaan sebelumnya.

  4. Sesuaikan garis stop loss secara dinamik berdasarkan kedudukan harga penutupan berbanding dengan jalur atas/bawah.

  5. Mengira julat lapisan awan berdasarkan peratusan tertentu selang band atas/bawah.

  6. Untuk panjang, perlu tutup < buka apabila Super Trend adalah 1.

  7. Letakkan pesanan beli had pada harga penutupan bar sebelumnya untuk panjang Letakkan pesanan jual had untuk pendek.

  8. Menyaring mengikut jangka masa, tutup semua kedudukan yang tersedia.

Analisis Kelebihan

Strategi ini menggabungkan konsep Super Trend dan awan, yang membolehkan penangkapan trend yang cepat selepas trend bermula. Stop loss Super Trend bertindak balas lebih cepat daripada stop loss bergerak biasa. Lapisan awan mengelakkan kerugian daripada pecah palsu. Perintah had mengurangkan seluncur dan meningkatkan keuntungan. Kelebihan utama adalah:

  1. Super Trend sensitif dan mengesan trend dengan kuat.

  2. Penapis lapisan awan mengurangkan kerugian daripada pelarian palsu.

  3. Warna candlestick membantu mengelakkan pembalikan.

  4. Perintah had mengurangkan kesan tergelincir dan meningkatkan kadar kemenangan.

  5. Julat masa dan pengurusan kedudukan yang boleh disesuaikan sesuai dengan keperluan perdagangan yang berbeza.

Analisis Risiko

Terdapat juga beberapa risiko yang perlu diperhatikan:

  1. Parameter Super Trend yang tidak betul boleh menyebabkan terlalu banyak sensitiviti dan whipsaws.

  2. Julat awan yang berlebihan boleh menapis isyarat pecah yang sah, memberi kesan kepada keuntungan.

  3. Perintah had mungkin tidak dipenuhi semasa turun naik yang tinggi, peluang yang hilang.

  4. Tiada stop loss boleh sepenuhnya mengelakkan risiko sistemik dan kerugian besar.

  5. Ukuran kedudukan yang lebih besar juga meningkatkan kerugian.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dalam aspek berikut:

  1. Uji pasaran dan instrumen yang berbeza untuk parameter Super Trend yang optimum.

  2. Sesuaikan tahap stop loss secara dinamik berdasarkan turun naik pasaran.

  3. Mengoptimumkan julat awan untuk mengimbangi penapisan bunyi bising dan pengekalan isyarat.

  4. Tambah modul pengukuran kedudukan kepada kedudukan saiz dinamik berdasarkan keadaan pasaran.

  5. Gunakan set parameter yang berbeza untuk sesi perdagangan yang berbeza untuk menyesuaikan diri dengan irama pasaran.

  6. Kecekapan ujian apabila digabungkan dengan penunjuk lain.

Kesimpulan

Kesimpulannya, strategi ini mempunyai logik yang jelas dan kelebihan yang jelas dalam menangkap trend. Tetapi tiada strategi yang dapat sepenuhnya mengelakkan risiko sistemik. Perlu mengawal saiz kedudukan, terus mengoptimumkan untuk meminimumkan risiko dalam perdagangan langsung, dan memaksimumkan kelebihan. Strategi ini mempunyai potensi yang besar untuk ujian dan penambahbaikan lanjut untuk menyesuaikan diri dengan dinamik pasaran yang berkembang.


/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's SuperTrend Strategy v2.0 Limit", shorttitle = "STL str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
cloud = input(25, defval = 25, minval = 5, maxval = 50, title = "cloud, % of ATR")
Factor = input(title = "Super Trend", defval = 3, minval = 1, maxval = 100)
ATR = input(title = "ATR", defval = 7, minval = 1,maxval = 100)
centr = input(true, defval = true, title = "need center of ATR?")
border = input(false, defval = false, title = "need border?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Super Trend ATR 1
src = close
Up=hl2-(Factor*atr(ATR))
Dn=hl2+(Factor*atr(ATR))
TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn
Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)
Tsl1 = Trend==1? TUp: TDown
Tsl2 = Trend==1? TDown: TUp
limit = (Tsl1 - Tsl2) / 100 * cloud
upcloud = Tsl1 - limit
dncloud = Tsl2 + limit

//Cloud
linecolor = Trend == 1 ? green : red
centercolor = centr == true ? blue : na
cloudcolor = Trend == 1 ? green : red
cline = (Tsl1 + Tsl2) / 2
P1 = plot(Tsl1, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
P2 = plot(Tsl2, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
P3 = plot(cline, color = centercolor , style = line , linewidth = 1,title = "SuperTrend Center")
P4 = plot(upcloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center+1")
P5 = plot(dncloud, color = border == false ? na : linecolor , style = line , linewidth = 1,title = "SuperTrend Center-1")
fill(P1, P4, color = linecolor == red ? red : lime, transp = 50)
fill(P2, P5, color = linecolor == red ? red : lime, transp = 50)

//Signals
up = 0.0
dn = 0.0
up := Trend != 1 ? 0 : Trend == 1 and close < open ? close : up[1]
dn := Trend != -1 ? close * 1000 : Trend == -1 and close > open ? close : dn[1]

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if true
    strategy.entry("Long", strategy.long, needlong ? lot : 0, limit = up, when = (Trend == 1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.entry("Short", strategy.short, needshort ? lot : 0, limit = dn, when = (Trend == -1 and time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Lebih lanjut