Estratégia de aquisição quantitativa de ações BIST em quatro estágios


Data de criação: 2023-12-19 15:21:22 última modificação: 2023-12-19 15:21:22
cópia: 0 Cliques: 560
1
focar em
1619
Seguidores

Estratégia de aquisição quantitativa de ações BIST em quatro estágios

Visão geral

A estratégia de aquisição quantitativa de ações BIST em quatro fases é uma estratégia que utiliza o rastreamento de flutuações de quatro fases de compra, comprando em áreas em que o mercado está em queda e vendendo em áreas de maior volume de compra. A estratégia é aplicada a ações com grande volatilidade e permite um melhor controle de custos através da compra em lotes.

Princípio da estratégia

A estratégia começa com o cálculo das linhas de resistência e suporte. A linha de resistência é determinada pela interseção de médias de choque de preços altos e preços de fechamento, e a linha de suporte é determinada pela interseção de médias de choque de preços de fechamento e preços baixos.

Quando o preço cai abaixo da linha de suporte, se o preço estiver distante da linha de resistência dentro do intervalo de compra definido, faça a compra de 25% da posição da primeira etapa. Depois, faça a compra de 25% da posição na proximidade do preço de compra da primeira etapa, fazendo o ciclo 4 vezes, atingindo 100% da posição.

Quando o preço das ações for mais do que o dobro do custo de abertura da posição, a liquidação total da posição é realizada.

Vantagens estratégicas

  1. Quadruplicando as compras para reduzir o custo de compra
  2. Seguir os movimentos das ações para um melhor ponto de entrada
  3. Ponto de equilíbrio razoável para melhores resultados

Riscos e soluções

  1. Preços das ações continuam a cair, não conseguem parar o deslocamento e podem levar a grandes perdas

    • Estabeleça uma linha de parada razoável e controle eficaz de perdas
  2. Parâmetros mal definidos, pontos de compra múltiplos muito próximos, não conseguindo o efeito de dispersão de custos

    • Diferenças de preço entre as fases de compra e venda
  3. O ponto de parada de perdas é muito grande para controlar os prejuízos de forma eficaz.

    • De acordo com o ambiente de negociação real e a tolerância psicológica, configure a distância de parada adequada

Direção de otimização da estratégia

  1. Parâmetros ajustados de acordo com os diferentes tipos de ações para que a área de compra seja mais adequada às características da ação

  2. Adicionar um indicador de flutuabilidade para comprar quando a flutuabilidade aumenta

  3. Otimização do método de parada em vez de rastrear a parada para obter maiores ganhos

  4. Aumentar a configuração da linha de parada para parar a perda quando o preço ultrapassar um determinado nível para baixo

Resumir

A estratégia de aquisição quantitativa de ações BIST em quatro etapas é, em geral, uma estratégia muito adequada para ações de conceito popular. Com a construção em lotes, é possível aproveitar efetivamente a volatilidade das ações e obter melhores custos quando o preço retorna.

Código-fonte da estratégia
/*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)