이 전략의 핵심 아이디어는 빠른 이동 평균 라인의 황금 십자가와 죽음의 십자가를 사용하여 시장의 트렌드를 판단하고 낮은 위험 거래를 구현하는 것입니다. 빠른 이동 평균 라인이 느린 이동 평균 라인의 위를 넘을 때 시장이 상승 추세에 들어갈 수 있음을 나타냅니다.
이 전략은 가격의 기하급수적인 이동 평균을 사용합니다. 이동 평균은 가격 추세를 판단하기 위해 가격 데이터를 매끄럽게하는 트렌드 분석 지표입니다. 빠른 이동 평균은 작은 매개 변수를 가지고 있으며 가격 변화에 더 빠르게 반응 할 수 있습니다. 느린 이동 평균은 더 큰 매개 변수를 가지고 있으며 가격 변화에 더 느리게 반응합니다. 빠른 이동 평균이 느린 이동 평균을 넘을 때 시장이 황소 시장에 진입하고 있으며 긴 위치를 설정해야 할 수 있음을 나타냅니다. 빠른 이동 평균이 느린 이동 평균 아래를 넘을 때 시장이 곰 시장에 진입하고 있음을 나타냅니다. 짧은 위치를 설정해야합니다.
특히, 이 전략은 두 개의 기하급수적인 이동 평균을 정의하고, 각각 빠른 이동 평균에 대해 21과 55의 기간을 가지고 있다. 이 전략은 두 이동 평균 라인의 황금 십자가와 죽음의 십자가를 기반으로 입점과 출구를 결정한다. 빠른 이동 평균이 느린 이동 평균보다 높을 때 긴 거리로 이동하고, 빠른 이동 평균이 느린 이동 평균보다 낮을 때 짧은 거리로 이동한다.
또한, 이 전략은 또한 ATR 변동성 지표를 사용하여 스톱 로스를 설정하고 이윤을 취합니다. ATR은 시장 변동성의 정도를 효과적으로 평가할 수 있습니다. 스톱 로스는 가격의 1.5 배의 ATR 거리에 설정됩니다. 이윤은 가격의 1 배의 ATR 거리에 가깝게 설정됩니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 또한 몇 가지 위험이 있습니다.
위의 위험을 해결하기 위해 우리는 다음 측면에서 최적화 할 수 있습니다:
이 전략은 다음과 같은 측면에서 더 이상 최적화 될 수 있습니다.
기계 학습 방법을 사용하여 더 나은 적응성을 위해 이동 평균 매개 변수를 자동으로 최적화합니다.
기본 요소를 필터링 조건으로 추가하여 주요 부정적인 뉴스가 도착하면 맹목적으로 장거리 또는 단거리 가짐을 피하기 위해 FED 금리 결정 및 중요한 거시 데이터 발표와 같은 것입니다.
변동성의 상부와 하부 한도를 설정하고, 극심한 시장 환경에서 손실을 피하기 위해 ATR이 너무 높거나 너무 낮을 때 거래를 중단하십시오.
P/E 비율과 거래량 증대와 같은 주식 기본 요소를 통합하여 동적 스톱 로스를 설정하고 수익 범위를 취합니다.
포지션 사이즈 메커니즘을 추가하고, 수익률이 수준에 도달하면 점수를 점차 줄이고, 상대적으로 큰 손실을 당할 때 거래를 일시 중단합니다.
이 전략의 전반적인 논리는 명확하고 간단하며, 시장 추세를 결정하기 위해 이중 이동 평균 크로스오버를 사용하여 전형적인 추세를 따르는 전략이다. 한편, 전략은 또한 ATR 지표를 사용하여 동적으로 스톱 로스를 설정하고 이익을 취하기 위해 위험을 매우 잘 제어합니다. 추가 최적화로 전략은 인출 통제 및 트렌드 라이딩 측면에서 향상 될 수 있으며, 따라서 더 안정적인 투자 성과로 이어집니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="No-Nonsense Strategy Template [WM]", overlay = true) price = close // // ATR stuff // atrLength = input(14, "ATR Length") slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP1") atr = atr(atrLength) // // Strategy under test. MA crossover // fastInput = input(21) slowInput = input(55) fast = ema(price, fastInput) slow = ema(price, slowInput) plot(fast, color = red) plot(slow, color = blue) goLong = crossover(fast, slow) goShort = crossunder(fast, slow) if (goLong) sl = price - atr * slMultiplier tp = price + atr * tpMultiplier strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop = sl, limit = tp) if (goShort) sl = price + atr * slMultiplier tp = price - atr * tpMultiplier strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop = sl, limit = tp)