상승 하라미 역전 전략

저자:차오장, 날짜: 2023-09-11 16:26:57
태그:

이 전략은 상승 반전 거래에 대한 bullish harami 촛불 패턴을 식별합니다. 구체적으로, 긴 신호는 다음과 같이 생성됩니다.

  1. 현재 촛불은 큰 이전 하향 몸으로 삼키고 작은 몸을 가지고 있습니다
  2. 현재 촛불 몸 색깔은 이전 촛불의 반대입니다
  3. 현재 촛불은 이전 촛불보다 더 높게 열립니다.
  4. 현재 촛불 몸체는 이전 촛불 몸보다 작습니다.

이러한 조건이 충족되면 상승 반전 모멘텀을 나타냅니다. 이 시점에서 긴 진입이 이루어집니다.

이 전략의 장점은 고전적인 촛불 패턴을 사용하여 시각적으로 전환점을 식별한다는 것입니다. 그러나 몇 가지 제한 사항이 있습니다.

  1. 올림 하라미는 지속되지 않을 수 있으며, 역전될 위험이 있습니다.
  2. 촛불 패턴을 정확하게 식별하는 데 어려움이 있으며 최적화가 필요합니다.
  3. 신호가 늦어지고, 출입 시기가 좋지 않음
  4. 백테스트 곡선 부착 위험은 높습니다.

전반적으로, 상승 하라미 역전 전략은 트렌드 분석의 기준으로 사용될 수 있지만 라이브 거래에서 신중하게 적용되어야합니다. 매개 변수는 느려지고 패턴 검증을 위해 다른 지표와 결합해야합니다. 또한 엄격한 위험 관리는이 전략을 성공적으로 구현하는 데 중요합니다.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/01/2019
//    This is a bullish reversal pattern formed by two candlesticks in which a small 
//    real body is contained within the prior session's unusually large real body.
//    Usually the second real body is the opposite color of the first real body. 
//    The Harami pattern is the reverse of the Engulfing pattern. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Bullish Harami Backtest", overlay = true)
input_takeprofit = input(60, title="Take Profit pip")
input_stoploss = input(18, title="Stop Loss pip")
input_minsizebody = input(1, title="Min. Size Body pip", step = 0.01)
barcolor(abs(close - open) >= input_minsizebody ? open[1] > close[1] ? close > open ? close <= open[1] ? close[1] <= open ? close - open < open[1] - close[1] ? yellow :na :na : na : na : na : na)
pos = 0.0
barcolor(nz(pos[1], 0) == -1 ? red: nz(pos[1], 0) == 1 ? green : blue ) 
posprice = 0.0
posprice := abs(close - open) >= input_minsizebody? open[1] > close[1] ? close > open ? close <= open[1] ? close[1] <= open ? close - open < open[1] - close[1] ? close :nz(posprice[1], 0) :nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0) : nz(posprice[1], 0): nz(posprice[1], 0)
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))

더 많은