
이 전략의 핵심 아이디어는 매월 최적의 구매 날짜를 찾아서 이 날짜에 디지털 자산을 구매하고 마지막에 판매함으로써 투자 수익을 최적화하는 것입니다. 이 전략은 하루 동안의 가격 변동을 활용하여 추가 수익을 얻기를 원하는 투자자에게 적합합니다.
이 전략은 사용자가 설정한 매월의 구매일과 판매일에 따라 작동한다. 구매일 당일 다중 주문을 구매하고, 판매일 설정하면 판매일 평지; 판매일 설정하지 않으면 전략 종료일 당일 평지한다. 이렇게하면 매월의 다른 구매일로 인한 수익 차이를 테스트 할 수 있다.
구매 신호의 판단 논리는 다음과 같습니다: 사용자가 설정한 구매 날짜이고, 전략이 유효한 날짜 내에 있다면, 더 많은 상을 열립니다.
평정상태 신호 판단 논리는: 판매 날짜를 설정하고 판매 날짜가 되면 평정상태; 판매 날짜를 설정하지 않고 전략 종료 날짜를 넘어서면 평정상태이다.
구매 후 가격 폭락의 위험
가장 좋은 구매 날짜의 변화 위험
잘못된 설정으로 인해 손실이 발생할 위험이 있습니다.
다른 요소들과 함께 구매 지점을 결정합니다.
포지션 관리 메커니즘 최적화
다른 거래 시장으로 확장
이 전략은 서로 다른 구매 날짜로 가져오는 수익 차이점을 테스트하여 월간 가격 변동이 가장 큰 구매 지점을 찾습니다. 이것은 하루 중 높은 빈도 거래에서 이익을 추구하는 투자자에게 추가 수익을 가져올 수 있습니다. 다음 단계는 구매 시기를 판단하는 요소를 더 많이 도입하여 포지션 관리를 최적화하고 응용 시장을 확장함으로써 전략의 안정성과 수익 수준을 더욱 향상시킬 수 있습니다.
/*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()