연속 K-라인 역전 돌파 전략


생성 날짜: 2024-03-05 16:07:40 마지막으로 수정됨: 2024-03-05 16:07:40
복사: 0 클릭수: 725
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

연속 K-라인 역전 돌파 전략

전략 개요

연속적인 K선 반전 돌파 전략의 핵심 아이디어는 일정 기간 동안 연속적으로 하락한 후에 반전 신호가 나타나 중요한 저항 지점을 돌파하는 거래 기회를 포착하는 것입니다. 이 전략은 연속적으로 하락하는 K선 수, 연속적으로 상승하는 K선 수, 그리고 중지 조건과 같은 파라미터를 설정하여 특정 조건이 충족되면 입장을 열고, 중지 조건이 발생하면 입장을 닫습니다.

전략 원칙

  1. 진입 조건을 설정: 주가가 연속적으로 하락한 후, 연속적으로 상승하는 경우, 진입 조건을 촉발합니다.
  2. 스톱로스 조건을 설정: 포지션을 개시한 후, 만약 주가가 전 몇 K선 최저 폐장 가격보다 낮거나, 포지션을 개시했을 때의 최고 가격보다 낮으면 2배 ATR ((평균 실제 파장) 을 빼면, 스톱로스 조건을 트리거하고, 포지션을 평한다.
  3. 매번 포지션을 개시할 때, 해당 입문 가격과 중지 가격을 기록하고, 다음 거래에 대비하기 위해 평형 포지션 후에 매개 변수를 재설정한다.
  4. 피네 스크립트를 사용하여 전략 코드를 작성하여 TradingView와 같은 플랫폼에서 재검토 및 최적화 할 수 있습니다.

전략의 핵심은 역전 신호를 올바르게 식별하고 적절한 파라미터를 설정하는 데 있습니다. 연속적으로 얼마나 많은 K 라인이 떨어지고 연속적으로 얼마나 많은 K 라인이 올라가는지는 두 가지 중요한 파라미터가므로 재측량 결과에 따라 최적화해야합니다. 또한, 손실을 막는 조건의 설정은 위험을 통제하고 너무 일찍 손실을 막지 않고 오류의 기회를 초래하지 않도록하는 데 중요합니다.

전략적 이점

  1. 동요시장과 트렌드 초기에 적용: 이 전략은 주가가 일정 기간 동안 조정된 후 반전 신호가 나타나면 포지션을 열고, 트렌드 초기의 기회를 더 쉽게 잡는다.
  2. 적당 시간 중지 손실 제어 위험: 이전 최저점과 ATR에 기반한 중지 조건을 설정하여 주가가 다시 떨어질 때 적당 시간 내에 지분을 청산하고 손실을 제어 할 수 있습니다.
  3. 변수 조정 가능, 적응력 강: 연속 K 선의 수, 중단 조건 등의 변수는 시장 특성과 개인 선호도에 따라 조정할 수 있으며, 전략의 적응성을 강화한다.

전략적 위험

  1. 매개 변수 선택이 잘못되면 거래 빈도가 높습니다. 연속적으로 K 라인을 너무 많이 설정하면 거래 비용이 증가하여 전략이 빈번하게 평점으로 전환됩니다.
  2. 부적절한 중지 위치 설정은 손실을 증가시킵니다: 중지 위치 설정이 너무 넓으면 단일 거래 손실이 너무 커질 수 있습니다. 중지 위치 설정이 너무 좁으면 수익성이있는 거래가 조기 중단 될 수 있습니다.
  3. 장기적인 트렌드적 행태에 있어서, 전략은 일반적으로 동작한다: 이 전략은 불안한 시장과 트렌드 초기에 사용하기에 더 적합하다. 장기적으로 안정적인 트렌드적 행태에 있어서, 시장 상승을 충분히 누릴 수 없다.
  4. 포지션 관리 및 자금 관리의 부족: 현재 전략 코드에는 포지션 관리 및 자금 관리의 내용이 포함되어 있지 않으며 실제 응용에서는 전략 안정성을 높이기 위해 이러한 내용을 추가해야합니다.

전략 최적화 방향

  1. 연속 K선 수를 최적화한다: 다양한 변수 조합을 재검토하여 최근 기간 동안 가장 잘 수행한 연속 하락 K선 수와 연속 상승 K선 수를 알아낸다.
  2. 절감 조건을 최적화: 더 역동적인 절감 조건을 사용하는 것을 고려할 수 있습니다. 예를 들어, ATR 또는 비율에 따라 절감 위치를 설정하여 다른 시장 변동 상황에 적응합니다.
  3. 다중 하위 쌍방향 거래에 참여: 현재 전략은 한 가지 이상의 방향만을 수행 할 수 있으며, 하위 전략에 참여하는 것을 고려하여 상승과 하락의 기회를 잡을 수 있습니다.
  4. 포지션 관리 및 자금 관리 도입: 계좌 자금 상태와 위험 선호도에 따라 매 거래의 포지션 크기를 동적으로 조정하고 전반적인 위험 제한을 설정하여 전략의 안정성을 향상시킵니다.
  5. 다른 기술 지표 또는 신호와 결합: 이 전략은 다른 기술 지표 (RSI, MACD 등) 또는 거래 신호 (침점, 형태 등) 와 결합하여 포지션을 개시하거나 포지션을 조정하는 정확도를 높일 수 있습니다.

전략 요약

연속적인 K 라인 반전 돌파 전략은 주가가 연속적으로 하락한 후 반전 신호를 포착하여 거래 결정을 합니다. 이 전략은 간단하고 이해하기 쉽고, 불안한 시장과 트렌드 초기에 적합하며, 연속적인 K 라인 수와 중지 조건과 같은 파라미터를 설정하여 다양한 시장 상황에 유연하게 적응 할 수 있습니다. 그러나, 이 전략에는 장기적인 트렌드 상황에 대한 적응성, 포지션 관리 및 자금 관리 등의 제한이 있습니다.

실제 적용에서, 시장 특성과 자신의 위험 선호에 따라 전략에 대한 최적화 및 개선이 필요합니다. 예를 들어, 연속 K 라인 수와 중지 조건의 설정을 최적화하고, 다공간 쌍방향 거래를 추가하고, 포지션 관리 및 자금 관리를 도입하고, 다른 기술 지표 및 거래 신호와 결합하여 전략의 수익성을 높이는 동시에 위험을 제어하고, 안정적인 투자 수익을 달성 할 수 있습니다.

종합적으로 보면, 연속적인 K선 역전 돌파 전략은 실용적인 거래 전략이며, 실무에서 추가로 탐색하고 최적화할 가치가 있다. 그러나, 어떤 전략도 만능이 아니다. 투자자는 자신의 경험과 판단, 신중한 의사결정, 엄격한 실행을 결합하여 시장에서 장기적으로 무패적 위치를 차지할 수 있다.

전략 소스 코드
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 2h
basePeriod: 15m
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))