더블 리버설 퍼센트 변화 막대 차트 양적 전략


생성 날짜: 2023-12-06 17:44:35 마지막으로 수정됨: 2023-12-06 17:44:35
복사: 0 클릭수: 581
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

더블 리버설 퍼센트 변화 막대 차트 양적 전략

개요

이 전략의 이름은 이중 반전 비율 변화 기둥 모양을 수치화하는 전략 이다. 이 전략은 두 가지의 다른 유형의 전략을 통합하여 조합 거래하여 각자의 장점을 발휘하여 더 나은 거래 효과를 얻는다.

첫 번째 전략은 반전 전략 원칙을 적용하여 종결 가격과 이전 하루 또는 며칠의 비교를 바탕으로 스토흐 지표와 함께 반전 신호가 발생했는지 판단합니다. 두 번째 전략은 퍼센트 변화 기둥형 도표 지표를 사용하여 매일의 하락 변화의 폭을 판단하여 포지션을 구축하는 근거로 사용합니다.

전략 원칙

이중 회전 비율 변화 기둥 그래프의 양적화 전략은 두 가지 구성 요소를 사용합니다:

첫 번째 부분은 123 역전 전략입니다.

  1. 만약 종결 가격이 전날의 종결 가격보다 낮고, 스톡의 빠른 선이 느린 선보다 높고 50 수준 이상이라면, 과매매 상태라고 여겨져 판매 신호를 발생시킨다.

  2. 종결 가격이 전날의 종결 가격보다 높고, 스토흐 빠른 선이 느린 선보다 낮고, 50 수준 이하라면, 오버셀 영역에 있다고 여겨지며, 구매 신호를 발생시킨다.

  3. 생성된 구매 및 판매 신호에 따라, 해당하는 다단계 또는 빈단계 포지션을 설정한다.

두 번째 부분은 백분율 변화 기둥 그래프 지표입니다. 이 지표의 판단 논리는 다음과 같습니다:

  1. 현재 K선과 N근 이전 K선 (input_barsback 정의) 의 변화 비율을 계산한다.

  2. 변동 비율이 BuyZone에 정의된 긍정적인 영역보다 높으면 구매 신호를 발생시키고, SellZone에 정의된 부정적인 영역보다 낮으면 판매 신호를 발생시킨다.

  3. 생성된 구매 및 판매 신호에 따라, 해당하는 다단계 또는 빈단계 포지션을 설정한다.

마지막으로, 두 가지 전략에서 생성된 신호가 일치하면 실제 포지션은 구축된다. 신호가 일치하지 않으면 포지션 변화가 없다.

우위 분석

이중 반전 비율 변화 기둥 그래프의 양적화 전략은 다음과 같은 장점이 있다:

  1. 두 가지 다른 유형의 전략의 장점을 흡수하여 더 안정적인 수익을 얻을 수 있습니다. 123 역전 전략은 시장의 역점을 판단 할 때 우수한 성능을 발휘합니다. 퍼센트 변화 기둥 도표 지표는 돌파구 행동을 신속하게 식별합니다. 둘을 결합하면 역전을 식별 할 수 있으며 추세를 잡을 수 있습니다.

  2. 두 가지 전략적 신호의 조합으로, 일부 잘못된 신호를 효과적으로 필터링하여 불필요한 중지 손실을 줄이고 거래 위험을 줄일 수 있습니다.

  3. 123 역전략 파라미터를 최적화할 수 있는 공간이 넓고, 파라미터 조합을 조정하여, 다른 품종과 주기들에 대해 최적화된 적응을 할 수 있다.

  4. 비율 변화 기둥 도표 전략은 직관적이며, 매개 변수를 조정하여 거래 위험을 파악하고 제어하는 것이 쉽습니다.

위험 분석

이중 반전 비율 변화 기둥 그래프의 전략에는 몇 가지 위험도 있습니다.

  1. 두 가지 전략 신호가 일치하지 않으면 포지션을 만들 수 없으며, 일부 거래 기회를 놓칠 수 있습니다. 일치 가능성을 높이기 위해 비율 변화 기둥 도형의 파라미트 범위를 적절히 느려질 수 있습니다.

  2. 123 역전 전략은 매개 변수에 민감하며, 부적절한 매개 변수 조합은 과도한 오류 신호를 발생시킬 수 있다. 다양한 품종의 개별 테스트 매개 변수에 대응하여 매개 변수가 안정되도록 한다.

  3. 만약 백분율 변화 기둥 그래프에서 생성된 매매 신호 방향이 잘못되고, 123 역전 신호와 일치하면, 큰 손실이 발생할 수 있다. 백분율 변화 파라미터의 범위를 적절히 축소하여, 위험을 제어한다.

  4. 전략이 일정 시간 동안 실행되면, 매개 변수의 적응성이 떨어진다. 전략의 수익 곡선과 거래 신호를 모니터링하여 매개 변수 조정의 시간을 판단해야합니다.

최적화 방향

이중 회전 비율 변화 기둥 그래프의 전략은 다음과 같은 방향으로 최적화할 수 있다:

  1. 123 역전 전략의 Length, KSmoothing, DLength와 같은 파라미터를 최적화하여 다른 품종과 주기에 더 적합한 파라미트 조합을 찾습니다.

  2. 백분율 변화 기둥 도형의 변수 input_barsback를 조정하여 더 긴 또는 더 짧은 회귀 기간이 전략에 미치는 영향을 판단한다.

  3. 스톱로스 전략을 도입함으로써, 백분율 변화 기둥 모양 그래프에서 잘못된 신호가 발생하는 큰 손실을 효과적으로 방지할 수 있다.

  4. 기계학습과 같은 방법을 통해 더 높은 승률을 얻기 위해 거래시기를 더 정확하게 판단하는 비율 변화 모델을 훈련시키려고 노력합니다.

  5. 다른 보조 기술 지표 판단을 추가하고, 전략적 거래 신호를 풍부하게하고, 거래 빈도를 높여줍니다.

요약하다

이중 반전 비율 변화 기둥 그래프 수량화 전략은 두 가지 다른 유형의 전략의 장점을 최대한 활용하여, 위험을 제어하면서 수익 공간을 높인다. 이 전략은 이해하기 쉽고 최적화 조정, 연구와 실습에 매우 적합하다. 추가적인 매개 변수 조정과 전략 최적화를 통해 더 안정적인 초과 수익을 얻을 수 있다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 31/03/2021
// 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
//  This histogram displays price or % change from previous bar. 
//
// 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


PCB(input_percentorprice,input_barsback,SellZone,BuyZone) =>
    pos = 0.0
    xPrice = close
    xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
    pos := iff(xPrice1 > BuyZone, 1,
             iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Percent change bar", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Percent change bar ----")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPCB = PCB(input_percentorprice,input_barsback,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posPCB == 1 , 1,
	   iff(posReversal123 == -1 and posPCB == -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 )