더블 인버전 포인트 지수 이동 평균 전략


생성 날짜: 2023-12-08 11:37:36 마지막으로 수정됨: 2023-12-08 11:37:36
복사: 2 클릭수: 650
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

더블 인버전 포인트 지수 이동 평균 전략

개요

이중 역전점 지수평선 전략은 역전 거래와 동적 지지부진을 결합한 전략이다. 그것은 스토크 지수를 사용하여 시장의 역전점을 판단하고, 당일 고저가와 종식 가격과 결합하여 동적 지지부진을 계산하고, 두 전략 신호가 동시에 구매 또는 판매 신호를 발송할 때 주문한다. 이 전략은 중간에 짧은 라인 거래에 적합하다.

전략 원칙

역전 전략

반전 전략은 시장이 과대평가되거나 과소평가되면 가격이 가치 범위에 반전하는 경향이 있다는 원칙에 기초한다. 구체적으로, 반전 전략은 울프 젠센의 규칙을 참조한다:

종결 가격이 2일 연속으로 이전 종결 가격보다 높고, 9일 슬로우 K 선이 50보다 낮으면 더 많이; 종결 가격이 2일 연속으로 이전 종결 가격보다 낮고, 9일 패스트 K 선이 50보다 높으면 더 많이.

역동적인 지원 저항 전략

동적 지원 저항 전략은 전날의 최고 가격, 최저 가격 및 종결 가격에 따라 매일 당일 지원 저항 수준을 계산합니다. 계산 방법은 다음과 같습니다:

중심점 = (최고 가격 + 최저 가격 + 종점 가격) / 3

지지 1=중심점- (최고 가격-중심점)

저항 1=중심점+ (중심점-최저값)

그날의 종결 가격이 저항 1선보다 높으면 더 많이 하고, 그날의 종결 가격이 지지 1선보다 낮으면 더 많이 한다.

이중 신호

이 전략은 반전 전략과 동적 지원 저항 전략을 결합한다. 두 가지 신호가 동시에 발신될 때만 주문을 할 수 있다. 이렇게하면 일부 잡음 거래를 필터링하여 안정성을 향상시킬 수 있다.

우위 분석

이중 역전점 지수 평행선 전략의 가장 큰 장점은 역전 전략과 동적 지지 저항 전략의 장점을 결합하여 시장 전환점에서 더 큰 움직임을 포착 할 수 있으며, 또한 당일 가격과 중요한 포인트의 관계에 따라 방향을 판단 할 수 있습니다. 단일 전략에 비해 일부 잡음 거래를 필터링하여 안정성을 향상시킬 수 있습니다.

또한, 이 전략은 적은 수의 변수를 가지고 있으며, 구현 및 최적화하기가 쉽습니다.

위험 분석

이중 역전점 지수평선 전략에는 다음과 같은 위험도 있습니다.

  • 역전 실패 위험. 시장 가격이 초확장될 수 있으며, 역전 신호가 발급된 후에도 가격이 실질적인 역전 없이 계속 운행된다.

  • 지원 저항이 깨지는 위험. 당일 가격이 계산된 지원 또는 저항 지점을 깨서 잘못된 신호를 생성 할 수 있습니다.

  • 이중 신호는 너무 보수적이고, 시장에서 놓칠 위험이 있습니다. 이중 신호 시스템은 더 많은 거래 기회를 필터링 할 수 있습니다.

대책:

  • 적절한 변수 조정, 주요 지원 및 저항 수준의 식별.

  • Stop Loss을 사용하여 손실을 제어하십시오.

  • 이중 신호 규칙을 적절히 조정하여 더 많은 거래 기회를 유지하십시오.

최적화 방향

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

  1. 다양한 스토크 지표 파라미터를 테스트하여 역전 신호의 민감도를 식별한다.

  2. 다른 평형 시스템들을 테스트하는 것 Tracking longer term trends

  3. 거래량 에너지 지표와 같은 시장 구조를 판단하는 다른 요소를 추가하십시오.

  4. 더 많은 거래 기회를 허용하기 위해 이중 신호 규칙을 최적화하십시오.

  5. 위험 통제를 위한 스톱로스 전략을 추가한다.

요약하다

이중 역전점 지수 평선 전략은 역전 거래와 동적 지지 저항 판단을 결합하여 시장 전환점에서 큰 이익을 얻을 수 있으며, 또한 당일 가격과 핵심 포인트 관계에 따라 트렌드 방향을 판단 할 수 있습니다. 단일 전략에 비해 소음을 필터링 할 수 있으며 안정성이 좋습니다. 이 전략은 적절한 매개 변수를 최적화하고 다른 지표를 테스트하여 효과를 향상시킬 수 있습니다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/03/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
// This Pivot points is calculated on the current day.
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// 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

DPP() =>
    pos = 0
    xHigh  = security(syminfo.tickerid,"D", high[1])
    xLow   = security(syminfo.tickerid,"D", low[1])
    xClose = security(syminfo.tickerid,"D", close[1])
    vPP = (xHigh+xLow+xClose) / 3
    vR1 = vPP+(vPP-xLow)
    vS1 = vPP-(xHigh - vPP)
    pos := iff(close > vR1, 1,
             iff(close < vS1, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Dynamic Pivot Point", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPP = DPP()
pos = iff(posReversal123 == 1 and posDPP == 1 , 1,
	   iff(posReversal123 == -1 and posDPP == -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 )