
이 전략은 쌍평균선을 사용하여 시장의 역전을 판단하는 짧은 라인 거래 전략이다. 그것은 상향 추세 또는 하향 추세에 있는 현재를 판단하기 위해 전 3개의 K 라인의 종결 관계를 판단하여, 추세가 변하는 것을 감지하면 적절한 추가 하위 거래를 수행한다. 동시에, 전략은 간단한 이동 평균을 사용하여 하위 신호를 필터링하여 거래 위험을 줄인다.
이 전략의 주요 판단 지표는 상위 3 K 선의 종결 가격 관계이다. 상위 3 K 선이 음인 경우 현재 하향 추세에 있다고 판단한다. 상위 3 K 선이 양인 경우 현재 상향 추세에 있다고 판단한다. 하향 추세 이후에 큰 양이 나타났을 때, 더 많이 하고, 상향 추세 이후에 큰 음이 나타났을 때, 공백을 한다.
더 많이 하는 구체적인 판단 논리는 다음과 같다: 만약 앞의 세 개의 K 선이 모두 음이고, 마지막 K 선이 큰 음이라면 더 많이 한다. 평점 판단 논리는 가격이 앞의 K 선의 가장 높은 지점을 때 평점이다.
공백의 구체적인 판단 논리는 다음과 같습니다: 첫 번째 세 K 선이 모두 선선이고 마지막 K 선이 대 선선이고, 가격이 간단한 이동 평균보다 낮을 때 공백을 한다. 평소 위치 판단 논리는 가격이 이전 K 선의 최저 지점으로 떨어질 때 평소 위치이다.
이동 평균의 길이와 대양 대양 선의 폭의 크기는 사용자가 입력한다.
K선 형태를 사용하여 시장의 역전점을 판단하고, 트렌드에서 서로 추격하는 것을 피하고, 손실을 줄인다.
이동 평균 필터링 신호와 결합하여 목표 선에서 너무 일찍 공백을 피하십시오.
전략적 논리는 간단하고 명확하며, 이해하기 쉽고 수정하기 쉽습니다.
다양한 품종과 시간 주기에 맞게 사용자 정의 가능한 파라미터
특정 조건에서, 단기 조정 기회를 적시에 잡는 것이 좋습니다.
시장은 연속적으로 3개의 대阴线 또는 대阳线의 가짜 반전이 발생할 수 있으며, 이때 입장은 갇히게 된다. 이 위험을 줄이기 위해 더 엄격한 반전 조건이 설정될 수 있다.
반전 실패 후 쉽게 쫓겨나 쓰러진다. 위험을 통제하기 위해 스톱로스를 설정할 수 있다.
매개 변수 설정을 잘못하면 너무 자주 출전하거나 좋은 기회를 놓치게 될 수 있다. 매개 변수를 반복적으로 테스트하고 최적화해야 한다.
대盘震动时,容易被套. 陽陰陽判定标准을 높여서 잘못된 판단을 방지할 수 있다.
보다 복잡한 지표와 결합된 K선형 판단 역전, 예를 들어 BOLL, MACD 등은 판단 정확도를 향상시킬 수 있다.
거래량이나 변동성 같은 지표와 K선 형태를 조합하여 Volume 공백을 피하십시오.
스톱 로직을 추가한다. 고정 점수 스톱 또는 추적 스톱을 설정한다.
최적화된 변수를 찾아서 최적의 변수 조합을 찾습니다.
더 많은 품종과 주기 데이터를 테스트하여 최적의 환경을 찾습니다.
이 전략은 전반적으로 간단한 지표를 사용하여 시장의 단기 반전을 포착하는 비교적 일반적인 단선 전략이다. 그것의 장점은 이해하기 쉽고, 논리가 명확하며, 약간의 최적화를 통해 좋은 효과를 얻을 수 있다. 그러나 또한 몇 가지 전형적인 반전 전략 위험이 존재하며, 스톱 손실 설정, 엄격한 반전 조건 판단 등의 수단으로 위험을 제어 할 필요가 있다. 이 전략은 정량 거래의 입문 전략으로 학습 및 연습 할 수 있다.
/*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)