하라미 폐쇄 가격 전략은 촛불 패턴을 기반으로 한 양적 거래 전략이다. 이 전략은 구매 및 판매 신호를 생성하기 위해
핵심 논리는: 현재 촛불이 빨간 촛불이고 이전 촛불이 녹색 촛불이고, 현재 촛불의 최저 가격이 이전 촛불의 최저 가격보다 높고, 현재 촛불의 최고 가격은 이전 촛불의 최고 가격보다 낮으면
촛불 몸의 평균은 스톱 로스 라인으로 사용됩니다. 몸의 크기가 스톱 로스 라인의 절반보다 크면 스톱 로스가 활성화됩니다.
하라미 폐쇄 가격 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험을 완화하기 위해 거래량, 이동 평균 및 기타 기술적 지표와 결합하여 시장 트렌드에 대한 더 포괄적인 판단을 할 것이 좋습니다. 스톱 로스 라인은 또한 시장 변동성에 따라 동적으로 조정 될 수 있습니다.
하라미의 종료 가격 전략은 다음 측면에서도 개선될 수 있습니다.
하라미 클로징 가격 전략은 촛불 패턴을 기반으로 특정 구매 및 판매 신호를 생성하기 위해 이해하기 쉽고 구현할 수 있습니다. 그러나 잘못된 신호 및 블라인드 생성과 같은 몇 가지 제한 사항도 있습니다. 이러한 문제는 거래량, 여러 시간 프레임 및 기타 기술적 지표에 대한 더 포괄적인 판단을 적용하여 추가 최적화의 방향을 제시합니다. 이것은 전략의 효과를 크게 향상시킬 수 있습니다.
/*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()