듀얼라인 추적 반전 이동평균 시스템


생성 날짜: 2023-11-07 16:00:33 마지막으로 수정됨: 2023-11-07 16:00:33
복사: 0 클릭수: 615
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

듀얼라인 추적 반전 이동평균 시스템

개요

쌍선 추적 반전 평균선 시스템은 123 형식의 반전 전략과 일목요소 균형표 전략을 결합하여 반전 기회를 탐지하고 추세를 추적하여 초과 수익을 얻습니다.

전략 원칙

이 전략은 다음의 두 가지 세부 전략으로 구성됩니다.

  1. 123 형태 역전 전략

이 전략은 가격 형태를 기반으로 거래한다. 구체적인 논리는 다음과 같다:

  • 2일 연속으로 상향상승을 거듭하고 9일 연속으로 느린 K선에서 50이 넘으면 더 많이 한다.
  • 2일 연속으로 하락하고 9일에는 K선이 50보다 높을 때

이 전략은 가격이 전날의 종결 가격을 돌파하는 방식을 사용하여 반전을 판단하고, 주식 K-라인 포지션 지표를 사용하여 충격적인 종결을 제거한다.

  1. 첫눈의 균형표 전략

이 전략은 초점 균형표의 5선 교차를 기반으로 거래한다. 구체적인 논리는 다음과 같다:

  • 매출액이 지수선보다 높을 때 더 많이 투자하십시오.
  • 마감값이 변동선 아래로 떨어지면 공백을 씁니다.

이 중, 기준선은 지난 26일간의 최고 가격과 최저 가격의 중간 지점이며, 변환선은 지난 9일간의 최고 가격과 최저 가격의 중간 지점이다. 이 전략은 평행선 교차 시스템 탐색 경향을 이용한다.

최종 전략은 두 가지 하위 전략의 신호에 따라 결합되며, 둘 다 상향 또는 하향으로 포지션을 열 때, 서로 상향으로 평형 포지션을 다.

우위 분석

  • 역전과 트렌드를 결합하여 역전 기회를 잡을 수 있고, 트렌드를 추적할 수 있으며, 전략이 유연하다.
  • 123 형태는 간단하고 실용적이며, 중요한 전환점을 효과적으로 식별할 수 있다.
  • 초점 평형표의 매개 변수는 최적화되어 있으며, 돌파 위험이 작다.
  • 두 가지 다른 유형의 전략이 결합되어 전략 최적화를 실현할 수 있다.

위험 분석

  • 반전 전략은 함정에 빠지기 쉽고 손실 위험이 있다. 거래 주기를 적절히 단축하거나 위험을 제어하기 위해 스톱을 증가시킬 수 있다.
  • 일시 균형표는 흔들리는 상황에서 쉽게 틀릴 수 있으며, 불필요한 거래를 줄이기 위해 파라미터를 적절히 조정하거나 필터 조건을 추가할 수 있다.
  • 두 가지 전략이 결합될 때, 매개 변수 매칭이 잘못되면 신호가 너무 빈번하거나 희박하게 될 수 있으며, 신중한 테스트와 최적화가 필요합니다.

최적화 방향

  • 더 많은 조합을 테스트하여 더 나은 필터링 방법을 찾습니다. 예를 들어 결합량 지표 등입니다.
  • 초기 균형표의 매개 변수를 최적화하여 특정 제품 특성에 더 적합하게 만듭니다.
  • 손해 방지 제도를 늘린다. ATR에 따라 지분 손해 방지 제도를 설정할 수 있다.
  • 돈 관리 모듈을 추가하여 위험을 통제합니다.
  • 재검토에서 더 많은 데이터를 수집하고, 전략을 다방면으로 테스트하고, 문제를 발견하고, 지속적으로 최적화합니다.

요약하다

쌍선 추적 반전 평행선 시스템은 역전과 트렌드 전략을 통합적으로 적용하여 변수 최적화와 전략 결합을 통해 초과 수익을 창출합니다. 이 전략에는 거래 장점이 있지만, 수축과 손실의 위험이 있습니다. 우리는 전략의 안정성과 실장 성능을 향상시키기 위해 전략의 논리를 지속적으로 최적화하고 엄격한 위험 관리 조치와 함께 재검토 할 필요가 있습니다.

전략 소스 코드
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//  Ichimoku Strategy
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

middleDonchian(Length) =>
    lower = lowest(Length)
    upper = highest(Length)
    avg(upper, lower)    
    
Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement) =>
    pos = 0.0
    Tenkan = middleDonchian(conversionPeriods)
    Kijun =  middleDonchian(basePeriods)
    xChikou = close
    SenkouA = middleDonchian(laggingSpan2Periods)
    SenkouB = (Tenkan[basePeriods] + Kijun[basePeriods]) / 2
    pos := iff(close < SenkouA[displacement], -1,
              iff(close > SenkouB, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ichimoku2c", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
conversionPeriods = input(9, minval=1),
basePeriods = input(26, minval=1)
laggingSpan2Periods = input(52, minval=1),
displacement = input(26, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posIchimoku2c = Ichimoku2c(conversionPeriods, basePeriods,laggingSpan2Periods,displacement)
pos = iff(posReversal123 == 1 and posIchimoku2c == 1 , 1,
	   iff(posReversal123 == -1 and posIchimoku2c == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )