Strategi ini melaksanakan perdagangan saham intraday menggunakan garis Ichimoku Cloud. Ia tergolong dalam strategi perdagangan jangka pendek. Ia menggunakan garis penukaran, garis asas dan garis utama Ichimoku Cloud untuk menjana isyarat perdagangan, dan menggunakan Parabolic SAR untuk pengangkutan kerugian berhenti, mencapai perlindungan berganda.
Ichimoku Cloud terdiri daripada garis penukaran, garis asas, garis utama 1 dan garis utama 2. Garis penukaran adalah purata harga penutupan dan harga tertinggi dan terendah selama 9 hari yang lalu, yang mencerminkan keadaan keseimbangan harga saham baru-baru ini. Garis asas adalah purata harga tertinggi dan terendah selama 26 hari yang lalu, yang mewakili keadaan keseimbangan jangka menengah hingga panjang. Garis utama 1 adalah purata garis asas dan garis penukaran, yang mencerminkan trend masa depan. Garis utama 2 adalah purata harga tertinggi dan terendah selama 52 hari yang lalu. Garis keseimbangan ini bergabung untuk membentuk isyarat perdagangan.
Apabila harga penutupan menembusi garis asas ke atas dan di atas garis utama 2, isyarat beli dihasilkan. Apabila harga penutupan menembusi garis asas ke bawah dan di bawah garis utama 1, isyarat jual dihasilkan. Parabolic SAR digunakan untuk stop loss trailing, menghasilkan isyarat stop loss apabila harga di bawah SAR.
Strategi ini menggunakan gabungan garis keseimbangan untuk menentukan trend harga masa depan dan kelestarian trend semasa. Ia termasuk dalam strategi trend berikut yang tipikal. Ia mengikuti trend dengan berdagang apabila isyarat beli dan jual muncul. Sementara itu, mekanisme SAR stop loss and take profit mengelakkan kerugian yang membesar.
Garis keseimbangan mengandungi maklumat harga dari tempoh yang berbeza, mencerminkan perubahan trend terlebih dahulu. Menggunakan kombinasi meningkatkan ketepatan berbanding dengan penunjuk tunggal. Ia boleh mengenal pasti isyarat perdagangan dengan lebih tepat.
SAR boleh menjejaki harga saham dengan fleksibel untuk menghentikan kerugian. Bergabung dengan garis keseimbangan, ia membolehkan stop loss tepat pada masanya selepas mengambil keuntungan, mengelakkan kerugian yang diperbesar.
Strategi ini mempunyai parameter minimum tanpa penunjuk teknikal yang kompleks seperti pemasangan lengkung, mudah dan praktikal untuk dilaksanakan.
Ia mengenal pasti isyarat perdagangan dari perubahan harga intraday, sesuai untuk perdagangan jangka pendek. Ia boleh memanfaatkan sepenuhnya turun naik intraday untuk keuntungan.
Trend yang mengikuti perdagangan membawa kepada pengeluaran yang lebih tinggi.
Isyarat perdagangan yang kerap boleh dihasilkan semasa pasaran terhad julat, tidak menguntungkan keuntungan. Parameter boleh diselaraskan untuk menapis beberapa isyarat.
Parameter mudah terdedah kepada optimasi berlebihan. Prestasi perdagangan sebenar mungkin tidak ideal. Ujian kestabilan harus dijalankan untuk mengelakkan pemasangan berlebihan.
Prestasi bergantung kepada instrumen dagangan. Saham trend dengan trend yang jelas harus dipilih untuk memaksimumkan keberkesanan strategi.
Penunjuk lain seperti purata bergerak boleh ditambah untuk menapis isyarat yang tidak pasti dan mengelakkan perdagangan palsu.
Parameter SAR boleh diselaraskan secara dinamik berdasarkan turun naik pasaran, untuk stop loss yang lebih fleksibel.
Pengoptimuman yang lebih sistematik dan ujian kombinasi boleh mencari set parameter yang lebih baik untuk meningkatkan prestasi.
Saiz kedudukan dan leverage boleh diselaraskan secara dinamik berdasarkan keadaan pasaran seperti trend indeks, untuk mengawal risiko.
Strategi ini menggunakan isyarat dagangan Ichimoku Cloud
/*backtest start: 2023-01-01 00:00:00 end: 2023-01-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // // Based on the trading strategy described at // http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud // // See Also: // - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting> // - 9 Mistakes Quants Make that Cause Backtests to Lie <https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/> // - When Backtests Meet Reality <http://financial-hacker.com/Backtest.pdf> // - Why MT4 backtesting does not work <http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020> // // // ----------------------------------------------------------------------------- // Copyright 2018 sherwind // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // The GNU General Public License can be found here // <http://www.gnu.org/licenses/>. // // ----------------------------------------------------------------------------- // strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") usePSARTrailStop = input(true, title="Use Parabolic SAR for Trailing Stop") psarStart = input(0.02, title="Parabolic SAR Start") psarIncrement = input(0.02, title="Parabolic SAR Increment") psarMaximum = input(0.2, title="Parabolic SAR Maximum") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) leadLineDisp1 = leadLine1[displacement] leadLineDisp2 = leadLine2[displacement] psar = sar(psarStart, psarIncrement, psarMaximum) // BUY Signal: // close > leading span b and // leading span a > leading span b and // close crosses over base line and // close > parabolic sar buySignal = close > leadLineDisp2 and leadLineDisp1 > leadLineDisp2 and crossover(close, baseLine) and (usePSARTrailStop ? close > psar : not usePSARTrailStop) // Sell Signal: // close < leading span a and // leading span a < leading span b and // close crosses under base line and // close < psar sellSignal = close < leadLineDisp1 and leadLineDisp1 < leadLineDisp2 and crossunder(close, baseLine) and (usePSARTrailStop ? close < psar : not usePSARTrailStop) hasLong = strategy.position_size > 0 hasShort = strategy.position_size < 0 strategy.entry("ichimoku-long", strategy.long, when = buySignal) strategy.entry("ichimoku-short", strategy.short, when = sellSignal) strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop) strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)