이 전략은 시장 반전을 결정하기 위해 이중 이동 평균을 활용하는 단기 거래 전략이다. 이전 세 개의 촛불 막대의 폐쇄 관계를 조사함으로써 현재 상승 추세 또는 하락 추세를 판단합니다. 트렌드 반전이 감지되면 적절한 긴 또는 짧은 포지션을 취합니다. 한편, 전략은 또한 간단한 이동 평균을 사용하여 짧은 신호를 필터링하고 거래 위험을 줄입니다.
이 전략의 주요 판단 지표는 이전 세 개의 촛불 바의 폐쇄 가격 관계입니다. 이전 세 개의 바가 모두 검은 촛불이라면, 전류가 하향 추세에 있다고 판단됩니다. 이전 세 개의 바가 모두 흰 촛불이라면, 전류가 상승 추세에 있다고 판단됩니다. 하향 추세에 따라 큰 흰 촛불이 나타나면 길게; 상승 추세에 따라 큰 검은 촛불이 나타나면 짧게.
롱을 하는 구체적인 판단 논리는: 만약 이전의 세 개의 촛불 막대기가 모두 검은 촛불이고 마지막 촛불 막대기가 큰 검은 촛불이라면, 롱을 한다. 닫는 논리는 가격이 이전 촛불 막대기의 가장 높은 지점을 통과할 때 포지션을 닫는 것이다.
쇼트 지점으로 가는 구체적인 판단 논리는 다음과 같습니다. 이전 세 개의 촛불 바가 모두 흰 촛불이고 마지막 촛불 바는 큰 흰 촛불이고 가격이 단순한 이동 평균 이하라면 쇼트 지점으로 이동합니다. 종료 논리는 가격이 이전 촛불 바의 최저 지점을 통과 할 때 포지션을 닫는 것입니다.
이동평균의 길이는 사용자 입력에 의해 설정됩니다.
촛불 패턴을 사용하여 시장 전환점을 결정하고, 트렌드에 따라 서로를 쫓는 것을 피하고, 손실을 줄이십시오.
이동 평균을 필터 신호로 결합하고 목표 릴리 도중 조기 하락을 피하십시오.
전략 논리는 간단하고 명확하고 이해하기 쉽고 수정하기 쉽습니다.
커스터마이징 가능한 매개 변수는 다양한 품종과 시간 주기에 적합합니다.
특정 조건에서 단기적 조정 기회를 적시에 포착하는 것이 유리합니다.
시장은 세 개의 큰 검은색 또는 흰색 촛불이 연속으로 거짓 반전을 형성하여 포지션을 취하면 손실을 초래할 수 있습니다. 이 위험을 줄이기 위해 더 엄격한 반전 기준을 설정하십시오.
역행 하지 않으면, 트렌드에 따라 쫓겨날 가능성이 높습니다. 위험을 조절하기 위해 손해를 멈추는 지점을 설정하세요.
부적절한 매개 변수 설정은 과도한 거래 또는 놓친 기회로 이어질 수 있습니다. 매개 변수는 반복 테스트 및 최적화가 필요합니다.
더 넓은 시장이 크게 변동 할 때 함정에 빠지기 쉽습니다. 잘못된 판단을 피하기 위해 흰색 / 검은색 촛불 결정 기준을 높여보십시오.
복합적인 지표와 촛불 패턴을 결합하여 BOLL, MACD 등과 같은 반전을 결정하여 판단의 정확성을 향상시킵니다.
거래량 또는 변동성 지표를 촛불 패턴과 결합하여 거래량 부족을 피하기 위해 추가하십시오.
스톱 손실 논리를 추가합니다. 고정된 지점 또는 추적 스톱 손실을 설정합니다.
가장 좋은 매개 변수 조합을 찾기 위해 매개 변수를 최적화합니다.
최적의 응용 환경을 찾기 위해 더 많은 품종과 사이클 데이터를 테스트하십시오.
일반적으로 이 전략은 간단한 지표를 사용하여 단기 시장 반전을 포착하는 비교적 보편적인 단기 전략이다. 이 전략의 장점은 이해하기 쉽고 명확한 논리이며 일부 최적화로 좋은 결과를 얻는다. 그러나 정지 손실, 엄격한 반전 기준 등과 같은 수단이 필요한 몇 가지 전형적인 반전 전략 위험도 있습니다. 양적 거래를 배우고 연습하는 데 도입 전략으로 사용될 수 있습니다.
/*backtest start: 2023-12-07 00:00:00 end: 2023-12-14 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © stormis // Based on strategy by hackertrader (original idea by QuantpT) //@version=5 strategy(title="Mean reversion", shorttitle="MeanRev", precision=16 , overlay=true) moveLimit = input(70) maLength = input(200) ma = ta.sma(close, maLength) downBar = open > close isThreeDown = downBar and downBar[1] and downBar[2] isThreeUp = not downBar and not downBar[1] and not downBar[2] isBigMoveDown = ((open - close) / (0.001 + high - low)) > moveLimit / 100.0 isBigMoveUp = ((close - open) / (0.001 + high - low)) > moveLimit / 100.0 isLongBuy = isThreeDown and isBigMoveDown isLongExit = close > high[1] isShortBuy = isThreeUp and isBigMoveUp isShortExit = close < low[1] strategy.entry("Entry Long", strategy.long, when=isLongBuy) strategy.close("Entry Long", when=isLongExit) strategy.entry("Entry Short", strategy.short, when=close < ma and isShortBuy) strategy.close("Entry Short", when=isShortExit) plot(ma, color=color.gray)