이 전략은 MA 상승 트렌드 전환점에 긴 거리와 MA 하락 트렌드 전환점에 짧은 거리로 이동 평균 라인의 전환점에 기반하여 트렌드를 판단합니다. 그것은 전형적인 트렌드 다음 전략에 속합니다.
이 전략은 종료 가격을 전략 분석의 가격으로 얻기 위해 price=security ((tickerid, period, close) 를 사용 하 고, 다음 ma1 길이의 입력 선택에 기초하여 SMA 또는 EMA를 계산하여 첫 번째 평균 라인 가격을 얻는다. roc1은 그 다음 가격의 하루 변화율로 정의된다. 임계 트렌드Strength1에 의해 평균 라인이 상당한 상승 또는 하락 여부를 판단한다. roc1이 트렌드Strength1을 초과할 때, ma1up은 평균 라인이 상승하고 있음을 나타내는 사실로 정의된다. roc1이 부정적인 트렌드Strength1보다 낮을 때, ma1down은 평균 라인이 하락하고 있음을 나타내는 사실로 정의된다. 평균 라인이 상승하고 전날이 하락하고 있을 때 긴 신호가 발급된다. 평균 라인이 하락하고 전날이 상승하고 있을 때 짧은 신호가 발급된다.
따라서 전략은 유동 평균 라인의 전환점을 활용하여 주식 가격의 트렌드 변화를 포착합니다. 이는 전형적인 트렌드 다음 전략에 속합니다.
이 전략의 가장 큰 장점은 트렌드를 판단하기 위해 이동 평균선의 전환점을 활용한다는 것입니다. 이는 양적 거래에서 비교적 성숙하고 신뢰할 수있는 기술 분석 방법입니다. 구체적인 장점은 다음과 같습니다.
이동 평균을 사용하여 잡음을 필터하고 트렌드 전환점을 정확하게 캡처합니다. 이동 평균은 가격을 부드럽게하고 트렌드 반전을 더 안정적으로 식별하기 위해 약간의 잡음을 필터 할 수 있습니다.
거짓 브레이크아웃을 피하기 위해 반전의 강도를 결정하기 위해 변화율 지표를 결합합니다. 이 전략은 전환점을 감지할뿐만 아니라 변화율 경사도에 대한 문턱을 설정하여 이동 평균에 대한 거짓 브레이크아웃으로 인한 불필요한 거래를 피할 수 있습니다.
쉬운 백테스팅 최적화를 위한 간단한 매개 변수 설정. 이 전략은 하나의 이동 평균과 사용자가 이해하기 쉽고 마스터하기 쉬운 몇 가지 매개 변수를 가지고 있습니다.
이 전략의 주요 위험은 다음과 같습니다.
트렌드를 따르는 전략은 최고와 최하위를 예측할 수 없습니다. 이 전략은 트렌드를 따르는 전략으로 트렌드를 따라가며 시장의 최고와 최하위를 예측할 수 없으며 즉각적인 역전 기회를 쉽게 놓칠 수 있습니다.
이동 평균 지연 문제 이동 평균은 가격 움직임을 반영하는 데 일정 지연을 가지고 있으며, 이는 트렌드 반전을 식별하는 시기성에 영향을 줄 수 있습니다.
부적절한 사전 매개 변수 최적화는 결과에 직접 영향을 미칩니다. 평균 라인의 기간 수와 변화율 경사도의 문턱과 같은 이 전략의 매개 변수 설정은 전략의 이익, 마감 등에 직접 영향을 미치므로 신중하게 테스트하고 최적화해야합니다.
이에 대응하는 해결책은 다음과 같습니다.
다른 지표를 적절히 결합하여 주요 황금과 곰 전환점을 예측합니다.
SMA 대신 EMA와 다른 빠른 이동 평균을 테스트합니다.
가장 좋은 매개 변수 설정을 찾기 위해 멀티 최적화를 권장합니다.
이 전략은 다음과 같은 방향으로 더 이상 최적화 될 수 있습니다.
두 번째 이동 평균 라인을 추가하여 황금 십자 및 죽은 십자 전략을 형성합니다. 이것은 트렌드와 필터 잡음을 결정하기 위해 이중 이동 평균 사이의 관계를 사용합니다.
부피 분석을 추가합니다. 이동 평균 전환점에서의 부피 변화를 관찰함으로써 전환점의 신뢰성을 추가로 확인할 수 있습니다.
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)