하라미 폐쇄 가격 전략

저자:차오장, 날짜: 2023-11-28 16:50:34
태그:

img

전반적인 설명

하라미 폐쇄 가격 전략은 촛불 패턴을 기반으로 한 양적 거래 전략이다. 이 전략은 구매 및 판매 신호를 생성하기 위해 하라미 패턴을 식별합니다.

전략 논리

핵심 논리는: 현재 촛불이 빨간 촛불이고 이전 촛불이 녹색 촛불이고, 현재 촛불의 최저 가격이 이전 촛불의 최저 가격보다 높고, 현재 촛불의 최고 가격은 이전 촛불의 최고 가격보다 낮으면 하라미 패턴이 형성됩니다. 이것은 상승 추세 동력이 힘을 잃고 판매 신호라는 것을 의미합니다. 반대로, 두 개의 촛불이 뒤집어있는 하라미 패턴은 구매 신호를 구성합니다.

촛불 몸의 평균은 스톱 로스 라인으로 사용됩니다. 몸의 크기가 스톱 로스 라인의 절반보다 크면 스톱 로스가 활성화됩니다.

이점 분석

하라미 폐쇄 가격 전략의 주요 장점은 다음과 같습니다.

  1. 촛불 패턴에 기초한 단순하고 합리적인 판단, 이해하기 쉽고 실행하기 쉽습니다.
  2. 상대적으로 작은 거래량으로 브레이크오웃을 식별할 수 있습니다. 상승 범위가 하라미 패턴을 형성하기 위해 좁아지면 상승 동력이 힘을 잃고 좋은 판매 지점이 됩니다.
  3. 위험을 통제하기 위한 명확한 스톱 로스 메커니즘이 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 낮은 모니터링 주파수, 가장 좋은 입구와 출구 지점을 놓칠 수 있습니다. 짧은 주기의 촛불에 효과적이지 않습니다.
  2. 가짜 상승/하락 촛불은 잘못된 신호를 생성할 수 있습니다. 거래량 및 다른 필터와 함께 사용해야합니다.
  3. 판단은 다른 기술적 지표와 기본 요소를 고려하지 않고 촛불 패턴에만 기반하고 있어 약간의 맹목으로 이어집니다.

이러한 위험을 완화하기 위해 거래량, 이동 평균 및 기타 기술적 지표와 결합하여 시장 트렌드에 대한 더 포괄적인 판단을 할 것이 좋습니다. 스톱 로스 라인은 또한 시장 변동성에 따라 동적으로 조정 될 수 있습니다.

최적화 방향

하라미의 종료 가격 전략은 다음 측면에서도 개선될 수 있습니다.

  1. 거래량 조건 검사를 추가합니다. 거래량 급증은 종종 트렌드 반전을 의미합니다.
  2. 시장 변동성과 위험 선호도에 따라 스톱 로스 기준을 동적으로 조정합니다.
  3. 멀티 타임프레임 분석. 하라미 패턴이 형성되는 더 높은 시간 프레임에서 주요 지원 수준 근처의 판매 지점을 식별합니다.
  4. 전체 시장 추세를 결정하기 위해 이동 평균과 같은 다른 기술적 지표를 결합하거나 진입 및 출구 지점을 예측하는 주요 지표.

요약

하라미 클로징 가격 전략은 촛불 패턴을 기반으로 특정 구매 및 판매 신호를 생성하기 위해 이해하기 쉽고 구현할 수 있습니다. 그러나 잘못된 신호 및 블라인드 생성과 같은 몇 가지 제한 사항도 있습니다. 이러한 문제는 거래량, 여러 시간 프레임 및 기타 기술적 지표에 대한 더 포괄적인 판단을 적용하여 추가 최적화의 방향을 제시합니다. 이것은 전략의 효과를 크게 향상시킬 수 있습니다.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's Harami Strategy v1.0", shorttitle = "Harami str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
bar = close > open ? 1 : close < open ? -1 : 0

//Signals
up = bar == 1 and bar[1] == -1 and min > min[1] and max < max[1]
dn = bar == -1 and bar[1] == 1 and min > min[1] and max < max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2

//Trading
if up
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

더 많은