이 전략은 비트코인의 주말 거래량을 10배의 레버리지를 사용하여 증가시키는 단기 거래 전략이다. 주제는 금요일 종료 가격을 기록하고 토요일과 일요일의 일일 종료 가격을 금요일 종료 가격과 비교하고 임계값을 초과하면 길거나 짧게하는 것입니다. 포지션은 월요일에 종료됩니다.
전략은 먼저 금요일 종료 가격을 기록하고, 그 다음 금요일 이후의 날 수를 계산합니다. 토요일과 일요일, 매일 종료 가격이 금요일 종료 가격보다 4.5% 이상 높으면, 단축; 매일 종료 가격이 금요일 종료 가격보다 4.5% 이상 낮다면, 길게 이동합니다. 각 거래는 10x 레버리지를 사용합니다. 이익이 초기 자본의 10%에 도달하면 모든 포지션을 닫습니다. 월요일, 모든 포지션을 상관없이 닫습니다.
구체적으로, 전략은 금요일의 폐쇄 가격을 얻고, 그 다음 현재 폐쇄 가격을 토요일과 일요일의 금요일과 비교합니다. 현재 폐쇄 가격이 금요일보다 4.5% 이상 높다면,strategy.short
■ 현재 종료 가격이 금요일보다 4.5% 이상 낮다면,strategy.long
레버리지는 10x로 설정됩니다.leverage
이윤이 초기 자본의 10%에 도달하면strategy.close_all()
월요일,strategy.close_all()
.
위험을 줄이기 위한 잠재적 개선:
이 전략은 다음과 같은 측면에서 개선될 수 있습니다.
더 나은 입력 시기를 위해 다른 지표를 추가하십시오. 입력 필터를 필터하고 정확성을 향상시키기 위해 이동 평균, RSI 등을 포함하십시오.
손실을 멈추고 이익을 취하는 전략을 최적화하십시오. 수익을 차단하고 위험을 제어하기 위해 후속 중지, 단계적 인 이익 취득 등을 사용하십시오.
리버리지 크기를 조정하여 위험을 줄이세요. 동적 리버리지 조정을 실행하고, 마감 기간 동안 리버리지를 낮추세요.
다른 암호화폐를 추가합니다. 멀티 자산 중재를 위해 주말 패턴으로 추가 암호화폐를 거래합니다.
매개 변수를 최적화하기 위해 머신러닝을 사용하세요. 큰 역사 데이터 세트를 수집하고 동적 매개 변수 조정을 자동으로 최적화하기 위해 ML을 사용하세요.
이 전략은 비트코인의 주말 거래량을 활용한 일반적인 단기 거래 전략이다. 토요일과 일요일의 트렌드를 판단하여 주말 거래량을 활용하고, 장기 또는 단기적으로 거래한다. 이 전략은 수익 증폭 및 위험 통제와 같은 장점이 있지만, 또한 몇 가지 위험도 있다. 다음 단계는 전략이 더 견고하고 지능적으로 되기 위해 엔트리, 스톱 로스, 레버리지 관리, 자산 확충 등과 같은 영역을 최적화하는 것이다.
/*backtest start: 2023-10-14 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Copyright Boris Kozak strategy("XBT Weekend Trade Strategy", overlay=false) leverage = input(10,"Leverage") profitTakingPercentThreshold = input(0.10,"Profit Taking Percent Threshold") //****Code used for setting up backtesting.****/// testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(12, "Backtest Start Month") testStartDay = input(10, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2025, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FFFF : na bgcolor(testPeriodBackgroundColor, transp=50) testPeriod() => true //****END Code used for setting up backtesting.****/// //*** Main entry point is here***// // Figure out how many days since the Friday close days_since_friday = if dayofweek == 6 0 else if dayofweek == 7 1 else if dayofweek == 1 2 else if dayofweek == 2 3 else if dayofweek == 3 4 else if dayofweek == 4 5 else 6 // Grab the Friday close price fridaycloseprice = request.security(syminfo.tickerid,'D',close[days_since_friday]) plot(fridaycloseprice) strategy.initial_capital = 50000 // Only perform backtesting during the window specified if testPeriod() // If we've reached out profit threshold, exit all positions if ((strategy.openprofit/strategy.initial_capital) > profitTakingPercentThreshold) strategy.close_all() // Only execute this trade on saturday and sunday (UTC) if (dayofweek == 7.0 or dayofweek == 1.0) // Begin - Empty position (no active trades) if (strategy.position_size == 0) // If current close price > threshold, go short if ((close>fridaycloseprice*1.045)) strategy.entry("Short Entry", strategy.short, leverage) else // If current close price < threshold, go long if (close<(fridaycloseprice*0.955)) strategy.entry("Long Entry",strategy.long, leverage) // Begin - we already have a position if (abs(strategy.position_size) > 0) // We are short if (strategy.position_size < 0) if ((close>strategy.position_avg_price*1.045)) // Add to the position strategy.entry("Adding to Short Entry", strategy.short, leverage) else strategy.entry("Long Entry",strategy.long,leverage) // On Monday, if we have any open positions, close them if (dayofweek==2.0) strategy.close_all()