Berdasarkan strategi grid dinamik adaptif panjang-pendek
Gambaran Keseluruhan
Ini adalah strategi perdagangan grid dinamik adaptif panjang/pendek yang ditulis berdasarkan Pine Script. Idea utama strategi ini adalah untuk mengira sempadan atas dan bawah grid secara automatik berdasarkan titik tinggi dan rendah harga terkini atau purata bergerak mudah, kemudian membahagikan julat tersebut kepada beberapa garisan grid secara seragam. Apabila harga menyentuh mana-mana garisan grid, ia akan membuka atau menutup kedudukan beli (long) pada tahap tersebut. Dengan cara ini, strategi dapat terus membuka dan menutup kedudukan dalam pasaran yang berayun, memperoleh keuntungan daripada perbezaan harga. Pada masa yang sama, dengan melaraskan sempadan grid secara dinamik, ia juga dapat menyesuaikan diri dengan trend pasaran yang berbeza.
Prinsip Strategi
-
Mengira sempadan atas dan bawah grid. Bergantung pada pilihan pengguna, sempadan atas dan bawah boleh berdasarkan titik tertinggi dan terendah bagi N lilin terkini, dengan peratusan pengembangan atau penguncupan yang boleh ditetapkan; atau berdasarkan purata bergerak mudah harga penutup bagi N lilin terkini, dengan nisbah sisihan atas dan bawah yang boleh ditetapkan.
-
Menjana tatasusunan garisan grid. Berdasarkan bilangan garisan grid yang ditetapkan, julat grid dibahagikan secara seragam untuk menghasilkan tatasusunan garisan grid pada harga yang sepadan.
-
Kemasukan / penambahan posisi. Merentasi garisan grid dari bawah ke atas, jika harga penutup semasa kurang daripada harga garisan grid tertentu dan garisan grid tersebut belum mempunyai kedudukan, maka buka posisi beli pada tahap tersebut. Dengan cara ini, apabila harga menyentuh garisan grid yang lebih tinggi, posisi akan terus ditambah.
-
Keluar / pengurangan posisi. Merentasi garisan grid dari atas ke bawah, jika harga penutup semasa lebih besar daripada harga garisan grid tertentu dan garisan grid yang lebih rendah mempunyai kedudukan, maka tutup kedudukan beli pada garisan grid yang lebih rendah tersebut. Dengan cara ini, apabila harga menurun, posisi akan terus dikurangkan.
-
Pelarasan dinamik. Jika fungsi grid dinamik dipilih, sempadan atas dan bawah grid serta tatasusunan garisan grid akan dikira semula pada setiap lilin, membolehkan grid terus menyesuaikan diri dengan perubahan pasaran.
Analisis Kelebihan
-
Kebolehsuaian tinggi. Strategi perdagangan grid dapat menyesuaikan diri dengan pasaran berayun dan pasaran bertren. Dalam pasaran berayun, strategi grid boleh terus membuka dan menutup kedudukan, memperoleh keuntungan daripada spread; dalam pasaran bertren, kerana grid mengikut pergerakan harga, ia juga dapat mengekalkan kedudukan tertentu untuk mendapatkan keuntungan daripada trend.
-
Risiko terkawal. Saiz kedudukan setiap kali pembukaan ditentukan oleh bilangan grid yang ditetapkan, pendedahan risiko tunggal adalah kecil dan terkawal. Selain itu, kerana harga akan menutup kedudukan dengan untung apabila menyentuh garisan grid atas, ini juga mengimbangi sebahagian potensi kerugian.
-
Automasi tinggi. Strategi ini pada asasnya boleh berjalan secara automatik sepenuhnya tanpa memerlukan campur tangan manusia, sesuai untuk pelabur yang memerlukan pulangan stabil jangka panjang.
-
Parameter fleksibel. Pengguna boleh menetapkan bilangan garisan grid, parameter grid dinamik, dan lain-lain secara fleksibel berdasarkan ciri pasaran untuk mengoptimumkan prestasi strategi.
Analisis Risiko
-
Risiko angsa hitam. Jika berlaku kejatuhan pasaran yang melampau secara tiba-tiba, harga melonjak terus ke bawah garisan grid terendah, strategi ini akan berada dalam kedudukan penuh dan mengalami penarikan semula yang besar. Untuk mengurangkan risiko ini, keadaan henti rugi boleh ditetapkan; sebaik sahaja kerugian mencapai ambang, semua kedudukan akan ditutup.
-
Penetapan parameter grid yang tidak sesuai. Jika ketumpatan grid terlalu tinggi, perbezaan harga setiap pembukaan/penutupan akan menjadi sangat kecil, yuran transaksi mungkin mengikis sebahagian besar keuntungan. Jika lebar grid terlalu besar, nisbah pembukaan kedudukan sekali gus adalah tinggi, pendedahan risiko besar. Perlu menilai dengan teliti ciri aset sasaran dan memilih parameter grid yang sesuai.
-
Risiko asas. Strategi ini menetapkan syarat buka/tutup kedudukan berdasarkan harga semasa. Dalam pasaran seperti niaga hadapan, jika harga kontrak berbeza dengan ketara daripada harga asas, harga sebenar buka/tutup mungkin menyimpang banyak daripada jangkaan.
Hala Tuju Pengoptimuman
-
Menambah penapis trend. Strategi grid menunjukkan prestasi lemah dalam pasaran trend satu arah. Penunjuk trend boleh ditambah sebagai penapis, misalnya hanya aktifkan grid apabila ADX di bawah ambang tertentu, dan matikan grid apabila trend jelas, hanya pegang kedudukan satu arah.
-
Pengoptimuman isyarat. Isyarat lain boleh ditindih di atas grid, seperti grid + purata bergerak, iaitu keputusan buka/tutup kedudukan ditentukan terutamanya oleh grid, tetapi hanya buka kedudukan apabila harga melintasi purata bergerak tertentu, jika tidak, jangan buka. Ini dapat mengurangkan kos yang disebabkan oleh pembukaan/penutupan yang kerap.
-
Pengurusan kedudukan. Pada masa ini, saiz kedudukan setiap grid adalah tetap. Ia boleh ditetapkan untuk mengurangkan saiz kedudukan setiap grid apabila harga jauh daripada harga purata pasaran, dan meningkatkan saiz kedudukan apabila harga hampir dengan harga purata pasaran, meningkatkan kecekapan penggunaan dana.
-
Ketumpatan grid adaptif. Melaraskan ketumpatan grid secara dinamik berdasarkan turun naik harga. Apabila turun naik tinggi, bilangan grid boleh ditambah; apabila turun naik rendah, bilangan grid dikurangkan. Ini dapat mengoptimumkan lebar grid dan meningkatkan kecekapan penggunaan dana.
Ringkasan
Strategi ini, melalui grid dinamik adaptif, dapat membuka dan menutup kedudukan dengan kerap dalam pasaran berayun untuk memperoleh keuntungan daripada spread, dan juga mengekalkan pendedahan arah tertentu dalam pasaran bertren untuk mendapatkan keuntungan daripada trend. Ia merupakan strategi kuantitatif jangka sederhana hingga panjang yang mempunyai kebolehsuaian tinggi. Dengan menetapkan logik pencetus grid dan pengurusan kedudukan yang sesuai, pulangan yang stabil dapat dicapai. Walau bagaimanapun, perlu memberi perhatian kepada risiko pasaran melampau dan lonjakan harga, yang memerlukan penetapan keadaan henti rugi yang sesuai untuk mengawalnya. Selain itu, masih ada ruang untuk pengoptimuman lanjut dari segi penetapan parameter dan pengurusan risiko, seperti memperkenalkan penapis trend, tindihan isyarat, pengurusan kedudukan, ketumpatan grid adaptif, dan lain-lain untuk meningkatkan kestabilan dan keuntungan strategi. Secara keseluruhannya, strategi ini berdasarkan logik asas grid, ditambah dengan mekanisme adaptif dinamik, dapat memberikan idea dan rujukan baharu untuk pelabur kuantitatif jangka sederhana hingga panjang.
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jcloyd
//@version=4
strategy("(IK) Grid Script", overlay=true, pyramiding=14, close_entries_rule="ANY", default_qty_type=strategy.cash, initial_capital=100.0, currency="USD", commission_type=strategy.commission.percent, commission_value=0.1)
i_autoBounds = input(group="Grid Bounds", title="Use Auto Bounds?", defval=true, type=input.bool) // calculate upper and lower bound of the grid automatically? This will theorhetically be less profitable, but will certainly require less attention
i_boundSrc = input(group="Grid Bounds", title="(Auto) Bound Source", defval="Hi & Low", options=["Hi & Low", "Average"]) // should bounds of the auto grid be calculated from recent High & Low, or from a Simple Moving Average
i_boundLookback = input(group="Grid Bounds", title="(Auto) Bound Lookback", defval=250, type=input.integer, maxval=500, minval=0) // when calculating auto grid bounds, how far back should we look for a High & Low, or what should the length be of our sma
i_boundDev = input(group="Grid Bounds", title="(Auto) Bound Deviation", defval=0.10, type=input.float, maxval=1, minval=-1) // if sourcing auto bounds from High & Low, this percentage will (positive) widen or (negative) narrow the bound limits. If sourcing from Average, this is the deviation (up and down) from the sma, and CANNOT be negative.
i_upperBound = input(group="Grid Bounds", title="(Manual) Upper Boundry", defval=0.285, type=input.float) // for manual grid bounds only. The upperbound price of your grid
i_lowerBound = input(group="Grid Bounds", title="(Manual) Lower Boundry", defval=0.225, type=input.float) // for manual grid bounds only. The lowerbound price of your grid.
i_gridQty = input(group="Grid Lines", title="Grid Line Quantity", defval=8, maxval=15, minval=3, type=input.integer) // how many grid lines are in your grid- 1

