Strategi perdagangan pantai Dong An adalah strategi perdagangan pantai yang sangat sederhana. Ia sangat berbeza dengan strategi perdagangan pantai asal. Strategi ini menggunakan dua saluran Dong An, saluran pantas dan saluran perlahan. Jangkauan saluran ditetapkan oleh pengguna, dengan nilai lalai saluran pantas 20 garis K, saluran perlahan 50 garis K. Strategi ini menggunakan lintasan ke atas dan ke bawah saluran perlahan untuk masuk, dan lintasan tengah saluran pantas untuk menetapkan stop loss.
Logik utama strategi ini ialah:
Mengira laluan cepat: ambil harga tertinggi untuk laluan ke atas, harga terendah untuk laluan ke bawah; rata-rata laluan ke atas dan ke bawah.
Mengira laluan perlahan: mengambil harga tertinggi pada garis K yang paling lambat untuk laluan naik dan harga terendah untuk laluan turun.
Apabila tidak ada pegangan, buat isyarat lebih untuk harga menyentuh saluran perlahan naik; buat isyarat kosong untuk harga menyentuh saluran perlahan turun.
Selepas membuka dagangan dengan laluan cepat di tengah-tengah sebagai garis stop loss.
Semasa memegang, tanda dagangan bertentangan dengan tanda bukaan, dan kedudukan keluar.
Strategi ini mempunyai kelebihan berikut:
Peraturan mudah diamalkan. Saluran dan penghentian bergerak mudah difahami, sesuai untuk pemula.
Parameter yang boleh disesuaikan. Pengguna boleh menyesuaikan parameter mengikut jenis dagangan dan kitaran masa untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
Terdapat sedikit isyarat perdagangan yang bertentangan. Hanya bergantung pada harga untuk melangkah ke atas dan ke bawah melalui saluran Generate, mengelakkan keadaan yang biasa menunjukkan isyarat palsu.
Pengendalian risiko penghentian automatik. Penghentian mudah bergerak di tengah laluan pantas, yang boleh mengehadkan penghentian tunggal.
Strategi ini menghadapi risiko berikut:
Apabila pergerakan harga tidak jelas, lebih banyak kerugian terhad akan berlaku. Ini akan menjejaskan keuntungan strategi.
Kemunduran mungkin lebih besar. Apabila trend berubah, kerugian yang naik ke arah pergerakan akan berubah menjadi kerugian sebenar.
Tetapan parameter yang tidak betul boleh menyebabkan terlalu radikal atau konservatif. Ini memerlukan ujian berulang untuk menghasilkan nilai yang sesuai.
Keperluan untuk memastikan kestabilan pelayan untuk mengelakkan kecacatan yang menyebabkan transaksi tidak dapat diotomasi dengan baik.
Untuk mengurangkan risiko di atas, peningkatan boleh dilakukan dengan mengoptimumkan tetapan parameter, mengehadkan saiz gudang dengan sewajarnya, menambah modul kawalan angin, dan lain-lain.
Strategi ini boleh dioptimumkan dari beberapa arah berikut:
Menambah keadaan penapisan untuk mengelakkan isyarat yang terlepas pada titik perubahan trend. Sebagai contoh, analisis trend dengan pengiraan indikator seperti indeks trend yang digabungkan.
Mengoptimumkan tetapan parameter agar lebih sesuai dengan pelbagai jenis dagangan. Contohnya kitaran saluran yang cepat, saiz kedudukan, dan lain-lain.
Menambah modul kawalan angin; contohnya, penarikan balik maksimum, had kerugian dalam sehari, dan lain-lain. Mengelakkan kejadian risiko yang menyebabkan kerugian yang lebih besar.
Mengoptimumkan strategi berhenti rugi; contohnya, cara berhenti rugi dinamik seperti trailing stop, yang menjadikan stop rugi lebih sesuai dengan trend pasaran.
Strategi dagangan Tanjung Pinang secara keseluruhan adalah strategi pengesanan trend yang sangat mudah. Kelebihannya adalah mudah difahami, mudah dilaksanakan secara automatik, sesuai untuk dagangan berprogram. Tetapi terdapat juga risiko yang diperlukan untuk mengoptimumkan lebih lanjut parameternya agar lebih sesuai dengan keadaan pasaran sebenar.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy("Noro's SimpleTurtle Strategy", shorttitle = "SimpleTurtle str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") sizelong = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot long, %") sizeshort = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot short, %") fast = input(20, minval=1) slow = input(50, minval=1) showof = input(true, defval = true, title = "Show offset") showll = input(true, defval = true, title = "Show lines") showdd = input(false, defval = true, title = "Show label (drawdown)") showbg = input(true, defval = true, title = "Show background") 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") //Donchian price channel fast hf = highest(high, fast) lf = lowest(low, fast) center = (hf + lf) / 2 //Donchian price chennal slow hs = highest(high, slow) ls = lowest(low, slow) //Lines colorpc = showll ? color.blue : na colorsl = showll ? color.red : na offset = showof ? 1 : 0 plot(hs, offset = offset, color = colorpc) plot(ls, offset = offset, color = colorpc) plot(center, offset = offset, color = colorsl) //Background size = strategy.position_size colorbg = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(colorbg, transp = 70) //Orders truetime = true lotlong = 0.0 lotshort = 0.0 lotlong := size != size[1] ? strategy.equity / close * sizelong / 100 : lotlong[1] lotshort := size != size[1] ? strategy.equity / close * sizeshort / 100 : lotshort[1] //Orders strategy.entry("Long", strategy.long, lotlong, stop = hs, when = needlong and strategy.position_size == 0 and truetime) strategy.entry("Short", strategy.short, lotshort, stop = ls, when = needshort and strategy.position_size == 0 and truetime) strategy.exit("Long", stop = center, when = needlong and strategy.position_size > 0) strategy.exit("Short", stop = center, when = needshort and strategy.position_size < 0) if true strategy.close_all() strategy.cancel("fast L") strategy.cancel("fast S") strategy.cancel("slow L") strategy.cancel("slow S") if showdd //Drawdown max = 0.0 max := max(strategy.equity, nz(max[1])) dd = (strategy.equity / max - 1) * 100 min = 100.0 min := min(dd, nz(min[1])) //Label min := round(min * 100) / 100 labeltext = "Drawdown: " + tostring(min) + "%" var label la = na label.delete(la) tc = min > -100 ? color.white : color.red osx = timenow + round(change(time)*10) osy = highest(100) la := label.new(x = osx, y = osy, text = labeltext, xloc = xloc.bar_time, yloc = yloc.price, color = color.black, style = label.style_labelup, textcolor = tc)