연속 하락-상승 반전 전략


생성 날짜: 2024-03-08 17:01:33 마지막으로 수정됨: 2024-03-08 17:01:33
복사: 0 클릭수: 367
avatar of ChaoZhang ChaoZhang
1
집중하다
1237
수행원

연속 하락-상승 반전 전략

개요

연속적인 하락- 반전 전략은 가격 하락과 ?? 연속성을 기반으로 한 양적 거래 전략이다. 이 전략은 연속적인 X 뿌리 하락이 가장 낮은 지점을 넘어, 이어서 연속적인 Y 뿌리 이 상승하는 형태를 식별하여 단기 트렌드 반전 기회를 포착한다. 전략의 주요 아이디어는, 가격이 연속적인 하락을 겪은 후, 공수 동력이 방출되었다는 것을 나타내고, 이어서 연속적인 이 발생하면, 다목적 힘이 축적되기 시작하여 가격이 반동의 물결을 맞이할 수 있다는 것을 의미한다. 따라서, 이 전략은 이러한 공수 다목적 가격 반전 기회를 포착하여 이익을 얻으려고 노력한다.

전략 원칙

연속적인 하락-하락 역전 전략의 원리는 다음과 같은 몇 가지 단계로 나눌 수 있다:

  1. 매개 변수 설정: 연속 상하근수 ((consecutiveBarsDown) 와 연속 양근수 ((consecutiveBarsUp) 를 설정한다.
  2. 시장의 추세를 판단하기: 현재 가격의 연속적인 하락 (dns) 과 연속적인 상승 (ups) 의 근수를 계산한다.
  3. 입시 조건: 다음 조건이 충족되면 더 많은 상장을 한다:
    • 현재 거래시간은 재측정 범위내에서
    • K 선의 앞쪽과 뒷쪽은 연속적으로 ConsecutiveBarsDown로 설정됩니다.
    • 현재 K선 연속 바스업이 consecutiveBarsUp 설정값에 도달합니다.
    • 현재 포지션이 없습니다.
  4. 스톱로스를 설정: 포지션을 개시한 후, 스톱로스 가격을 [[stop_loss]]로 세 개의 K선에서 가장 최근에 종료된 가격의 최저점으로 설정한다.
  5. 출구 조건: 다음 조건이 충족될 때 평점:
    • 현재 거래시간은 재측정 범위내에서
    • 현재 지분을 보유하고 있다 (active)
    • 종료 가격은 스톱로스 가격 ((close < stop_loss) 또는 최고 가격 (minus 2배 ATR ((close < high - 2 * atr ((7)) 보다 낮습니다)
  6. 재배치 변수: 평점 후에, 재배치 변수 active는 false로, entry_bar_index은 큰 값으로.

이 전략은 연속적인 하락과 의 형태를 이용해서, 공백에서 다목으로 전환되는 역전 기회를 잡으려고 한다. 동시에, 위험을 통제하기 위해 엄격한 중지 조건을 설정한다.

우위 분석

연속적인 하락-하락 역전 전략은 다음과 같은 장점이 있습니다.

  1. 트렌드 감수성: 연속적인 하락과 하락의 근수를 통계함으로써, 전략은 가격 트렌드 변화에 민감하게 반응하여 잠재적인 역전 기회를 신속하게 식별할 수 있다.
  2. 형태는 간단하고 명확하다: 이 전략은 간단한 연속적인 음락과 양극 형태를 기반으로 하고, 규칙은 명확하고, 이해하기 쉽고, 구현하기 쉽다.
  3. 중단 손실 엄격: 전략은 포지션을 열 때 상대적으로 엄격한 중지 손실 조건을 설정합니다 ((최근의 세 K 선 종료 가격의 최저 지점), 추세가 지속되지 않을 때 적시에 출전하여 손실을 제어 할 수 있습니다.
  4. 변수는 조정할 수 있습니다. 연속적인 하락과 양극의 근수는 시장 특성과 거래 품종에 따라 조정할 수 있으며, 전략의 유연성을 증가시킵니다.

위험 분석

이 전략의 장점에도 불구하고, 다음과 같은 위험 요소가 있습니다.

  1. 자주 거래: 시장의 변동이 큰 경우, 가격은 전략의 입출장 조건을 자주 유발할 수 있으며, 거래 횟수가 증가하고 수수료 비용이 증가합니다.
  2. 중단 위치: 전략의 중단 위치는 최근 세 K 라인 종결 가격의 최저점이며, 이는 중단 위치가 입시 가격에 너무 가까이되어 정상적인 시장 변동에서 중단 손실을 유발하여 불필요한 손실을 초래할 수 있습니다.
  3. 추세 지속 위험: 이 전략은 주로 역전 기회를 포착하지만, 시장 추세가 강하게 지속되면 역전 형태가 무효화되어 전략이 연속적인 손실을 초래할 수 있다.

이러한 위험들을 해결하기 위해, 다음과 같은 최적화 조치를 고려할 수 있습니다.

  • 시장의 변동 특성에 따라, 동적으로 조정 연속 하락과 양극의 루트 수 요구, 빈번한 거래를 줄인다.
  • ATR 또는 퍼센트 스톱을 사용하여 가격의 더 많은 변동 공간을 제공하여 스톱 위치를 최적화하십시오.
  • 지속적인 강세를 보이는 시장 환경에서는 거래를 줄이거나 반전 거래를 고려하고 역경 운영을 피하십시오.

최적화 방향

이 전략은 다음과 같은 몇 가지 측면에서 최적화될 수 있습니다.

  1. 더 많은 지표를 도입: 연속적인 하락과 양반의 뿌리 수 이외에, RSI, MACD 등과 같은 다른 기술 지표와 결합하여 진입 및 출구 신호의 정확성을 향상시킬 수 있습니다. 여러 지표의 공동 확인을 통해 가짜 신호를 줄이고 전략의 수익성을 향상시킬 수 있습니다.
  2. 최적화 스톱 및 스톱: 현재 전략은 고정된 스톱 위치를 사용한다 (최근의 세 개의 K선 종식 가격의 최저 지점), 동적 스톱을 사용하거나 이동 스톱의 방법을 사용할 수 있습니다. ATR 스톱 또는 추적 스톱. 또한, 스톱 조건을 추가 할 수 있습니다.
  3. 다른 시장 환경에 적응: 이 전략은 흔들리는 시장에서 더 잘 작동할 수 있으며, 트렌드 시장에서 위험 할 수 있습니다. 시장 환경에 따라 변화하는 전략 매개 변수를 동적으로 조정하거나 다른 시장 상태에 적응하기 위해 거래를 중단하는 것을 고려할 수 있습니다.
  4. 포지션 관리: 현재 전략은 전체 포지션 운영이며, 포지션 관리의 개념을 도입할 수 있으며, 시장 위험과 개인 위험 견딜 수 있는 능력에 따라 거래 당 포지션 크기를 조정하여 전반적인 위험을 제어한다.
  5. 다른 전략과 결합: 연속적인 하락- 반전 전략은 다른 전략과 결합 할 수 있습니다. 트렌드 추적 전략, 평균 회귀 전략 등과 같은 전략 포트폴리지를 형성하여 전체 수익의 안정성을 향상시킵니다.

이러한 최적화 조치로, 연속적인 하락-하락 반전 전략은 시장 변화에 더 잘 적응하고, 위험을 통제하고, 수익성과 안정성을 향상시킬 수 있다.

요약하다

연속적인 하락 - 수 역전 전략은 가격 연속성에 기반한 양적 거래 전략으로, 연속적인 하락과 수의 형태를 식별하여 시장의 단기 역전 기회를 포착한다. 이 전략 규칙은 간단하고 명확하며, 가격 경향의 변화에 민감하며, 위험을 제어하기 위해 엄격한 손실 조건이 있다. 동시에, 전략 매개 변수는 시장 특성에 따라 조정될 수 있어, 유연성이 증가한다.

그러나, 이 전략은 또한 몇 가지 위험이 있습니다. 자주 거래, 중지 위치 설정이 너무 엄격 할 수 있으며, 강한 추세 시장에서 좋지 않은 성능이있을 수 있습니다. 이러한 위험에 대처하기 위해, 동적으로 조정 매개 변수를 고려하고, 중지 위치를 최적화하고, 다른 시장 환경에서 다른 전략을 취하는 등의 조치를 취할 수 있습니다.

또한, 이 전략에는 더 많은 지표를 도입하고, 손해 중지 및 정지를 최적화하고, 다른 시장 환경에 적응하고, 포지션 관리를 추가하고, 다른 전략과 결합하는 등의 최적화 방향이 있습니다. 지속적인 최적화 및 개선으로, 연속적으로 하락-황금 역전 전략은 더 안정적이고 효과적인 양적 거래 전략이 될 수 있습니다.

일반적으로, 연속적인 하락-하락 반전 전략은 시장의 단기 반전 기회를 포착하여 이익을 얻는 간단하고 효과적인 거래 아이디어를 제공합니다. 그러나 실제 적용에서는 특정 시장 환경과 개인 위험 선호와 결합하여 전략을 적절히 최적화하고 조정하여 더 나은 거래 효과를 얻어야합니다.

전략 소스 코드
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0

// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true

entry_condition() => 
	date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active

exit_condition() =>
	date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))

if (entry_condition())
	strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
	entry_bar_index := bar_index
	active := true
	stop_loss := math.min(close, close[1], close[2])
	// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
	strategy.close("ConsDnLong", comment = "CDLClose")
	// log.info("Close at bar {0}", bar_index)
	entry_bar_index := 1000000
	active := false
// if (dns >= consecutiveBarsDown)
// 	strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))