Esta estrategia de adquisición cuantitativa de acciones BIST en 4 etapas

El autor:¿ Qué pasa?, Fecha: 2023-12-19 15:21:22
Las etiquetas:

img

Esta estrategia de adquisición cuantitativa de acciones BIST de 4 etapas se basa en una compra en cuatro etapas para rastrear los movimientos de la ola. Ingresa al mercado durante la post-manipulación y se vende cuando aumenta la demanda del comprador.

Principios de estrategia

Esta estrategia primero calcula las líneas de resistencia y soporte. La línea de resistencia está determinada por la intersección del precio cerrado y la media móvil oscilante del precio alto, mientras que la línea de soporte está determinada por la intersección del precio cerrado y la media móvil oscilante del precio bajo.

Cuando el precio se rompe por debajo de la línea de soporte, si el precio está dentro del rango de compra establecido desde la línea de resistencia, comprará el 25% de la posición en la primera etapa. Luego comprará otro 25% de la posición alrededor del primer precio de compra, y así sucesivamente durante 4 veces, finalmente manteniendo el 100% de la posición.

Cuando el precio de las acciones exceda el doble del costo de apertura, cerrará todas las posiciones.

Ventajas de la estrategia

  1. Reducción de los costes de compra mediante compras en cuatro etapas
  2. Mejores puntos de entrada mediante el seguimiento de las fluctuaciones de las existencias
  3. Punto de beneficio razonable para rendimientos decentes

Riesgos y soluciones

  1. Continuación de la disminución de las existencias sin detener las pérdidas, lo que conduce a grandes pérdidas

    • Establecer un stop loss razonable para controlar eficazmente las pérdidas
  2. La configuración incorrecta de parámetros hace que varios puntos de compra estén demasiado cerca para diversificar los costos

    • Establecer las diferencias de precios adecuadas entre las fases de compra
  3. Punto de parada de pérdida demasiado amplio para controlar eficazmente las pérdidas

    • Establecer una distancia de parada adecuada basada en el entorno comercial real y la tolerancia psicológica

Direcciones de optimización

  1. Ajustar los parámetros de los diferentes tipos de poblaciones para adaptarlos mejor a sus características

  2. Añadir indicadores de volatilidad para comprar cuando aumente la volatilidad

  3. Optimice el beneficio obtenido mediante el uso de trailing stop para lograr mayores rendimientos

  4. Añadir ajustes de stop loss para reducir las pérdidas cuando el precio rompe ciertos niveles

Resumen de las actividades

La estrategia de adquisición cuantitativa de acciones BIST de 4 etapas es adecuada para las acciones de concepto populares en general. Al organizar las compras, puede utilizar efectivamente la volatilidad de las acciones para obtener mejores costos cuando los precios retroceden. Además, los ajustes razonables de toma de ganancias y stop loss le permiten tener un buen rendimiento en el control de riesgos. Con ajustes y optimizaciones continuos de parámetros basados en los entornos reales del mercado, esta estrategia puede ofrecer de manera confiable 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)

Más.