이동 평균과 지원 저항에 기초한 카나 촛불의 브레이크업 전략

저자:차오장, 날짜: 2023-12-27 15:27:45
태그:

img

전반적인 설명

이것은 일본의 촛불 기술 분석에 기반한 빠른 브레이크 아웃 전략으로, 트렌드 및 위치를 결정하기 위해 이동 평균 지표와 지원 저항 지표와 결합됩니다. 주요 아이디어는 빠른 가격 브레이크를 기다리고 이동 평균 및 트렌드 지표가 확인 된 후 신속하게 이익을 얻는 것입니다.

전략 논리

이 전략은 트렌드 방향을 결정하기 위해 20주기 간단한 이동 평균 (SMA) 과 200주기 기하급수 이동 평균 (EMA) 을 사용합니다. 가격이 상승 추세 (SMA above EMA) 에 있고, 현재 일본 촛불 리얼 보디가 오픈 (화이트 보디) 이상으로 닫히면 구매력이 강화되는 것을 나타냅니다. 가격이 하락 추세 (SMA below EMA) 에 있고, 현재 일본 촛불 리얼 보디가 오픈 (검은 보디) 이하로 닫히면 판매 압력이 강화되는 것을 나타냅니다.

트렌드 및 추진력이 확인되면 전략은 빠른 가격 브레이크 오브를 기다리고 시장에 진출합니다. 이른바 브레이크 오브 (breakout) 는 가격이 3 개의 미리 설정된 ATR 채널의 첫 번째 채널 라인을 (200 일 ATR 및 계수 기준으로 계산) 횡단하고 두 번째 채널 라인을 진입한다는 것을 의미합니다. 이것은 높은 확률의 브레이크 오브 신호입니다.

시장에 진입 한 후, 수익 취득 및 스톱 손실 규칙은 매우 간단합니다. 가격이 채널의 외부 경계에 닿는 한 (이익 라인 또는 스톱 손실 라인 같은 경우), 즉시 수익 또는 스톱 손실을 취합니다. 이것은 전략의 빠른 이익을 보장합니다.

이점 분석

이 전략의 가장 큰 장점은 상대적으로 적은 위험과 함께 빠른 수익을 취하는 것입니다. 브레이크 이후 빠르게 시장에 진출함으로써 여러 가지 포지션 조정을 피합니다. 채널 브레이크로 인한 가속 효과는 짧은 시간 내에 큰 이익을 얻을 수 있습니다.

장기 보유에 비해 이러한 효율적인 오픈 및 클로징 메커니즘은 전략의 빈도율을 크게 줄이고 자본 효율성을 더욱 향상시킬 수 있습니다. 동시에 빠른 수익 및 스톱-러스 메커니즘은 단일 손실을 효과적으로 제어 할 수 있습니다.

위험 분석

이 전략은 주로 트렌드 방향을 결정하기 위해 이동 평균 지표에 의존하고 있으며, 추락 및 통합의 위험이 있습니다. 가격이 채널 내에서 변동하면 극단기 역 개척 및 손실로 이어질 수 있습니다.

또한 전략은 근본적 사건 분석과 중요한 사건 분석을 결합하지 않고 기술 지표에 너무 의존합니다. 블랙 스완 사건의 경우 기술 지표가 실패하고 전략은 큰 손실을 입을 수 있습니다.

리스크를 통제하기 위해 채널 범위를 적절히 확장하여 개설 빈도를 줄일 수 있습니다. 또는 전체 자본에 기반한 단일 포지션을 동적으로 조정하기 위해 포지션 관리 모듈을 추가 할 수 있습니다.

최적화

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

  1. 포지션 관리 모듈을 추가합니다. 단일 손실 비율을 제어하기 위해 계좌 크기에 따라 단일 오픈 포지션을 동적으로 조정합니다.

  2. 기본 필터링을 추가합니다. 기술 지표가 시작 신호를 유발할 때, 이상을 피하기 위해 회사 기본 및 중요한 이벤트를 확인하십시오.

  3. 주식 풀 관리 결합. 주식 풀을 동적으로 조정하는 규칙을 설정. 안정성을 향상시키기 위해 다양한 단계에서 최적의 주식 풀을 선택하십시오.

  4. 기계 학습 모델을 결합합니다. 트렌드와 주요 가격 수준을 예측하기 위해 인공지능을 사용하여 채널 범위와 입시 시기를 결정하는 데 도움이됩니다.

결론

이 전략은 단순함과 효율성을 특징으로 한다. 이동 평균과 함께 주요 트렌드를 결정하고, 일본 촛불과 함께 추진 방향을 결정하고, 빠른 브레이크아웃과 함께 진입하고, 빠른 수익 취득과 스톱 로스로 출입한다. 고 빈도 거래에 적합한 단기 수익을 허용하지만, 또한 인하와 불확실성의 위험이 있다. 지속적인 최적화는 다른 시장 환경에서 전략을 안정적으로 만들 수 있다.


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Kana with S/R Strategy", title = "KANA with S/R", overlay=true)

len = input(20, minval=1, title="Length")
multiplier1 = input(1, minval=1, title="multiplier1")
multiplier2 = input(2, minval=1, title="multiplier2")
multiplier3 = input(3, minval=1, title="multiplier3") 
srTimeFrame = input(240, minval=1, title="Support Resistance TimeFrame")
useSR = input(true, type = bool, title="Use Support/Resistance")
tpPercent = input(0.5, type=float, title = "Take Profit Percent")
useTP = input(false, type=bool, title = "Use Take Profit")
tp = (close * tpPercent / 100) / syminfo.mintick

src = input(close, title="Source")
mid = sma(src, len)
plot(mid, title="SMA", color=blue)

trend = ema(close, 200)
plot(trend, title="Trend", color=green)


upper1 = mid + atr(200) * multiplier1
upper2 = mid + atr(200) * multiplier2
upper3 = mid + atr(200) * multiplier3

lower1 = mid - atr(200) * multiplier1
lower2 = mid - atr(200) * multiplier2
lower3 = mid - atr(200) * multiplier3

plot(upper1, color = orange)
plot(upper3, color = red)

plot(lower1, color = orange)
plot(lower3, color = red)

haClose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)
haOpen = request.security(heikinashi(syminfo.tickerid), timeframe.period, open)

resistance = request.security(syminfo.tickerid,tostring(srTimeFrame), high)
support  = request.security(syminfo.tickerid,tostring(srTimeFrame), low)
rsPos = (close - support[srTimeFrame]) / (resistance[srTimeFrame] - support[srTimeFrame])

MACD = ema(close, 120) - ema(close, 260)
aMACD = ema(MACD, 90)
hisline = MACD - aMACD

longCondition = (mid > trend) and (haOpen[1] < haClose[1]) and (mid > mid[1]) and (close < upper1) and hisline > 0 and (useSR == true ? (rsPos > 100) : true)
shortCondition = (mid < trend) and (haOpen[1] > haClose[1]) and (mid < mid[1]) and (close > lower1) and hisline < 0 and (useSR == true ? (rsPos < 0) : true)

longExit = (close > upper3 ) or (close < lower2)
shortExit = (close < lower3) or (close > upper2)

if (longCondition)
    strategy.entry("Long", strategy.long)
    if (useTP)
        strategy.exit("Exit Long", "Long", profit = tp)
        
if (longExit)
    strategy.close("Long")
    
if (shortCondition)
    strategy.entry("Short", strategy.short)
    if (useTP)
        strategy.exit("Exit Short", "Short", profit = tp)
    
if (shortExit)
    strategy.close("Short")

더 많은