
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.
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.
Los precios de las acciones siguen cayendo, no se puede detener el descenso, lo que puede provocar grandes pérdidas
Parámetros mal configurados, varios puntos de compra demasiado cercanos para lograr una dispersión de costos
El punto de parada de pérdidas es demasiado grande para controlar las pérdidas de manera efectiva
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
Añadir un indicador de volatilidad para comprar cuando la volatilidad aumenta
Optimización de las formas de detener las paradas en lugar de rastrearlas para obtener mayores ganancias
Aumentar la configuración de la línea de stop loss para detener la pérdida cuando el precio rompe un nivel hacia abajo
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.
/*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)