Strategi jam perdagangan emas secara automatik menentukan jam terbaik untuk membeli dan menjual setiap hari dengan menguji semula data sejarah. Ia menggunakan penunjuk ROC untuk mengira peratusan kenaikan dan penurunan lilin pada waktu yang berbeza dan dengan itu menilai prestasi perdagangan untuk mencari jam beli dan jual yang optimum.
Gunakan masa semasa untuk mendapatkan jam sekarang_jam.
Gunakan penunjuk ROC untuk mengira kadar kenaikan dan penurunan per jam penunjuk candlestick.
Mengira hasil gabungan penunjuk dan now_hour sebagai buy_hourXindicator_cum.
Mengira jumlah kumulatif penunjuk sebagai buy_indicator_cum.
Jam beli terbaik buy_hour = buy_hourXindicator_cum / buy_indicator_cum.
Begitu juga mengira jam jualan terbaik sell_hour.
Bandingkan now_hour dengan buy_hour dan sell_hour untuk menentukan sama ada jam semasa adalah jam beli atau jual yang optimum.
Hantar isyarat yang sepadan semasa jam beli dan jual yang optimum.
Gunakan warna latar belakang yang berbeza untuk memaparkan jam beli dan jual yang optimum dalam masa nyata.
Kelebihan terbesar strategi ini adalah keupayaan untuk menentukan secara automatik jam dagangan terbaik pada hari itu. Ia menjimatkan banyak masa dan usaha daripada secara manual mengamati data sejarah untuk menilai jam dagangan optimum. Juga, strategi ini boleh menyesuaikan jam dagangan optimum dalam masa nyata berdasarkan data langsung untuk bertindak balas dengan cepat terhadap perubahan pasaran. Strategi ini mempunyai lebih banyak kelebihan berbanding dengan jam dagangan tetap.
Di samping itu, strategi ini menggunakan penunjuk ROC dengan baik. Dengan mengira peratusan kenaikan dan kejatuhan lilin setiap jam, ia dapat menilai dengan lebih tepat prestasi perdagangan dalam tempoh yang berbeza.
Risiko terbesar strategi ini terletak pada batasan penunjuk ROC itu sendiri. ROC hanya mempertimbangkan perubahan harga dan tidak sensitif terhadap perubahan dalam jumlah dagangan. Juga, ROC tidak berprestasi baik di pasaran terhad dengan jalur yang sempit. Jika menghadapi pasaran terhad secara sampingan, keberkesanan penunjuk ROC akan didiskaun.
Di samping itu, strategi ini menggunakan backtesting data sejarah untuk menentukan waktu perdagangan yang optimum. Tetapi corak sejarah mungkin tidak berlaku untuk pasaran semasa. Perubahan struktur mungkin berlaku di pasaran, dan peraturan perdagangan asal mungkin tidak lagi berlaku. Ini memerlukan penyesuaian parameter berdasarkan keadaan pasaran semasa dan bukannya semata-mata bergantung pada hasil backtesting.
Untuk menangani ini, kita boleh mempertimbangkan menggabungkan penunjuk lain seperti jumlah dagangan untuk mendapatkan penilaian yang lebih komprehensif mengenai keadaan pasaran.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Cuba penunjuk lain untuk menggantikan penunjuk ROC, seperti jumlah dagangan, untuk mencari penunjuk yang lebih sesuai untuk mengira kekuatan dan kelemahan sejam.
Tambah keadaan penapisan lain menggunakan purata bergerak, osilator dan lain-lain untuk menilai trend tempatan dan mengelakkan perdagangan yang tidak munasabah.
Mengoptimumkan parameter tempoh masa dan menguji kesan tempoh masa yang berbeza pada hasil.
Tambah mekanisme stop loss dan tetapkan titik stop loss yang munasabah untuk mengawal risiko perdagangan.
Menggabungkan kaedah pembelajaran mesin dan set data yang lebih besar untuk menyelesaikan jam perdagangan yang optimum.
Ringkasnya, strategi perdagangan jam emas adalah pendekatan yang boleh dilaksanakan dan berkesan. Ia menggunakan penunjuk ROC untuk menentukan jam beli dan jual intraday yang optimum secara automatik, menjimatkan banyak masa dan usaha. Tetapi kita juga harus mengambil perhatian batasan penunjuk ROC dan pengujian belakang sejarah, dan menyesuaikan parameter berdasarkan keadaan pasaran semasa. Selain itu, masih banyak ruang untuk peningkatan dengan mengoptimumkan strategi ini dalam banyak aspek untuk menghasilkan isyarat yang lebih tepat dan boleh dipercayai. Jika digunakan untuk perdagangan langsung, disyorkan untuk mematuhi peraturan stop loss dengan ketat untuk mengawal risiko perdagangan.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mablue (Masoud Azizi) //@version=5 strategy("Trade Hour V3",overlay=false) timezone = input.string("Europe/London",options=["America/New_York","America/Los_Angeles","America/Chicago","America/Phoenix","America/Toronto","America/Vancouver","America/Argentina" ,"America/El_Salvador","America/Sao_Paulo","America/Bogota","Europe/Moscow","Europe/Athens","Europe/Berlin","Europe/London","Europe/Madrid","Europe/Paris","Europe/Warsaw","Australia/Sydney","Australia/Brisbane","Australia/Adelaide","Australia/ACT","Asia/Almaty","Asia/Ashkhabad","Asia/Tokyo","Asia/Taipei","Asia/Singapore","Asia/Shanghai","Asia/Seoul","Asia/Tehran","Asia/Dubai","Asia/Kolkata","Asia/Hong_Kong","Asia/Bangkok","Pacific/Auckland","Pacific/Chatham","Pacific/Fakaofo","Pacific/Honolulu"] ) source = input.source(close) tp = input.int(1,"ROC Timeperiod") now_hour = hour(time,timezone) indicator = ta.roc(source,tp) buy_hourXindicator_cum = ta.cum(indicator* now_hour) buy_indicator_cum = ta.cum(indicator) buy_hour = buy_hourXindicator_cum/buy_indicator_cum sell_hourXindicator_cum = ta.cum( (1/indicator ) * now_hour) sell_indicator_cum = ta.cum(1/indicator) sell_hour = sell_hourXindicator_cum/sell_indicator_cum plot(buy_hour,color=color.green) plot(sell_hour,color=color.red) plot(now_hour,color=color.gray,display=display.none) bool isLongBestHour = now_hour==math.round(buy_hour) bool isShortBestHour = now_hour==math.round(sell_hour) bgcolor(isLongBestHour ? color.new(color.green,80) : na) bgcolor(isShortBestHour ? color.new(color.red,80) : na) strategy.order("buy", strategy.long, when =isLongBestHour) strategy.order("sell", strategy.short, when = isShortBestHour)