
Idea teras strategi ini adalah untuk mencari tarikh pembelian terbaik setiap bulan, dengan membeli aset digital pada tarikh ini dan menjualnya pada akhir bulan, untuk mencapai pulangan pelaburan yang optimum. Strategi ini sesuai untuk pelabur yang ingin memanfaatkan turun naik harga dalam sehari untuk mendapatkan keuntungan tambahan.
Strategi ini berjalan mengikut tarikh beli dan jual setiap bulan yang ditetapkan oleh pengguna. Jika anda membeli pada hari pembelian, anda akan membeli pada hari penjualan. Jika anda tidak menetapkan tarikh penjualan, anda akan menetap pada hari akhir strategi.
Logik penilaian untuk isyarat beli adalah: jika ia adalah tarikh pembelian yang ditetapkan oleh pengguna, dan dalam tempoh tarikh berkuatkuasa strategi, maka lebih banyak pesanan dibuka.
Logik penghakiman isyarat kedudukan kosong adalah: jika anda menetapkan tarikh jual dan ia adalah tarikh jual, kedudukan kosong; jika anda tidak menetapkan tarikh jual tetapi melebihi tarikh akhir strategi, juga kedudukan kosong.
Risiko kejatuhan harga selepas pembelian
Risiko perubahan tarikh pembelian terbaik
Risiko kerugian akibat kesilapan penyetempatan
Menentukan titik pembelian dengan faktor-faktor tambahan
Pengoptimuman mekanisme pengurusan kedudukan
Meluas ke pasaran dagangan lain
Strategi ini menguji perbezaan pendapatan yang dihasilkan oleh tarikh pembelian yang berbeza untuk mencari titik pembelian yang paling banyak turun naik harga setiap bulan. Ini boleh membawa keuntungan tambahan kepada pelabur yang mencari keuntungan dari perdagangan frekuensi tinggi dalam sehari. Langkah seterusnya dapat meningkatkan lagi kestabilan dan tahap keuntungan strategi dengan memperkenalkan lebih banyak faktor untuk menentukan masa pembelian, mengoptimumkan pengurusan kedudukan dan memperluaskan pasaran aplikasi.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
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/
// © dennis.decoene
//@version=4
strategy(title="Buy and Hold, which day of month is best to buy?", overlay=true)
// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31, group="Starting From")
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12, group="Starting From")
startYear = input(title="Start Year", type=input.integer,
defval=2021, minval=1800, maxval=2100, group="Starting From")
endDate = input(title="End Date", type=input.integer,
defval=2, minval=1, maxval=31, group="Until")
endMonth = input(title="End Month", type=input.integer,
defval=10, minval=1, maxval=12, group="Until")
endYear = input(title="End Year", type=input.integer,
defval=2021, minval=1800, maxval=2100, group="Until")
entryday = input(title="Entry Day", type=input.integer,
defval=26, minval=1, maxval=31, tooltip="When to enter (buy the asset) each month")
exitday = input(title="Exit Day", type=input.integer,
defval=6, minval=1, maxval=31, tooltip="When to exit (sell the asset) each month")
useExitDay= input(title="Close position on exit day?", type=input.bool, defval=false, tooltip="Use the Exit Day to close each months position it true or close at the end of the period (if false)")
isEntryDay= (dayofmonth(time)==entryday)
isExitDay= (dayofmonth(time)==exitday-1)
inDateRange = true
if (isEntryDay and inDateRange)
strategy.entry(id="Buy", long=true)
if (isExitDay and useExitDay)
strategy.close_all()
// Exit open market position when date range ends
if (not inDateRange and not useExitDay)
strategy.close_all()