Эта стратегия основана на моделе Доджи. Когда появляется модель Доджи, ордер стопа покупки размещается между максимумом Доджи и максимумом предыдущей свечи, а ордер стопа продажи помещается между минимумом Доджи и минимумом предыдущей свечи. Когда цена запускает ордера стопа, вы можете выбрать выход с фиксированной Stop Loss и получить прибыль, или использовать самую высокую и низкую цену модели Доджи как Stop Loss и получить прибыль. Эта стратегия хорошо работает в более высокие временные рамки, такие как ежедневный и еженедельный, чтобы отфильтровать шум.
При появлении модели Доджи она указывает на изменение отношений спроса и предложения, при этом силы становятся более сбалансированными, что может привести к перевороту цены.
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)
Если abs ((open-close) <= (high-low) * параметр Doji, он считается шаблоном Doji, и будут размещены ордера на остановку.
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
Если тело предыдущей свечи большое, buy stop order размещается между максимумом Doji и максимумом предыдущей свечи. Если у предыдущей свечи небольшое тело, buy stop order размещается на максимуме Doji. Sell stop order следует той же логике.
Есть два варианта выхода:
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)