시정 주문 전략의 주요 아이디어는 사용자가 사용자 정의한 시간에 구매 및 판매 작업을 수행하는 것입니다. 이 전략은 사용자가 정확한 시점을 설정하여 현재 보유한 위치를 먼저 판매하고 현재 가격보다 1% 낮은 가격으로 제한 가격으로 구매 할 수 있습니다. 따라서 매일 특정 시간에 정기적으로 재배치 할 수 있습니다.
이 전략은 먼저 input 함수에서 사용자 정의된 시간과 분을 얻으며, timestamp 함수를 사용하여 주문 실행 시간을 생성한다. 현재 시간이 지정된 시간점 이후에 있다면, 판매 및 구매 작업을 촉발한다.
구체적으로, 전략은 먼저 현재 시간이 사용자 지정된 시작 및 종료 날짜의 범위 내에 있는지 판단한다. 만족하면, 지정된 주문 실행 시점을 달성할 때, 상가 가격에 현재 보유한 포지션을 판매하고, 현재 가격의 99%에 따라 제한 가격으로 구매한다. 이렇게 함으로써 특정 시점의 현재 가격보다 1% 낮은 가격에 따라 재조정을 실현한다.
이 전략의 가장 큰 장점은 특정 시점에 정기적으로 포지션을 재조정할 수 있다는 점이며, 수동적인 작업이 필요하지 않아 인적 비용을 줄일 수 있다는 것입니다. 또한, 매번 재조정할 때 현재 가격보다 약간 낮은 가격으로 구매하면 특정 초저 구매 이점을 얻을 수 있습니다.
구체적인 장점은 다음과 같습니다.
완전 자동화 작업, 인력 비용 절감.
특정 시점에 정기적으로 위치를 재조정할 수 있습니다.
매번 재배치할 때마다 현재 가격보다 1% 조금 낮은 초저 구매 기회를 얻을 수 있다.
사용자 정의 시점, 유연한 조정.
조정 시기의 시작 및 종료 날짜를 사용자 정의하여 재검토 및 최적화를 용이하게 합니다.
이 전략에는 몇 가지 위험도 있습니다.
만약 주기적으로 변동하는 시점을 잘못 선택하면, 더 좋은 구매 시점을 놓칠 수도 있고, 더 나쁜 시점에 판매할 수도 있다.
매매 가격보다 1%만 낮은 매매 가격으로 매 매매 주기에 충분한 초저 매매 가격 차이를 얻지 못할 수도 있다.
매매와 매입은 시장 가격으로 이루어지며, 어느 정도 미끄러짐의 영향을 받을 수 있습니다.
전략이 특정 시점에만 작동하면, 그 시점 사이에 시장을 관리할 수 없다.
은 거래비용이 더 많이 발생한다.
대응방법:
적절한 시점을 선택하고, 다른 기술 지표와 함께 판단한다.
구매 가격 차이 변수를 추가할 수 있습니다.
최대한 깊이 있고, 변동이 적은 거래 품종을 선택하십시오.
다른 전략과 연동할 수 있습니다.
거래 빈도를 적절히 통제하고 거래 비용과 거래 장점을 균형 잡습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
최적화 조정 시점 선택, 거래 품종의 일내 주기적 특성을 결합하여 최적의 시점을 선택한다.
다른 기술 지표 판단을 추가하여 불리한 시간에 점수 전환을 피하십시오. 이동 평균과 같은 추세 판단 지표와 결합하십시오.
초저 구매 파라미터를 최적화하여, 장점과 거래 비용을 균형 잡는다.
트래킹 스톱 로스 스을 사용하여, 매매 간격에서 포지션을 관리한다.
기계 학습 알고리즘과 결합하여 역사 데이터에 대한 훈련을 통해 자동적으로 시점을 최적화합니다.
재배치 기능이 추가되어 주식 분할, 주식 이득 등의 시점의 조정 지점을 조정할 수 있습니다.
전체적으로 볼 때, 정시 주문 전략은 주기적으로 포지션을 조정함으로써 거래 프로세스를 자동화하고 수동 조작 비용을 절감할 수 있다. 전략 최적화 공간은 넓으며, 변동 시점 선택, 구매 매개 변수 설정, 손해 차단 및 알고리즘 최적화 등의 측면에서 향상시킬 수 있다. 또한 특정 거래 위험에 주의를 기울이고 적절한 위험 관리 조치를 취할 필요가 있다.
/*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