Estrategia de adquisición cuantitativa de acciones de BIST en cuatro etapas


Fecha de creación: 2023-12-19 15:21:22 Última modificación: 2023-12-19 15:21:22
Copiar: 0 Número de Visitas: 560
1
Seguir
1619
Seguidores

Estrategia de adquisición cuantitativa de acciones de BIST en cuatro etapas

Descripción general

La estrategia de compra cuantitativa de acciones BIST en cuatro etapas es una estrategia que utiliza el seguimiento de la volatilidad de las compras en cuatro etapas, compras en áreas en las que el mercado se encuentra en una situación de liquidación y ventas en áreas de aumento de la cotización. La estrategia se aplica a acciones con gran volatilidad para lograr un mejor control de los costos mediante la compra por lotes.

Principio de estrategia

La estrategia primero calcula las líneas de resistencia y de soporte. La línea de resistencia se determina por la intersección de la media oscilante de los precios altos y el precio de cierre. La línea de soporte se determina por la intersección de la media oscilante de los precios cerrados y los precios bajos.

Cuando el precio cae por debajo de la línea de soporte, si el precio está lejos de la línea de resistencia dentro del rango de compra establecido, se realiza la compra del 25% de la posición en la primera etapa. Luego, se compra el 25% de la posición nuevamente cerca del precio de compra en la primera etapa, de esta manera se hace un ciclo de 4 veces, y finalmente se logra el 100% de la posición.

Cuando el precio de las acciones es más del doble del costo de apertura de la posición, se realiza una salida de la posición completa.

Ventajas estratégicas

  1. Compra en cuatrimestres para reducir el costo de compra
  2. Seguimiento de las fluctuaciones de las acciones para un mejor punto de entrada
  3. Los puntos de parada son razonables y generan mejores ganancias

Riesgos y soluciones

  1. Los precios de las acciones siguen cayendo, no se puede detener el descenso, lo que puede provocar grandes pérdidas

    • Establezca una línea de parada razonable y controle las pérdidas de manera efectiva
  2. Parámetros mal configurados, varios puntos de compra demasiado cercanos para lograr una dispersión de costos

    • Establecer razonablemente las diferencias de precio entre las etapas de compra
  3. El punto de parada de pérdidas es demasiado grande para controlar las pérdidas de manera efectiva

    • Establezca un límite de pérdidas adecuado en función del entorno de negociación real y la capacidad psicológica

Dirección de optimización de la estrategia

  1. Ajuste de parámetros según los diferentes tipos de acciones para que la zona de compra se ajuste mejor a las características de la acción

  2. Añadir un indicador de volatilidad para comprar cuando la volatilidad aumenta

  3. Optimización de las formas de detener las paradas en lugar de rastrearlas para obtener mayores ganancias

  4. Aumentar la configuración de la línea de stop loss para detener la pérdida cuando el precio rompe un nivel hacia abajo

Resumir

La estrategia de adquisición cuantitativa de acciones BIST en cuatro etapas es en general una estrategia muy adecuada para el concepto de acciones populares. Al construir un almacén por lotes, se puede aprovechar la volatilidad de las acciones de manera eficiente y obtener mejores costos cuando los precios retroceden. Al mismo tiempo, la configuración razonable de paradas y pérdidas también hace que la estrategia funcione mejor para controlar el riesgo.

Código Fuente de la Estrategia
/*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)