도지 패턴에 기반한 손해를 멈추고 수익을 취하는 전략

저자:차오장, 날짜: 2024-02-02 17:17:38
태그:

img

전반적인 설명

이 전략은 도지 패턴을 기반으로 합니다. 도지 패턴이 나타날 때, 도지 패턴의 최고와 이전 촛불의 최고 사이에 구매 중지 명령이 배치되고, 도지의 낮은 것과 이전 촛불의 낮은 사이에 판매 중지 명령이 배치됩니다. 가격이 중지 명령을 유발할 때, 고정 스톱 손실과 이익을 취하거나, 도지 패턴의 가장 높고 낮은 가격을 중지 손실과 이익으로 사용할 수 있습니다. 이 전략은 소음을 필터링하기 위해 매일과 주간과 같은 더 높은 시간 프레임에서 잘 작동합니다.

전략 논리

도지 패턴이 나타나면 수요와 공급 관계의 변화가 나타나고, 힘이 더 균형이 잡히면서 가격 반전으로 이어질 수 있습니다. 이 전략은 도지가 표시하는 가격 반전 신호를 활용하여 정지 주문을 통해 기회를 잡습니다. 구체적으로 도지 패턴을 결정하는 기준은 다음과 같습니다.

body=close-open 
range=high-low
abody=abs(body)
ratio=abody/range  
data=(abs(open - close) <= (high - low) * Doji)

만약 abs ((open-close) <= (high-low) * 도지 매개 변수라면 도지 패턴으로 간주되며 스톱 오더가 배치됩니다. 스톱 오더의 위치는 다음과 같습니다.

longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1]) 

이전 촛불의 몸체가 큰 경우, 구매 중지 명령은 도지의 최고와 이전 촛불의 최고 사이에 배치됩니다. 이전 촛불이 작은 몸을 가지고 있다면, 구매 중지 명령은 도지의 최고에 배치됩니다. 판매 중지 명령은 동일한 논리를 따르고 있습니다.

출구에는 두 가지 옵션이 있습니다.

  1. 고정 스톱 로스 및 수익 취득
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
  1. 최대 및 최저 Doji 가격을 중지 손실로 사용 하 여 이익을 취
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow) 

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 적용하기 쉽습니다.
  2. 도지 패턴에서 효율적인 가격 반전 신호를 활용합니다.
  3. 리스크를 제어하기 위해 스톱 로스 및 수익 매개 변수를 조정할 수 있습니다.
  4. 소음을 필터링하기 위해 더 긴 시간 프레임에서 잘 작동합니다.

위험 분석

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

  1. 도지 패턴은 항상 가격 반전으로 이어지지 않습니다. 거래당 손실을 제한하기 위해 합리적으로 중지 손실 거리를 설정하는 것이 해결책입니다.
  2. 도지 신호에서 소음이 너무 많아서 낮게 작동해야 합니다.
  3. 무제한 손실 위험을 감수하고 수익을 취하지 않고 적절히 사용해야합니다.

최적화 방향

전략을 최적화하는 몇 가지 방법:

  1. 다른 거래 도구에 대한 Doji 매개 변수를 최적화합니다.
  2. 다른 스톱 로스 조합을 테스트하고 수익을 취하세요.
  3. 동적 스톱 손실 ATR을 기반으로
  4. 최적의 입력을 결정하기 위해 다른 지표와 결합합니다.

결론

이 전략의 전반적인 성능은 좋다. 도지 가격 반전 기회를 포착함으로써, 괜찮은 거래 신호를 생성할 수 있다. 또한 구현하기 쉽고 여러 기기에 적용된다. 지속적인 테스트와 최적화로, 더 나은 결과를 기대할 수 있다.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//This is a simple strategy based on Doji star candlestick
//It places two orders: buy stop at doji star high or previous candle high and sell stop at doji star low or previous candle low.
//This strategy works very well with high time frames like Weekly TF because it eliminates the noise in doji formation.
//

strategy("Doji strategy W", overlay=true, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

//INPUTS
//MinDistance=input(100,'Minimum distance in ticks')
Use_SL_TP=input(true,'Use stop loss and take profit?')
TP=input(200,'Take Profit in ticks')
SL=input(200,'Stop Loss in tiks')
Doji = input(0.05, minval=0.01, title="Doji size", step=0.01)

//VARIABILI
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
longcandle= (ratio>0.6)

//Doji
data=(abs(open - close) <= (high - low) * Doji)
plotchar(data, title="Doji", text='Doji', color=black)
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
dojilow=data==1?low:na
dojihigh=data==1?high:na

goStar=data==1?true:false
//////////////////////////////////////////////////////////////////

//STRATEGY

strategy.order("buy stop",true,stop=longDist,  oca_name="Dojy Entry",when=goStar)
strategy.order("sell stop",false,stop=shortDist, oca_name="Dojy Entry",when=goStar)

strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.exit("exit sell","sell stop",loss=SL,profit=TP, when=Use_SL_TP)

strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
strategy.exit("exit buy","buy stop",profit=TP, when=not Use_SL_TP)
strategy.close("sell stop",when=not Use_SL_TP and close>dojihigh)
strategy.exit("exit sell","sell stop",profit=TP, when=not Use_SL_TP)
    
    



더 많은