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.
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.
Continuación de la disminución de las existencias sin detener las pérdidas, lo que conduce a grandes pérdidas
La configuración incorrecta de parámetros hace que varios puntos de compra estén demasiado cerca para diversificar los costos
Punto de parada de pérdida demasiado amplio para controlar eficazmente las pérdidas
Ajustar los parámetros de los diferentes tipos de poblaciones para adaptarlos mejor a sus características
Añadir indicadores de volatilidad para comprar cuando aumente la volatilidad
Optimice el beneficio obtenido mediante el uso de trailing stop para lograr mayores rendimientos
Añadir ajustes de stop loss para reducir las pérdidas cuando el precio rompe ciertos niveles
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)