
Esta estrategia se basa en la forma de la estrella de Doji, cuando se produce la forma de la estrella de Doji, se coloca una orden de parada de compra entre el punto más alto de la estrella de Doji y el punto más alto de la línea K anterior, y una orden de parada de venta entre el punto más bajo de la estrella de Doji y el punto más bajo de la línea K anterior. Cuando el precio dispara la orden de parada, se puede optar por salir con un stop loss fijo, o salir con el precio más alto y más bajo de la forma de la estrella de Doji como un stop loss.
Cuando aparece una forma de estrella de Doji, indica que la relación de oferta y demanda actual cambia, las fuerzas de los compradores y los vendedores se equilibran y los precios pueden revertirse. La estrategia es aprovechar la señal de reversión de precios predicha por la forma de estrella de Doji para capturar oportunidades de reversión mediante la colocación de una sola parada.
body=close-open
range=high-low
abody=abs(body)
ratio=abody/range
data=(abs(open - close) <= (high - low) * Doji)
Si abs{open-close) <= (high-low) y el resultado es*Los parámetros Doji, se consideran como la forma de la estrella Doji, en la que se coloca la barra de parada. La posición de la barra de parada es la siguiente:
longDist= longcandle[1] and range[1]>range? high: max(high,high[1])
shortDist= longcandle[1] and range[1]>range? low: min(low,low[1])
Si la entidad de la línea K anterior es más grande, la orden de parada de compra se encuentra entre el punto más alto de la estrella de Doji y el punto más alto de la línea K anterior. Si la entidad de la línea K anterior es más pequeña, la orden de parada de compra es el punto más alto de la estrella de Doji. La orden de parada de venta es la misma.
Las reglas de salida son de dos opciones:
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)
La estrategia tiene las siguientes ventajas:
La estrategia también tiene ciertos riesgos:
La estrategia puede ser optimizada en las siguientes direcciones:
La estrategia ha funcionado bien en general, y se puede obtener una buena señal de negociación mediante la captura de oportunidades de reversión de precios de Doji. A la vez, la estrategia es simple de operar, fácil de implementar, adecuada para varias variedades de operaciones, y es una estrategia de negociación cuantitativa práctica.
/*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)