마루보 캔들스틱 세그먼트 균형 전략


생성 날짜: 2024-02-23 14:23:41 마지막으로 수정됨: 2024-02-23 14:23:41
복사: 1 클릭수: 735
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

마루보 캔들스틱 세그먼트 균형 전략

개요

마루보 선분 균형 전략은 일간 시간에 기반한 정량 거래 전략이다. 이 전략은 마루보 형태를 식별하고 선분 균형 상태를 조사함으로써 시장 추세를 판단하고 거래 기회를 찾는다.

전략 원칙

이 전략의 핵심 논리는 다음과 같습니다.

  1. 마루보를 식별 하얀 다머리와 검은 공허 . 마루보은 특별한 라인 그래프 패턴으로, 상장 가격과 종전 가격 사이에 그림자가 없는 긴체 을 가리키며, 하얀 다머리와 검은 공허 두 종류로 나다.

  2. 개체의 평균 선분 길이를 계산하고, 현재의 개체 길이를 비교하여 선분이 길거나 짧다는 것을 판단한다.

  3. 선 단위가 균형이 있는지 판단하기 위해, 즉, 상도선과 하도선 길이가 대략 동일하다.

  4. 마루보의 흰색 다머리 개미를 식별할 때 더 많이 하고; 마루보의 검은색 공백 개미를 식별할 때 공백하게 한다.

  5. 이 두 개의 의 종결 상황을 조사하여 동향이 반전되었다는 것을 판단하여 평형 신호로 사용한다.

이 전략은 주로 마루보드 자체에서 제공되는 강력한 일방적인 트렌드 신호와 라인그룹 평형 조건 판단에 의존한다. 마루보드를 식별할 때, 시장에 강력한 일방적인 트렌드가 존재한다는 것을 나타냅니다. 라인그룹 평형 상태는 또한 이러한 트렌드의 신뢰성을 확인합니다. 강한 트렌드가 반전될 때 적시에 평형 포지션을 잡고 트렌드를 수익으로 만듭니다.

우위 분석

마루보 선분 균형 전략에는 다음과 같은 장점이 있습니다.

  1. 마루보토는 그 자체로 매우 강력한 단방향 신호를 제공해 높은 확률의 강력한 추세를 식별할 수 있다.

  2. 라인그램 균형은 가짜 브레이크를 효과적으로 필터링하여 을 피한다. 라인그램 불균형이 발생하면 가짜 브레이크의 위험이 있음을 나타내고 거래 신호를 건너 낸다.

  3. 전의 두 가지 을 사용하여 트렌드가 역전되는 것을 판단하여 트렌드를 적시에 포착하여 더 높은 수익을 얻을 수 있습니다.

  4. 전략은 간단하고 명확하며, 이해하기 쉽고, 실행하기 쉽고, 초보자 학습에 적합하다.

  5. 모든 품종과 모든 기간에 사용할 수 있으며, 적용성이 강하다.

위험 분석

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

  1. 효율적으로 흔들림 경향을 필터링 할 수 없습니다. 흔들림 상황에서 가상 신호와 감금의 위험이 더 많이 발생할 수 있습니다. 지분 기간을 단축하거나 스톱 손실을 증가시키는 매개 변수를 조정하여 완화 할 수 있습니다.

  2. 매개 변수 설정에 따라, 다른 매개 변수가 결과의 큰 차이를 초래할 수 있다. 매개 변수를 재검사하여 최적화할 수 있다.

  3. 하위 강도 경향을 판단할 수 없고, 극한의 마루보드에만 의존하여 판단하면 하위 강도 기회를 놓치게 된다. 느슨한 선분 평형 조건을 통해 개선할 수 있다.

전략 최적화

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

  1. 마루보이 결정한 선분비 비율을 최적화하고, 인식 민감도를 조정한다.

  2. 평형 미지수 변수를 최적화하여 더 균형이 있거나 더 불균형한 평형형태를 식별한다.

  3. 마감 가격과 이동 평균 비교를 추가하여 보조 판단 지표로 사용한다.

  4. 느슨한 라인 부분 균형 요구 사항, 더 많은 강력한 마루 바둑 기회를 식별한다.

요약하다

마루보 선분 균형 전략은 특정 패턴을 식별하고 균형 판단에 보조하여 높은 확률의 일방적인 트렌드 기회를 발견한다. 전략은 간단하고 이해하기 쉽고, 높은 승률을 가지고 있으며, 초보자 학습에 적합하며, 고급 거래자에게 잠재적인 기회를 찾는 데 적합하다. 일부 파라미터와 신호 최적화를 통해 더 나은 효과를 얻을 수 있으며, 전체적으로 매우 실용적인 일간 계량화 전략이다.

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

//@version=4

strategy(title="Marubozu", shorttitle="Marubozu", overlay=true, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0 )

C_Len = 14 // ema depth for bodyAvg
C_ShadowPercent = 5.0 // size of shadows
C_ShadowEqualsPercent = 100.0
C_DojiBodyPercent = 5.0
C_Factor = 2.0 // shows the number of times the shadow dominates the candlestick body

C_BodyHi = max(close, open)
C_BodyLo = min(close, open)
C_Body = C_BodyHi - C_BodyLo
C_BodyAvg = ema(C_Body, C_Len)
C_SmallBody = C_Body < C_BodyAvg
C_LongBody = C_Body > C_BodyAvg
C_UpShadow = high - C_BodyHi
C_DnShadow = C_BodyLo - low
C_HasUpShadow = C_UpShadow > C_ShadowPercent / 100 * C_Body
C_HasDnShadow = C_DnShadow > C_ShadowPercent / 100 * C_Body
C_WhiteBody = open < close
C_BlackBody = open > close
C_Range = high-low
C_IsInsideBar = C_BodyHi[1] > C_BodyHi and C_BodyLo[1] < C_BodyLo
C_BodyMiddle = C_Body / 2 + C_BodyLo
C_ShadowEquals = C_UpShadow == C_DnShadow or (abs(C_UpShadow - C_DnShadow) / C_DnShadow * 100) < C_ShadowEqualsPercent and (abs(C_DnShadow - C_UpShadow) / C_UpShadow * 100) < C_ShadowEqualsPercent
C_IsDojiBody = C_Range > 0 and C_Body <= C_Range * C_DojiBodyPercent / 100
C_Doji = C_IsDojiBody and C_ShadowEquals

patternLabelPosLow = low - (atr(30) * 0.6)
patternLabelPosHigh = high + (atr(30) * 0.6)

C_MarubozuWhiteBullishNumberOfCandles = 1
C_MarubozuShadowPercentWhite = 5.0
C_MarubozuWhiteBullish = C_WhiteBody and C_LongBody and C_UpShadow <= C_MarubozuShadowPercentWhite/100*C_Body and C_DnShadow <= C_MarubozuShadowPercentWhite/100*C_Body and C_WhiteBody
alertcondition(C_MarubozuWhiteBullish, title = "Marubozu White", message = "New Marubozu White - Bullish pattern detected.")
if C_MarubozuWhiteBullish
    var ttBullishMarubozuWhite = "Marubozu White\nA Marubozu White Candle is a candlestick that does not have a shadow that extends from its candle body at either the open or the close. Marubozu is Japanese for “close-cropped” or “close-cut.” Other sources may call it a Bald or Shaven Head Candle."
    label.new(bar_index, patternLabelPosLow, text="MW", style=label.style_label_up, color = color.blue, textcolor=color.white, tooltip = ttBullishMarubozuWhite)
bgcolor(highest(C_MarubozuWhiteBullish?1:0, C_MarubozuWhiteBullishNumberOfCandles)!=0 ? color.blue : na, offset=-(C_MarubozuWhiteBullishNumberOfCandles-1))

C_MarubozuBlackBearishNumberOfCandles = 1
C_MarubozuShadowPercentBearish = 5.0
C_MarubozuBlackBearish = C_BlackBody and C_LongBody and C_UpShadow <= C_MarubozuShadowPercentBearish/100*C_Body and C_DnShadow <= C_MarubozuShadowPercentBearish/100*C_Body and C_BlackBody
alertcondition(C_MarubozuBlackBearish, title = "Marubozu Black", message = "New Marubozu Black - Bearish pattern detected.")
if C_MarubozuBlackBearish
    var ttBearishMarubozuBlack = "Marubozu Black\nThis is a candlestick that has no shadow, which extends from the red-bodied candle at the open, the close, or even at both. In Japanese, the name means “close-cropped” or “close-cut.” The candlestick can also be referred to as Bald or Shaven Head."
    label.new(bar_index, patternLabelPosHigh, text="MB", style=label.style_label_down, color = color.red, textcolor=color.white, tooltip = ttBearishMarubozuBlack)
bgcolor(highest(C_MarubozuBlackBearish?1:0, C_MarubozuBlackBearishNumberOfCandles)!=0 ? color.red : na, offset=-(C_MarubozuBlackBearishNumberOfCandles-1))

strategy.entry("short",1,when= C_MarubozuBlackBearish)

strategy.entry("long",0,when=C_MarubozuWhiteBullish)

strategy.close("long",when= close[1] < open[1]and close[2] < open[2] and close > open)
strategy.close("short",when= close[1] > open[1]and close[2] > open[2] and close < open)