Esta estratégia de aquisição quantitativa de ações BIST em 4 estágios é baseada em uma compra em quatro estágios para rastrear os movimentos da onda.
Esta estratégia calcula primeiro as linhas de resistência e suporte. A linha de resistência é determinada pela intersecção do preço de fechamento e da média móvel oscilante do preço alto, enquanto a linha de suporte é determinada pela intersecção do preço de fechamento e da média móvel oscilante do preço baixo.
Quando o preço quebra abaixo da linha de suporte, se o preço estiver dentro do intervalo de compra definido da linha de resistência, ele comprará 25% da posição na primeira etapa.
Quando o preço da ação exceder o dobro do custo de abertura, fechará todas as posições.
A continuação do declínio das existências sem o stop loss, levando a grandes perdas
Configurações incorretas de parâmetros tornam múltiplos pontos de compra demasiado próximos para diversificar custos
Ponto de paragem demasiado largo para controlar eficazmente as perdas
Ajustar os parâmetros dos diferentes tipos de unidades populacionais para melhor adaptá-los às suas características
Adicionar indicadores de volatilidade para comprar quando a volatilidade aumentar
Otimizar a captação de lucro usando o trailing stop para alcançar retornos mais elevados
Adicionar configurações de stop loss para cortar perdas quando o preço quebra certos níveis
A estratégia de aquisição quantitativa de ações BIST em 4 estágios é bem adequada para ações conceituais populares em geral. Ao organizar as compras, ele pode efetivamente utilizar a volatilidade das ações para obter melhores custos quando os preços recuarem. Além disso, as configurações razoáveis de lucro e stop loss permitem que ele funcione bem no controle de riscos. Com ajustes contínuos de parâmetros e otimizações baseadas em ambientes reais de mercado, essa estratégia pode entregar de forma confiável alfa.
/*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"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Cantalk //@version=5 strategy("BİST_100 HİSSELERİ 1_SAAT 4 KADEME ALIM",overlay = true, pyramiding=4, initial_capital=10000, process_orders_on_close=true, commission_type=strategy.commission.percent, commission_value=0.002) LB2 = input(30, title="Alım_Üst_Çizgi") LB = input(90, title="Alım_Alt_Çizgi") Barcolor=input(true,title="Barcolor") Bgcolor=input(true,title="Bgcolor") ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// RDirenc = ta.valuewhen(ta.cross(ta.hma(close, LB2), close), ta.highest(high, LB2), 1) SDestek = ta.valuewhen(ta.cross(close, ta.hma(close, LB)), ta.lowest(low, LB), 1) //plot(RDirenc,title="Resistance", color=#f7d707fc, linewidth =2) //plot(SDestek,title="Support", color=#064df4, linewidth = 2) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// LB22 = input(40, title="Satım_Üst_Çizgi") LB1 = input(300, title="Satım_Alt_Çizgi") Barcolor2=input(true,title="Barcolor2") Bgcolor2=input(true,title="Bgcolor2") ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////// RDirenc2 = ta.valuewhen(ta.cross(ta.hma(close, LB22), close), ta.highest(high, LB22), 1) SDestek2 = ta.valuewhen(ta.cross(close, ta.hma(close, LB1)), ta.lowest(low, LB1), 1) //plot(RDirenc2,title="Resistance2", color=#f40a0afc, linewidth =2) //plot(SDestek2,title="Support2", color=#0eed0e, linewidth = 2) //colors=if(close>RDirenc, color= #008000,if(SDestek<close,color=#FFFF00,color=#FF0000)) aralik_yuzde_alis = ((RDirenc-SDestek)/SDestek)*100 fark = input(25.0, title="Alış Aralığı %") aralik_yuzde_satis = ((RDirenc2-SDestek2)/SDestek2)*100 fark2 = input(45.0, title="Satış aralığı %") buyProcess = input(0.12, "ALIM YERİ %") //buyProcess2 = input(0.10, "ALIM YERİ-2 %") //buyProcess3 = input(0.10, "ALIM YERİ-3 %") buy1 = strategy.position_avg_price - (strategy.position_avg_price * buyProcess) buy2 = buy1 - (strategy.position_avg_price * buyProcess) buy3 = buy2 - (strategy.position_avg_price * buyProcess) buy4 = buy3 - (strategy.position_avg_price * buyProcess) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// isLong1 = if ta.crossover(close, SDestek) and aralik_yuzde_alis < fark 1 else 0 isLong2 = if ta.crossover(close, SDestek) and (close <= buy1) 1 else 0 isLong3 = if ta.crossover(close, SDestek) and (close <= buy2) 1 else 0 isLong4 = if ta.crossover(close, SDestek) and (close <= buy3) 1 else 0 message_long_entry = input("long entry message") message_long_exit = input("long exit message") fullProfit = input(2.00, "PROFİT SATIŞ SEVİYESİ") profit = strategy.position_avg_price * fullProfit /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// strategy.entry(id = "BUY-1", direction = strategy.long, qty = 25, when = (isLong1 and strategy.position_size == 0), alert_message = message_long_entry) strategy.entry(id = "BUY-2", direction = strategy.long, qty = 25, when = (isLong2 and strategy.position_size == 25), alert_message = message_long_entry) strategy.entry(id = "BUY-3", direction = strategy.long, qty = 25, when = (isLong3 and strategy.position_size == 50), alert_message = message_long_entry) strategy.entry(id = "BUY-4", direction = strategy.long, qty = 25, when = (isLong4 and strategy.position_size == 75), alert_message = message_long_entry) buyclose1 = if (close >= (strategy.position_avg_price + profit)) and aralik_yuzde_satis > fark2 close strategy.exit("EXİT",qty_percent = 100, stop = buyclose1) aritmeticClose = strategy.position_avg_price + profit plot(aritmeticClose, color = color.rgb(248, 5, 240), linewidth = 1, style = plot.style_linebr)