Esta é uma estratégia que utiliza diferentes padrões de velas como sinais de negociação.
A lógica central desta estratégia é identificar diferentes padrões de velas, incluindo Doji, Hammer, Morning Star etc. Quando um padrão de alta é identificado, um sinal de compra será acionado.
Por exemplo, quando três velas brancas consecutivas com altas e baixas mais altas são detectadas, ele dá o sinal de
Também, por exemplo, quando uma vela baixa longa engole completamente o corpo da vela alta anterior, ela forma um padrão de Engulfamento Baixo, implicando uma inversão de tendência.
Este tipo de estratégias de reconhecimento de padrões pode capturar pontos de reversão de curto prazo e é especialmente adequado para negociação de curto prazo.
Em comparação com estratégias de indicadores técnicos simples como médias móveis, a estratégia de padrão de velas incorpora o julgamento da ação de preços e do sentimento do mercado, tornando os sinais de negociação mais precisos e confiáveis.
Esta estratégia baseia-se principalmente na identificação precisa de padrões de velas.
Além disso, qualquer estratégia de análise técnica não pode evitar completamente os riscos sistémicos, como os impactos das políticas, os eventos do cisne negro, etc., que podem influenciar a negociação.
Quando o preço atravessa uma faixa em direção oposta, o stop loss pode ser desencadeado para sair de posições em tempo hábil.
Padrões de candelabro mais eficientes podem ser adicionados para confirmação de sinal, como martelo, martelo invertido, linhas de separação, etc.
Outros indicadores podem ser incorporados para filtragem de sinais, evitando a captação de sinais em um ambiente de mercado incerto.
A lógica de stop loss pode ser otimizada para ser acionada quando o preço sai de uma faixa em direção à direção oposta.
Esta é uma estratégia de negociação de curto prazo muito prática. Identifica padrões de velas comuns para gerar sinais de negociação e capturar oportunidades de reversão de curto prazo. Também precisa notar riscos potenciais e otimizar adequadamente para controlar os riscos e melhorar a eficiência.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Dan Pasco strategy("Candlestick Signals Strategy" , shorttitle="Candlestick Signal Strategy $1000", overlay = true , initial_capital = 1000) //Settings input menu dojicon = input(title = "Show Doji's", type=bool, defval = true) gravedojicon = input(title = "Gravestone Doji/Dragonfly Doji", type=bool, defval = true) tbctwscon = input(title = "3 Red Crows/3 Green Soldiers", type=bool, defval = true) tlscon = input(title = "Three Line Strike", type=bool, defval = true) pcon = input(title = "Piercing/Dark Cloud", type=bool, defval = true) mscon = input(title = "Morning Star", type=bool, defval = true) escon = input(title = "Evening Star", type=bool, defval = true) econ = input(title = "Engulfing", type=bool, defval = true) hcon = input(title = "Hammer", type=bool, defval = true) fscon = input(title = "Falling Star", type=bool, defval = true) //Doji Up dojiup = (open-close)>0 ? (high-open)>(open-close) and (close-low)>(open-close) and (close-low)>(high-open) and (open-close)<((high-open)/8) : (open-low)>(close-open) and (high-close)>(close-open) and (open-low)>(high-close) and (close-open)<((high-close)/8) and dojicon == true plotshape(dojiup, style=shape.cross,location=location.belowbar, text="Doji", color=black) //Doji Down dojidown = (open-close)>0 ? (high-open)>(open-close) and (close-low)>(open-close) and (high-open)>(close-low) and (open-close)<((close-low)/8) : (open-low)>(close-open) and (high-close)>(close-open) and (high-close)>(open-low) and (close-open)<((high-close)/8) and dojicon == true plotshape(dojidown, style=shape.cross,location=location.abovebar, text="Doji", color=black) //Gravestone Doji Bull gravedojibull = (close-open)>0 and ((high-close)/8)>(close-open) and ((high-close)/5)>(open-low) and gravedojicon == true plotshape(gravedojibull, style=shape.arrowdown,location=location.abovebar, text="Gravestone Doji", color=red) //Gravestone Doji Bear gravedojibear = (open-close)>0 and ((high-open)/8)>(open-close) and ((high-open)/5)>(close-low) and gravedojicon == true plotshape(gravedojibear, style=shape.arrowdown,location=location.abovebar, text="Gravestone Doji", color=red) //Dragonfly Doji Bull dragondojibull = (close-open)>0 and ((open-low)/8)>(close-open) and ((open-low)/5)>(high-close) and gravedojicon == true plotshape(dragondojibull, style=shape.arrowup,location=location.belowbar, text="Dragonfly Doji", color=green) //Dragonfly Doji Bear dragondojibear = (open-close)>0 and ((close-low)/8)>(open-close) and ((close-low)/5)>(high-open) and gravedojicon == true plotshape(dragondojibear, style=shape.arrowup,location=location.belowbar, text="Dragonfly Doji", color=green) //Three Black Crows tbc = (low[2]<low[3] and low[1]<low[2] and low<low[1] and high[2]<high[3] and high[1]<high[2] and high<high[1] and (close[3]-open[3])>0 and (open[2]-close[2])>0 and (open[1]-close[1])>0 and (open-close)>0 and (open-close)>(close-low) and (open-close)>(high-open) and (open[1]-close[1])>(close[1]-low[1]) and (open[1]-close[1])>(high[1]-open[1]) and (open[2]-close[2])>(close[2]-low[2]) and (open[2]-close[2])>(high[2]-open[2]) and tbctwscon == true) plotshape(tbc, style=shape.arrowdown,location=location.abovebar, text="3 Red Crows", color=red) //Three White Soldiers tws = (high[2]>high[3] and high[1]>high[2] and high>high[1] and low[2]>low[3] and low[1]>low[2] and low>low[1] and (open[3]-close[3])>0 and (close[2]-open[2])>0 and (close[1]-open[1])>0 and (close-open)>0 and (close-open)>(open-low) and (close-open)>(high-close) and (close[1]-open[1])>(open[1]-low[1]) and (close[1]-open[1])>(high[1]-close[1]) and (close[2]-open[2])>(open[2]-low[2]) and (close[2]-open[2])>(high[2]-close[2]) and tbctwscon == true) plotshape(tws, style=shape.arrowup,location=location.belowbar, text="3 Green Soldiers", color=green) //Three Line Strike Up tlsu = ((close-open)>0 and (open[1]-close[1])>0 and (open[2]-close[2])>0 and (open[3]-close[3])>0 and open<close[1] and low[1]<low[2] and low[2]<low[3] and high>high[3] and low<low[1] and tlscon == true) plotshape(tlsu, style=shape.arrowup,location=location.belowbar, text="3 Line Strike", color=green) //Three Line Strike Down tlsd = ((open-close)>0 and (close[1]-open[1])>0 and (close[2]-open[2])>0 and (close[3]-open[3])>0 and open>close[1] and high[1]>high[2] and high[2]>high[3] and low<low[3] and high>high[1] and tlscon == true) plotshape(tlsd, style=shape.arrowdown,location=location.abovebar, text="3 Line Strike", color=red) //Piercing Up pu = ((open[1]-close[1])>0 and (close-open)>0 and (open[1]-close[1])>(high[1]-open[1]) and (open[1]-close[1])>(close[1]-low[1]) and (close-open)>(high-close) and (close-open)>(open-low) and open<close[1] and ((open[1]+close[1])/2)<close and ((close-open)/2)>(high-close) and close<open[1] and (high<high[1] or low>low[1]) and pcon == true) plotshape(pu, style=shape.arrowup,location=location.belowbar, text="Piercing Up", color=green) //Dark Cloud dc = ((close[1]-open[1])>0 and (open-close)>0 and (close[1]-open[1])>(high[1]-close[1]) and (close[1]-open[1])>(open[1]-low[1]) and (open-close)>(high-open) and (open-close)>(close-low) and open>close[1] and ((open[1]+close[1])/2)>close and ((open-close)/2)>(close-low) and close>open[1] and (high<high[1] or low>low[1]) and pcon == true) plotshape(dc, style=shape.arrowdown,location=location.abovebar, text="Dark Cloud", color=red) //Morning Star 1 Up ms1u = ((open[2]-close[2])>0 and (close-open)>0 and (open[1]-close[1])>=0 and (open[2]-close[2])>(high[2]-open[2]) and (open[2]-close[2])>(close[2]-low[2]) and (close-open)>(high-close) and (close-open)>(open-low) and (close-open)>(open[1]-close[1]) and (open[2]-close[2])>(open[1]-close[1]) and open[1]<close[2] and open[1]<open and open[1]!=close[1] and mscon == true) plotshape(ms1u, style=shape.arrowup,location=location.belowbar, text="Morning Star", color=green) //Morning Star 2 Up ms2u = ((open[2]-close[2])>0 and (close-open)>0 and (close[1]-open[1])>=0 and (open[2]-close[2])>(high[2]-open[2]) and (open[2]-close[2])>(close[2]-low[2]) and (close-open)>(high-close) and (close-open)>(open-low) and (close-open)>(close[1]-open[1]) and (open[2]-close[2])>(close[1]-open[1]) and close[1]<close[2] and close[1]<open and open[1]!=close[1] and mscon == true) plotshape(ms2u, style=shape.arrowup,location=location.belowbar, text="Morning Star X2", color=green) //Evening Star 1 Down es1d = ((close[2]-open[2])>0 and (open-close)>0 and (close[1]-open[1])>=0 and (close[2]-open[2])>(high[2]-close[2]) and (close[2]-open[2])>(open[2]-low[2]) and (open-close)>(high-open) and (open-close)>(close-low) and (open-close)>(close[1]-open[1]) and (close[2]-open[2])>(close[1]-open[1]) and open[1]>close[2] and open[1]>open and escon == true) plotshape(es1d, style=shape.arrowdown,location=location.abovebar, text="Evening Star", color=red) //Evening Star 2 Down es2d = ((close[2]-open[2])>0 and (open-close)>0 and (open[1]-close[1])>=0 and (close[2]-open[2])>(high[2]-close[2]) and (close[2]-open[2])>(open[2]-low[2]) and (open-close)>(high-open) and (open-close)>(close-low) and (open-close)>(open[1]-close[1]) and (close[2]-open[2])>(open[1]-close[1]) and close[1]>close[2] and close[1]>open and close[1]!=open[1] and escon == true) plotshape(es2d, style=shape.arrowdown,location=location.abovebar, text="Evening X2", color=red) //Bullish Engulfing beu = (open[1]-close[1])>0 and (close-open)>0 and high>high[1] and low<low[1] and (close-open)>(open[1]-close[1]) and (close-open)>(high-close) and (close-open)>(open-low) and econ == true plotshape(beu, style=shape.arrowup,location=location.belowbar, text="Engulfing", color=green) //Bearish Engulfing bed = (close[1]-open[1])>0 and (open-close)>0 and high>high[1] and low<low[1] and (open-close)>(close[1]-open[1]) and (open-close)>(high-open) and (open-close)>(close-low) and econ == true plotshape(bed, style=shape.arrowdown,location=location.abovebar, text="Engulfing", color=red) //Bullish Hammer Up bhu1 = (close-open)>0 and ((close-open)/3)>(high-close) and ((open-low)/2)>(close-open) and (close-open)>((open-low)/8) and hcon == true plotshape(bhu1, style=shape.arrowup,location=location.belowbar, text="Hammer", color=green) //Bearish Hammer Up bhu2 = (open-close)>0 and ((open-close)/3)>(high-open) and ((close-low)/2)>(open-close) and (open-close)>((close-low)/8) and hcon == true plotshape(bhu2, style=shape.arrowup,location=location.belowbar, text="Hammer", color=green) //Bullish Falling Star bfs1 = (close-open)>0 and ((close-open)/3)>(open-low) and ((high-close)/2)>(close-open) and (close-open)>((high-close)/8) and fscon == true plotshape(bfs1, style=shape.arrowdown,location=location.abovebar, text="Falling Star", color=red) //Bearish Falling Star bfs2 = (open-close)>0 and ((open-close)/3)>(close-low) and ((high-open)/2)>(open-close) and (open-close)>((high-open)/8) and fscon == true plotshape(bfs2, style=shape.arrowdown,location=location.abovebar, text="Falling Star", color=red) //Declaring the buy signals buy = (dragondojibear == true and gravedojicon == true) or (dragondojibull == true and gravedojicon == true) or (tws == true and tbctwscon == true) or (tlsu == true and tlscon == true) or (pu == true and pcon == true) or (ms1u == true and mscon == true) or (ms2u == true and mscon == true) or (beu == true and econ == true) or (bhu1 == true and hcon == true) or (bhu2 == true and hcon == true) //Declaring the sell signals sell = (gravedojibear == true and gravedojicon == true) or (gravedojibull == true and gravedojicon == true) or (tbc == true and tbctwscon == true) or (tlsd == true and tlscon == true) or (dc == true and pcon == true) or (es1d == true and escon == true) or (es2d == true and escon == true) or (bed == true and econ == true) or (bfs1 == true and fscon == true) or (bfs2 == true and fscon == true) //Execute historic backtesting ordersize = floor(strategy.equity/close) // To dynamically calculate the order size as the account equity increases or decreases. strategy.entry("long",strategy.long,ordersize,when=buy) // Buy strategy.close("long", when=sell) //Sell