
이 전략은 이동 평균의 전환점을 기반으로 시장 추세를 판단하고, MA 상의 상향 전환점을 더하고, MA 아래의 하향 전환점을 공백으로 하는 전형적인 트렌드 트래킹 전략에 속한다.
이 전략은 price=security (tickerid, period, close) 을 사용하여 종전 가격을 전략 분석으로 가져다가, ma1의 길이를 가진 sma 평균 또는 ema 평균을 입력하여 첫 번째 평균 price1을 얻습니다. 그리고는 roc1을 price1의 하루 변화율로 정의하고, trendStrength1을 기준으로 평균이 눈에 띄는 상승 또는 하락을 보이는지 여부를 판단합니다. roc1이 trendStrength1을 초과하면, ma1uptrue를 정의하여, 라인이 상승하는 것을 나타냅니다. roc1이 마이너스 trendStrength1보다 낮으면, ma1downtrue를 정의하여, 라인이 하락하는 것을 나타냅니다.
따라서 이 전략은 이동 평균의 전환점을 활용하여 주식 가격의 경향의 변화를 포착하는 전형적인 트렌드 추적 방식의 전략이다.
이 전략의 가장 큰 장점은 트렌드를 판단하기 위해 이동 평균의 전환점을 사용하는 것입니다. 이것은 양적 거래에서 더成熟하고 신뢰할 수있는 기술 분석 방법입니다. 구체적인 장점은 다음과 같습니다:
이동 평균 필터링 소음을 사용하여, Accurately 트렌드 전환점을 캡처한다. 이동 평균은 가격에 대해 부드럽게 만들어, 일부 소음을 필터링 할 수 있으며, 트렌드 전환을 더 정확하게 식별 할 수 있습니다.
변화율 지표와 함께 전환의 강도를 판단하여 가짜 브레이크를 피한다. 이 전략은 전환점을 감지하는 것뿐만 아니라 변화율 반사선의 절댓값을 설정하여 이동 평균의 가짜 브레이크가 불필요한 거래를 초래하는 것을 피한다.
간단한 매개 변수 설정, 이해하기 쉬운 및 재검토 최적화. 이 전략에는 이동 평균이 하나뿐이며, 몇 가지 매개 변수, 설정 및 최적화는 비교적 간단하고 사용자가 이해하기 쉽고 마스터 할 수 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
트렌드 추적 전략, 상위 바닥을 예측할 수 없다. 이 전략은 트렌드 추적 전략에 속하며, 트렌드 뒤에만 따라갈 수 있으며, 시장의 상위 바닥을 예측할 수 없으며, 순간의 반전 기회를 놓칠 수 있다.
이동 평균의 지연 문제. 이동 평균의 가격 움직임에 대한 반영에는 약간의 지연성이 있으며, 트렌드 전환을 식별하는 데에 영향을 미칠 수 있습니다.
전단 변수 최적화가 적절하지 않은 것은 직접적으로 효과에 영향을 미칩니다. 이 전략의 변수 설정은 평균선 기간 수, 변화율 반지름 절댓값과 같은 전략의 수익 회수 수준에 직접적으로 영향을 미칩니다. 신중한 테스트와 최적화가 필요합니다.
그 해결책은 다음과 같습니다.
다른 지표와 적절하게 결합하여 큰 수준의 곰 시장의 상위와 황소 시장의 하위 예측할 수 있습니다.
테스트 EMA와 같은 반응 속도가 더 빠른 평균 대안 SMA。
다중 조합 최적화에서 최적의 파라미터 설정을 찾는 것이 좋습니다.
이 전략은 다음과 같은 방향으로 더 개선될 수 있습니다.
두 번째 이동 평균을 추가하여 골드 포크 데드 포크 전략을 형성한다. 이 방법은 양평선 사이의 관계를 사용하여 추세를 판단하고 소음을 필터링 할 수 있다.
거래량 분석을 추가한다. 평균선 전환점에서의 거래량 변화를 관찰함으로써 전환점의 신뢰성을 더욱 검증할 수 있다.
RSI, MACD 등과 같은 다른 기술 지표의 보조 작용을 테스트하십시오. 이러한 지표는 트렌드를 판단하는 데 도움이 될 수 있으며, 평행선 회전과 결합 전략을 형성합니다.
여러 가지 시장 조건 파라미터 최적화 필터링. 황소 시장, 곰 시장, 충격 상황에 대해 각각 최적화 파라미터 설정을 테스트하십시오.
기계 학습 방법을 이용한 동적 최적화 파라미터. 다양한 시장 환경에서 파라미터의 안정성을 자동으로 평가하는 프로그램을 사용해서 파라미터의 동적 최적화를 구현한다.
이 전략은 전체적으로 좀 더 성숙한 추적 트렌드형 전략으로, 실제 전투에 대한 가치가 있다. 전략 아이디어는 간단하고 명확하며, 파라미터가 많이 설정되지 않고, 테스트를 이해하기 쉽다. 동시에 추적 지연 등의 문제가 있다. 다른 지표 조합과 함께 사용하는 것이 권장되며, 다중 상황 테스트 최적화, 또는 동적으로 파라미터를 조정하는 메커니즘을 도입하면 전략의 안정성과 실전 효과를 더욱 높일 수 있다.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("MA Turning Point Strategy", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"])
price1 = if (type1 == "SMA")
sma(price, ma1)
else
ema(price, ma1)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
lookback1 = input(1, "Lookback 1")
roc1 = roc(price1, lookback1)
ma1up = false
ma1down = false
ma2up = false
ma2down = false
ma1up := nz(ma1up[1])
ma1down := nz(ma1down[1])
ma2up := nz(ma2up[1])
ma2down := nz(ma2down[1])
trendStrength1 = input(2.5, title="Minimum slope magnitude * 100", type=float) * 0.01
if crossover(roc1, trendStrength1)
ma1up := true
ma1down := false
if crossunder(roc1, -trendStrength1)
ma1up := false
ma1down := true
longCondition = ma1up and ma1down[1]
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ma1down and ma1up[1]
if (shortCondition)
strategy.entry("Short", strategy.short)