모멘텀 지표와 스토캐스틱 지표를 결합한 전략


생성 날짜: 2023-12-26 14:30:23 마지막으로 수정됨: 2023-12-26 14:30:23
복사: 0 클릭수: 761
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

모멘텀 지표와 스토캐스틱 지표를 결합한 전략

개요

이 전략은 트렌드 지수와 랜덤 지수를 결합하여 거래 신호를 생성합니다. 트렌드 지수에서 DI+, DI- 및 ADX 라인은 트렌드 방향과 강도를 판단하고, 랜덤 지수에서% K 라인은 과매도 과매도 여부를 판단합니다. 전략은 DI+가 DI-, ADX가 25%보다 높고 20% 이하의 경우 다중 신호를 생성합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같은 부분들에 기반합니다.

  1. 트렌드 지수 판단 트렌드: DI+ , DI- 및 ADX를 통해 시장 경향의 방향과 강도를 판단한다. DI+가 DI-보다 높으면 다목적 경향을 나타냅니다. DI-가 DI+보다 높으면 공백 경향을 나타냅니다. ADX는 트렌드의 강도를 판단하는 데 사용되며, 수치가 더 높으면 트렌드가 더 분명하다는 것을 나타냅니다.

  2. 무작위적 인 지표는 과매매를 판단합니다.: 무작위 지표의 %K 선은 현재 종결 가격의 일정 기간 동안의 최고 가격과 최저 가격의 위치를 나타냅니다. 시장이 과매매되고 있는지 여부를 판단하는 데 사용됩니다. %K가 20보다 낮으면 과매, 80보다 높으면 과매입니다.

  3. 신호는 논리를 생성합니다.트렌드 지수와 무작위 지표를 결합하여, 이 전략은 DI+가 DI- ((다중향 트렌드), ADX가 25% 이상 (트렌드가 뚜렷하다) 와 %K가 20% 이상 (오버셀) 이 있을 때 다중향 신호를 발생시킨다. DI-가 DI+ ((공대향 트렌드), ADX가 25% 이상 (공대향 트렌드), %K가 80% 이상 (오버빌) 이 있을 때 공대 신호를 발생시킨다.

  4. 동적 상쇄 방식: 마지막 진입점 이후의 최고 가격과 최저 가격을 기록하고, 이를 동적인 스톱로스로 사용한다. 이렇게 하면 시장의 변동에 따라 수익을 잠금화하거나 위험을 통제할 수 있다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 트렌드 지수와 랜덤 지수의 이중 판단을 결합하면 신뢰성이 높다. 트렌드 지수는 주 트렌드 방향을 판단하고, 랜덤 지수는 지역 특성을 포착하며, 둘은 상호 보완된다.

  2. 혁신적인 동적 손해제도. 최근 변동에 따라 손해점을 설정하여 실제 시장 상황에 따라 위험을 제어할 수 있으며, 손해제도 효과도 좋다.

  3. 전략의 매개 변수가 적고, 구현하기 쉽다. 주요 매개 변수는 지표 계산 길이에 불과하며, 전략을 조정하고 최적화하기 쉽다.

  4. 다양한 품종과 주기에서 광범위하게 적용할 수 있다. 주식, 외환, 암호화폐 등 금융 시장에서도 이 전략을 사용할 수 있다.

  5. 파인 스크립트를 사용하여 작성되어 거래 플랫폼에 직접 적용할 수 있으며, 편리하고 빠르다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 동향이 흔들릴 때, 잘못된 신호가 발생하기 쉽다. 이 때 ADX는 상대적으로 낮기 때문에 포지션을 낮추어 위험을 회피해야 한다.

  2. 무작위 지표는 그 자체로 후기 지표이며, 신호를 생성할 때 시장이 반전되었을 수 있다. 다른 선행 지표와 적절히 결합되어야 한다.

  3. 동적 상쇄 메커니즘은 거대한 시장의 충격을 완전히 피할 수 없습니다. 합리적인 상쇄 지점 거리를 설정하는 것이 좋습니다.

  4. 매개 변수 설정이 잘못되면 정책 효과에도 영향을 미칠 수 있습니다. 적절한 지표 길이 매개 변수를 선택하십시오.

  5. 전체적인 시장 환경을 면밀히 관찰해야 한다. 주요 블랙 스 사건이 발생했을 때, 비정상적인 손실을 피하기 위해 전략을 중단해야 한다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 다른 판단 지표를 추가하여 여러 필터링을 형성하고 신호의 신뢰성을 향상시킵니다. 예를 들어, 평균선 판단 경향에 가입하고, MACD 판단 이탈 등이 있습니다.

  2. 최적화된 파라미터 설정을 선택하여 최적의 파라미터 조합을 선택한다. 역사 데이터를 재검토하여 가장 적합한 지표 길이를 결정할 수 있다.

  3. 다른 품종과 거래 주기에 따라 다른 파라미터를 설정하십시오. 높은 주파수 거래에 적합한 품종은 계산 주기를 줄일 수 있습니다.

  4. getInfo 함수와 로그 기록 기능과 결합하여 전략 분석 및 최적화를 위한 상세한 거래 로그 및 지표 데이터를 출력한다.

  5. 파인 에디터에서 차트 그리기를 추가하여 거래 신호 포인트를 표시한다. 또한 스톱 로즈의 움직임을 표시할 수 있다.

  6. 특정 조건이 충족될 때 메시지를 상기시키는 경보 기능을 개발하여 거래에 적시에 개입할 수 있다.

요약하다

이 전략은 종합적으로 트렌드 지수와 무작위 지표의 장점을 사용하여 트렌드 방향을 판단하고 동시에 오버 바이 오버 셀 영역을 배치하여 거래 신호를 생성합니다. 동시에 혁신적으로 설계된 동적 스톱 로즈 방식은 위험 관리를 더 지능화하고 자동화합니다. 이 전략 신호는 신뢰할 수 있고, 적용 범위가 넓고, 사용하기 편리하며, 효율적이고 실용적인 수량화 거래 전략입니다. 지속적인 최적화 및 개선으로 이 전략은 더욱 우수한 전략 성능을 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DMI with Stochastic and Dynamic Stop-Loss", shorttitle="DMI_Stoch_SL", overlay=true)

length = input(14, title="DMI Length")
adxThreshold = input(25, title="ADX Threshold")
stochKLength = input(14, title="Stochastic %K Length")
stochDLength = input(3, title="Stochastic %D Length")

[diPlus, diMinus, adx] = ta.dmi(length, length)
stochKLine = ta.stoch(close, high, low, stochKLength)

var float lowestClose = na
var float highestClose = na
lowestClose := na(lowestClose) ? close : math.min(lowestClose, close)
highestClose := na(highestClose) ? close : math.max(highestClose, close)

longCondition = (diPlus > diMinus) and (adx > adxThreshold) and (stochKLine < 20)
shortCondition = (diMinus > diPlus) and (adx > adxThreshold) and (stochKLine > 80)

if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=lowestClose)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=highestClose)