이 전략은 주로 두 개의 이동 평균, 단기 평균과 장기 평균에 의존한다. 단기 이동 평균 매개 변수는 smallMAPeriod이며, 장기 이동 평균 매개 변수는 bigMAPeriod이다. 이 전략은 먼저 이 두 이동 평균을 계산하고, 그 다음 사이즈 관계를 비교한다.
단기 이동 평균이 상위에서 떨어지고 장기 이동 평균의 특정 비율 (percentBelowToBuy 매개 변수에 의해 설정) 을 통과하면, 긴 이동 평균에 대한 구매 신호가 생성됩니다. 단기 이동 평균이 나중에 상승하고 장기 이동 평균을 넘을 때, 판매 신호가 생성되어 포지션을 닫습니다.
전략은 단기 및 장기 이동 평균 사이의 평균 회귀 기회를 포착합니다. 단기 이동 평균이 일정 범위에서 장기 이동 평균보다 낮을 때 자산이 과소평가 될 수 있으며 평균으로 되돌릴 수있는 기회가 있어야합니다. 따라서 장기간 이동하면 리바운드 수익을 얻을 수 있습니다.
이 전략은 간단한 매개 변수 최적화를 통해 좋은 결과를 얻을 수 있습니다. 이동 평균 및 양보 비율 매개 변수를 조정함으로써 최적의 매개 변수 조합을 검사하기 위해 주식, 외환 및 암호화폐와 같은 다른 시장 자산에서 백테스팅을 수행 할 수 있습니다.
다음과 같은 방법을 사용하여 위험을 완화 할 수 있습니다.
/*backtest start: 2023-02-20 00:00:00 end: 2024-02-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // // @author Sunil Halai // // This very simple strategy is an implementation of PJ Sutherlands' Jaws Mean reversion algorithm. It simply buys when a small moving average period (e.g. 2) is below // a longer moving average period (e.g. 5) by a certain percentage, and closes when the small period average crosses over the longer moving average. // // If you are going to use this, you may wish to apply this to a range of investment assets, as the amount signals is low. Alternatively you may wish to tweak the settings to provide more // signals. strategy("Jaws Mean Reversion [Strategy]", overlay = true) //Strategy inputs source = input(title = "Source", defval = close) smallMAPeriod = input(title = "Small Moving Average", defval = 2) bigMAPeriod = input(title = "Big Moving Average", defval = 5) percentBelowToBuy = input(title = "Percent below to buy %", defval = 3) //Strategy calculation smallMA = sma(source, smallMAPeriod) bigMA = sma(source, bigMAPeriod) buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0] if(crossunder(smallMA, buyMA)) strategy.entry("BUY", strategy.long) if(crossover(smallMA, bigMA)) strategy.close("BUY")