
이 전략은 도지 스타 형태에 기초하고 있으며, 도지 스타 형태가 발생했을 때, 도지 스타의 고점과 전 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 고점으로 스톱포트를 구매한다. 스톱포트를 판매한다.
두 가지 출전 규칙이 있습니다.
strategy.exit("exit buy","buy stop",loss=SL, profit=TP, when=Use_SL_TP)
strategy.close("buy stop",when=not Use_SL_TP and close<dojilow)
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 위험도 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
이 전략은 전체적으로 잘 작동하고, 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)