더블 골든 크로스 반전 트레이딩 전략


생성 날짜: 2023-11-03 15:32:38 마지막으로 수정됨: 2023-11-03 15:32:38
복사: 0 클릭수: 634
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 골든 크로스 반전 트레이딩 전략

개요

이중 골드 크로스 반전 거래 전략은 종합적으로 증권 기술 분석 지표를 사용하는 거래 전략이다. 그것은 123 형태 반전 전략과 양자 파동 대역 지표를 결합하여 더 신뢰할 수 있는 거래 신호를 얻기 위해 여러 가지 거래 신호의 결합을 실현한다.

전략 원칙

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

  1. 123 형태 역전 전략

그것의 거래 신호는 주식의 종결 가격에서 유래한다. 종결 가격 관계가 연속적으로 2일 동안 변화할 때 신호가 발생한다. 즉, 전날의 종결 가격이 전날보다 높고, 그 날의 종결 가격이 전날보다 낮으면, 상쇄 신호가 발생한다. 전날의 종결 가격이 전날보다 낮고, 그 날의 종결 가격이 전날보다 높으면, 더 많은 신호가 발생한다. 동시에, 이 신호는 9일 스토치 지표 전환이 발생했을 때만 활성화되어야 한다. 즉, 더 많은 신호가 발생하면, 빠른 선이 느린 선보다 느리게 나타나면, 더 많은 신호가 활성화된다.

  1. 양자파역 전략

이 전략은 순수의 무작위 분포 특성을 활용하여 가격 변동의 범위를 결정한다. 우선 가격 인근의 일정한 비율 범위 내의 최고 및 최저 순수를 계산하고, 이 두 개의 순수를 사용하여 채널을 구성한다. 가격이 채널의 가장자리를 만지면 거래 신호를 발생시킨다. 즉, 가격이 상단 가장자리를 통과하면 다중 신호를 발생시키고, 가격이 하단 가장자리를 통과하면 빈 신호를 발생시킨다.

이 두 개의 하위 전략을 합성하면, 두 가지의 신호가 일치하면 최종 거래 신호가 생성된다. 즉, 123 형태 반전 전략과 양수 파동 밴드 전략이 동시에 다중 신호를 생성하면 최종 다중 신호가 생성된다. 두 가지의 신호가 일치하지 않으면 거래가 이루어지지 않는다.

우위 분석

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

  1. 다양한 신호를 결합하여 수익률을 높여줍니다.

두 가지 다른 유형의 전략 신호를 결합하여 신호의 신뢰성을 검사하여 수익성이 높은 거래 기회를 가할 수 있습니다.

  1. 123 형태 역전에는 높은 승률이 있다.

123 형태 반전은 고전적인 반전 거래 전략으로, 단기 오버 바이 오버 셀 현상이 가져오는 반전 기회를 포착할 수 있으며, 높은 실장 거래 승률을 가지고 있다.

  1. 양자파는 가격 법칙을 이용한다.

질수파역은 질수의 고유한 무작위성을 사용하여 가격 변동 범위를 판단하여 주관적 요소의 영향을 피하고 거래 신호의 객관성을 강화합니다.

  1. 전략적 아이디어가 새롭고, 중매가 불가능합니다.

이 전략은 여러 지표를 통합하여 거래하고, 다른 계열 전략으로 수익을 취하기 쉽지 않은 혁신적입니다.

위험 분석

이 전략에는 다음과 같은 위험도 있습니다.

  1. 역전 실패 위험

123 형태 반전은 반전 거래 전략에 속하며, 가짜 반전이 발생하면 반전이 실패하여 손실이 발생한다.

  1. 질적 수치파는 실패할 위험이 있습니다.

질량파띠는 특정 변수 설정에 의존하며, 만약 변수 설정이 잘못되면 질량파띠가 무효화되어 가이드 역할을 할 수 없다.

  1. 다중 신호로 거래 빈도가 증가

이 전략은 두 개의 신호원을 통합하여 단일 신호원 전략보다 거래 빈도가 더 높으며 거래 비용이 잘 통제되지 않으면 수익이 침식될 수 있습니다.

  1. 매개 변수 최적화 난이도가 높다

동시에 두 가지 전략을 결합하기 때문에 최적의 효과를 얻기 위해 최적의 변수 조합을 찾는 것이 더 어렵습니다.

최적화 제안

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

  1. 단독 손실을 통제하기 위해 Stop Loss Strategies에 가입하십시오.

  2. 최신 시장 상황에 맞게 질적 음원 대역의 매개 변수를 최적화한다.

  3. 거래 주파수를 제어하여 거래 주파수가 너무 높기 때문에 거래 수수료 손실을 방지하십시오.

  4. 기계 학습 알고리즘을 추가하여 전략의 매개 변수를 자동으로 최적화합니다.

  5. 수량과 가격과 같은 보조 판단 지표를 추가하여 신호의 정확도를 더욱 높일 수 있습니다.

요약하다

이중 골드 크로스 역전 거래 전략은 여러 가지 기술 지표를 종합적으로 사용하여 거래합니다. 여러 가지 신호의 검증과 필터링을 통해 일부 노이즈 거래를 필터링하여 더 높은 확률의 거래 기회를 얻을 수 있습니다. 그러나이 전략에는 어느 정도의 위험이 있으며 위험을 제어하고 전략의 효과를 강화하기 위해 적절한 최적화가 필요합니다. 위험이 통제되면이 전략은 안정적이고 신뢰할 수있는 양적 거래 전략이 될 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/04/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
// Determining market trends has become a science even though a high number 
// or people still believe it’s a gambling game. Mathematicians, technicians, 
// brokers and investors have worked together in developing quite several 
// indicators to help them better understand and forecast market movements.
// The Prime Number Bands indicator was developed by Modulus Financial Engineering 
// Inc. This indicator is charted by indentifying the highest and lowest prime number 
// in the neighborhood and plotting the two series as a band.
//
// 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

PrimeNumberUpBand(price, percent) =>
    res = 0.0
    res1 = 0.0
    for j = price to price + (price * percent / 100)
        res1 := j
	    for i = 2 to sqrt(price)
        	res1 := iff(j % i == 0 , 0, j)
            if res1 == 0 
                break
		if res1 > 0 
		    break
    res := iff(res1 == 0, res[1], res1)
    res

PrimeNumberDnBand(price, percent) =>
    res = 0.0
    res2 = 0.0
    for j = price to price - (price * percent / 100)
        res2 := j
	    for i = 2 to sqrt(price)
        	res2 := iff(j % i == 0 , 0, j)
            if res2 == 0 
                break
		if res2 > 0 
		    break
    res := iff(res2 == 0, res[1], res2)
    res

PNB(percent, Length,srcUp,srcDn) =>
    pos = 0.0
    xPNUB = PrimeNumberUpBand(srcUp, percent)
    xPNDB = PrimeNumberDnBand(srcDn, percent)
    xHighestPNUB = highest(xPNUB, Length)
    xLowestPNUB = lowest(xPNDB, Length)
    pos:= iff(close > xHighestPNUB[1], 1,
             iff(close < xLowestPNUB[1], -1, nz(pos[1], 0))) 
    pos


strategy(title="Combo Backtest 123 Reversal & Prime Number Bands", 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, "---- Prime Number Bands ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
Length_PNB = input(5, minval=1)
srcUp = input(title="Source Up Band", type=input.source, defval=high)
srcDn = input(title="Source Down Band", type=input.source, defval=low)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNB = PNB(percent, Length_PNB,srcUp,srcDn)
pos = iff(posReversal123 == 1 and posPNB == 1 , 1,
	   iff(posReversal123 == -1 and posPNB == -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 )