Idea utama strategi pesanan tetap adalah untuk melakukan pembelian dan penjualan pada waktu yang disesuaikan oleh pengguna. Strategi ini membolehkan pengguna menetapkan titik waktu yang tepat, di mana ia akan menjual kedudukan yang dipegang pada masa ini, dan kemudian membeli harga terhad pada harga 1% lebih rendah daripada harga semasa.
Strategi ini mula-mula mendapatkan jam dan minit yang disesuaikan oleh pengguna melalui fungsi input, dan kemudian menggunakan fungsi timestamp untuk menghasilkan masa pelaksanaan pesanan. Jika masa semasa berada di belakang titik masa yang ditetapkan, maka ia akan mencetuskan operasi jual dan beli.
Secara khusus, strategi pertama menilai apakah masa semasa berada dalam jangka masa permulaan dan akhir yang ditentukan oleh pengguna. Jika dipenuhi, maka pada titik masa pelaksanaan pesanan yang ditetapkan, kedudukan yang dipegang semasa akan dijual pada harga pasaran, dan kemudian dibeli dengan harga terhad pada 99% daripada harga semasa.
Kelebihan utama strategi ini ialah anda boleh menyesuaikan semula kedudukan anda secara berkala pada titik-titik tertentu, tanpa memerlukan operasi manual, dan mengurangkan kos manusia. Selain itu, setiap kali anda melakukan pembelian pada harga yang sedikit lebih rendah daripada harga semasa, anda boleh mendapatkan kelebihan pembelian yang lebih rendah.
Kelebihan khusus termasuk:
Operasi automatik sepenuhnya, mengurangkan kos buruh.
Anda boleh mengubah kedudukan anda secara berkala pada waktu tertentu.
Setiap kali anda menukar kedudukan anda, anda akan mendapat peluang untuk membeli dengan harga yang lebih rendah daripada 1%.
Anda boleh menyesuaikan masa dan tempat anda.
Anda boleh menyesuaikan tarikh permulaan dan akhir kitaran pemindahan untuk memudahkan pengesanan dan pengoptimuman.
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Jika anda memilih masa yang salah untuk melakukan penukaran, anda mungkin terlepas peluang membeli yang lebih baik atau menjual pada masa yang salah.
Harga beli hanya 1% lebih rendah daripada harga jual, dan mungkin tidak mendapat perbezaan harga beli yang cukup dalam setiap kitaran penyesuaian.
Jualan dan pembelian adalah harga pasaran dan mungkin akan terjejas oleh beberapa titik slippage.
Jika strategi hanya beroperasi pada titik masa tertentu, ia tidak dapat menguruskan pasaran antara titik masa tersebut.
Lebih kerap menukar kedudukan akan menyebabkan kos dagangan yang lebih tinggi.
Penyelesaian:
Memilih masa yang sesuai untuk penempatan, digabungkan dengan penilaian lain.
Parameter selisih harga beli boleh ditingkatkan, jika perlu.
Pilih jenis dagangan yang lebih mendalam dan kurang turun naik.
Ia boleh digabungkan dengan strategi lain untuk pengurusan risiko dalam tempoh yang tidak diposisikan.
Mengendalikan frekuensi penukaran dengan betul, mengimbangi kelebihan penukaran dan kos urus niaga.
Strategi ini boleh dioptimumkan dalam beberapa arah:
Optimumkan pilihan masa penukaran, menggabungkan ciri kitaran dalam hari dengan jenis dagangan untuk memilih masa terbaik.
Menambah penilaian indikator teknikal lain untuk mengelakkan penukaran pada masa yang tidak menguntungkan. Sebagai contoh, indikator penilaian trend seperti gabungan purata bergerak.
Mengoptimumkan parameter pembelian ultra-rendah, mengimbangi keuntungan dan kos transaksi.
Menggunakan tracker stop loss untuk menguruskan kedudukan di antara tempoh pemindahan.
Menggabungkan algoritma pembelajaran mesin untuk melatih data sejarah dan mengoptimumkan secara automatik masa penempatan.
Tambah fungsi pemulihan hak, mengikut titik penyesuaian pada masa seperti perpecahan saham, dividen saham dan sebagainya.
Secara keseluruhannya, strategi pesanan tetap dapat mengotomatiskan proses perdagangan dengan menyesuaikan kedudukan secara berkala, mengurangkan kos pengendalian manual. Terdapat ruang yang lebih besar untuk pengoptimuman strategi, yang dapat ditingkatkan dari segi pemilihan titik penyesuaian, penetapan parameter pembelian, stop loss dan pengoptimuman algoritma.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
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/
// © ytrevor
//@version=4
strategy("Order At Specified Time", overlay=true)
// -- These inputs are for customizing the times of your desired orders -- //
customHour = input(title="Hour for Order Execution", type=input.integer, defval=01, minval=00, maxval=24) //
customMinute = input(title="Minute for Order Execution", type=input.integer, defval=00, minval=00, maxval=59)
targetTime = timestamp("UTC", year, month, dayofmonth, customHour, customMinute, 00) //Order executes at this time
inDateRange = (time >= targetTime) and (time <= targetTime) //Orders are placed everyday at 01:00 UTC, or any other time specified via input
// -- These inputs are for back testing. Feel free to change the start and end dates via input -- //
startDay = input(title="Start Day", type=input.integer, defval=10, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=2, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2021)
endDay = input(title="End Day", type=input.integer, defval=22, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer, defval=3, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer, defval=2021)
betweenDates = true
// -- Order execution -- //
if betweenDates
buyPrice = close*0.99 //Buy at 1% lower than selling price
strategy.entry("Sell", strategy.short, when=inDateRange) //Sell at 01:00 UTC, or at any other time specified via input
strategy.entry("Buy", strategy.long, limit=buyPrice, when=inDateRange) //Buy limit order placed at the same time, 1% lower than selling price