Strategi ini, yang ditulis dalam Pine Script, bertujuan untuk mengenal pasti isyarat beli dan jual yang berpotensi berdasarkan corak 1-2-3, digabungkan dengan syarat tambahan yang melibatkan Purata Bergerak Eksponensial (EMA) dan penunjuk Divergensi Convergensi Purata Bergerak (MACD).
Inti strategi ini adalah untuk mengenal pasti corak 1-2-3, yang merupakan corak harga biasa yang terdiri daripada tiga lilin berturut-turut, yang menunjukkan pembalikan trend yang berpotensi. Untuk isyarat beli, lilin pertama ditutup di atas pembukaannya, lilin kedua ditutup di bawah pembukaannya, lilin ketiga ditutup di atas penutupan lilin pertama, dan akhirnya, lilin keempat ditutup di atas penutupan lilin ketiga. Syarat untuk isyarat jual adalah sebaliknya.
Di samping corak 1-2-3, strategi ini menggunakan penunjuk EMA dan MACD untuk mengesahkan arah trend dan potensi pembalikan trend. EMA 9 tempoh dan EMA 20 tempoh digunakan untuk mengesahkan trend, sementara garis MACD dan garis isyarat digunakan untuk mengenal pasti momentum dan pembalikan trend yang berpotensi.
Apabila semua syarat beli dipenuhi, iaitu corak 1-2-3 terbentuk, harga penutupan berada di atas kedua-dua EMA, dan garis MACD berada di atas garis isyarat, strategi membuka kedudukan panjang. Begitu juga, apabila semua syarat jual dipenuhi, strategi membuka kedudukan pendek. Strategi menutup kedudukan masing-masing apabila isyarat bertentangan dihasilkan atau apabila lilin semasa ditutup ke arah yang bertentangan dengan kedudukan.
Strategi ini, berdasarkan corak 1-2-3, EMA, dan penunjuk MACD, menyediakan pendekatan komprehensif untuk mengenal pasti isyarat beli dan jual yang berpotensi. Ia menggabungkan corak harga, pengesahan trend, dan penunjuk momentum untuk menjana isyarat perdagangan yang boleh dipercayai. Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan, seperti kekurangan langkah pengurusan risiko dan pengoptimuman parameter. Dengan menggabungkan analisis pelbagai jangka masa, kehilangan berhenti dinamik, saiz kedudukan, dan pengoptimuman parameter, prestasi strategi dapat ditingkatkan lagi. Di samping itu, termasuk penunjuk teknikal atau penunjuk sentimen pasaran yang lain juga dapat membantu meningkatkan kebolehpercayaan isyarat. Walaupun peningkatan ini, strategi masih perlu disokong dan disahkan dengan teliti sebelum menerapkannya ke perdagangan langsung. Secara keseluruhan, strategi ini memberikan titik permulaan yang baik untuk peniaga dengan potensi yang lebih baik, pengoptimuman dan penyempurnaan, dan strategi perdagangan telah menjadi strategi yang kukuh dan menguntungkan.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("1-2-3 Pattern Strategy with EMAs, MACD, and 4th Candle Extension", overlay=true) // Define conditions for the 1-2-3 pattern for buy orders buy_candle1_above_open = close[3] > open[3] buy_candle2_below_open = close[2] < open[2] buy_candle3_above_close = close[1] > close[3] buy_candle4_above_close = close > close[3] // Define conditions for the 1-2-3 pattern for sell orders sell_candle1_below_open = close[3] < open[3] sell_candle2_above_open = close[2] > open[2] sell_candle3_below_close = close[1] < close[3] sell_candle4_below_close = close < close[3] // Fetch 9 EMA, 20 EMA, and MACD ema_9 = ta.ema(close, 9) ema_20 = ta.ema(close, 20) [macd_line, signal_line, _] = ta.macd(close, 12, 26, 9) // Implement strategy logic for buy orders if (buy_candle1_above_open and buy_candle2_below_open and buy_candle3_above_close and buy_candle4_above_close and strategy.opentrades == 0 and close > ema_9 and close > ema_20 and macd_line > signal_line) strategy.entry("Buy", strategy.long, qty=5) if (close < open and strategy.opentrades > 0) strategy.close("Buy", qty=5) // Implement strategy logic for sell orders if (sell_candle1_below_open and sell_candle2_above_open and sell_candle3_below_close and sell_candle4_below_close and strategy.opentrades == 0 and close < ema_9 and close < ema_20 and macd_line < signal_line) strategy.entry("Sell", strategy.short, qty=5) if (close > open and strategy.opentrades > 0) strategy.close("Sell", qty=5)