Idea utama strategi ini adalah untuk membeli pada penutupan pada hari semasa dan menjual pada hari berikutnya jika harga lebih tinggi daripada harga pembelian, jika tidak terus memegang sehingga berhenti kerugian atau mengambil keuntungan.
Strategi ini mula-mula menetapkan purata bergerak mudah 200 hari sebagai penunjuk keadaan pasaran, yang membenarkan perdagangan hanya apabila harga di atas garis 200 hari. Masa membeli ditetapkan pada setengah jam terakhir sebelum penutupan setiap hari, dan masa menjual ditetapkan pada setengah jam pertama selepas pembukaan seterusnya. Apabila keadaan pasaran memenuhi keperluan semasa masa membeli, ia akan meletakkan pesanan pasaran untuk membeli. Semasa masa menjual, ia akan memeriksa sama ada harga lebih tinggi daripada harga beli, jika ya, ia akan meletakkan pesanan pasaran untuk menjual dan mengambil keuntungan, jika tidak, ia terus memegang sehingga kehilangan berhenti atau mengambil keuntungan esok. Ia juga menetapkan garis kehilangan berhenti 5% untuk mengehadkan kerugian.
Strategi ini mempunyai kelebihan berikut:
Gunakan kesan penutupan di mana turun naik harga dan jurang lebih besar semasa penutupan. Harga terbuka seterusnya mungkin mempunyai perubahan besar.
Tempoh memegang yang pendek membolehkan stop loss dan mengambil keuntungan yang cepat untuk mengurangkan risiko.
Logiknya mudah dan mudah difahami dan dilaksanakan.
Konfigurasi fleksibel pada garis stop loss dan penunjuk keadaan pasaran untuk mengawal risiko.
Terdapat juga beberapa risiko:
Membeli pada harga penutupan boleh mengambil kedudukan pada harga yang tinggi, meningkatkan risiko kerugian.
Tempoh tunggu yang singkat memudahkan untuk terperangkap.
Ia bergantung kepada jurang besar, yang mungkin tidak selalu terbentuk, yang membawa kepada kerugian atau kedudukan terperangkap.
Memilih simbol yang salah, seperti penyatuan indeks, boleh membawa kepada banyak kerugian.
Penyelesaian:
Menggabungkan penunjuk teknikal untuk memastikan pembelian pada paras terendah relatif pada waktu penutupan.
Luangkan tempoh penyimpanan kepada 2-3 hari.
Hanya beli pada saat-saat yang sah.
Pilih simbol dengan teliti, pilih simbol dengan trend menaik.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Tambah lebih banyak penunjuk teknikal untuk isyarat pembelian untuk meningkatkan kepastian.
Uji tempoh penahan yang berbeza untuk mencari masa pengambilan keuntungan yang optimum.
Mengoptimumkan garis stop loss untuk mencari titik stop loss yang optimum.
Uji prestasi di pelbagai simbol dan persekitaran pasaran, menggunakan simbol dinamik dan pengurusan kedudukan.
Strategi ini mempunyai logik yang jelas, memanfaatkan kesan jurang penutupan untuk perdagangan stop loss / keuntungan yang cepat. Ia mudah dilaksanakan dan difahami. Tetapi ia juga mempunyai risiko perangkap yang tinggi. Saiz kedudukan, pengurusan stop loss dan pemilihan stok adalah penting. Ia boleh dioptimumkan lagi untuk meningkatkan kepastian pembelian, tempoh pemegang yang optimum dan titik stop loss, dan saiz kedudukan dinamik untuk meningkatkan kestabilan dan keuntungan sambil mengawal risiko.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ strategy("M8 BUY @ END OF DAY", "", 1) /// BUYS AT THE END OF THE DAY /// SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE /// IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY /// USES A 5% STOP LOSS ON THE REDLINE -- SETTABLE IN SETTINGS /// USES A 200 DAY MARKET FILTER -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA MarketFilterLen = input(200) StopLossPerc = input(.95, step=0.01) buyTime = time(timeframe.period, "1429-1500") sellTime = time(timeframe.period, "0925-0935") F1 = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING enter = buyTime and F1 exit = sellTime StopLossLine = strategy.position_avg_price * StopLossPerc plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50)) strategy.entry("L", true, when=enter) strategy.exit("StopLoss", stop=StopLossLine ) if close > strategy.position_avg_price strategy.close("L", when=exit) barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na )