도지 스타 패턴을 기반으로 한 손절매 및 이익 실현 전략


생성 날짜: 2024-02-02 17:17:38 마지막으로 수정됨: 2024-02-02 17:17:38
복사: 0 클릭수: 698
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

도지 스타 패턴을 기반으로 한 손절매 및 이익 실현 전략

개요

이 전략은 도지 스타 형태에 기초하고 있으며, 도지 스타 형태가 발생했을 때, 도지 스타의 고점과 전 K 선의 고점 사이에 구매 중지 시표를 배치하고, 도지 스타의 저점과 전 K 선의 저점 사이에 판매 중지 시표를 배치합니다. 가격이 촉발되면 정지 시표를 선택하여 고정된 중지 스톱으로 출전하거나 도지 스타의 최고 가격과 최저 가격을 중지 스톱으로 출전합니다. 이 전략은 일선과 주름선과 같은 높은 시간 프레임에서 작동하기에 적합하며, 잡음을 효과적으로 필터링합니다.

전략 원칙

도지 스타 형태가 나타났을 때, 현재 공급과 수요의 관계가 변화하고, 구매자와 판매자의 힘이 균형을 이루고, 가격이 반전될 수 있음을 나타냅니다. 이 전략은 바로 도지 스타 형태가 예측한 가격 반전 신호를 활용하여 정지 단자를 배치하여 반전 기회를 포착하는 것입니다. 구체적으로, 도지 스타 형태를 판단하는 조건은 다음과 같습니다.

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])

만약 앞의 K선 개체가 더 크다면, Doji Star 고점과 앞의 K선 고점 사이에 있는 스톱포트를 구매한다. 만약 앞의 K선 개체가 더 작다면, Doji Star 고점으로 스톱포트를 구매한다. 스톱포트를 판매한다.

두 가지 출전 규칙이 있습니다.

  1. 고정 스톱 스톱으로 출전
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP) 
  1. 도지 스타 최고 가격 최저 가격으로 스톱 스톱 로즈로 출전
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 조작과 실행이 가능합니다.
  2. Doji Star의 효율적인 가격 반전 신호를 활용하여 반전 기회를 잡으십시오.
  3. 스탠드피드 패러미터를 구성하여 위험을 제어할 수 있다.
  4. 높은 시간 프레임 운영에 적합하며, 소음을 필터링할 수 있다.

위험 분석

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

  1. 도지 스타 형태는 반드시 가격 반전을 가져오지 않으며, 스톱로스가 발생할 수 있다. 해결책은 합리적인 스톱로스 거리를 설정하고, 단일 손실을 제어하는 것이다.
  2. 낮은 시간 프레임에서 동작할 때 도지 신호가 너무 많이 잡음이 있을 수 있다. 해결책은 해일선 둘레와 같은 높은 시간 프레임에서만 동작하는 것이다.
  3. 만약 스톱패드 기능이 설치되지 않는다면 무한한 손실이 발생할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. Doji 파라미터를 최적화하여 다양한 거래 품종의 최적의 파라미트 조합을 찾습니다.
  2. 다양한 스톱패드 파라미터를 테스트하여 최적의 파라미터 조합을 찾습니다.
  3. ATR의 동적 계산에 기초한 스톱데일 거리.
  4. 다른 지표와 함께 최적의 입학 시점을 결정한다.

요약하다

이 전략은 전체적으로 잘 작동하고, Doji 가격 역전 기회를 포착하여 좋은 거래 신호를 얻을 수 있다. 동시에 전략은 작동이 간단하고, 실행이 쉽고, 여러 가지 거래 품종에 적합하며, 실용적인 정량 거래 전략이다. 지속적인 테스트 및 최적화를 통해 더 나은 전략 효과를 얻을 수 있다.

전략 소스 코드
/*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)