
La stratégie d’achat quantitatif de BIST en quatre phases est une stratégie qui utilise le suivi de la volatilité des achats en quatre phases, achetant dans les zones où le marché est en panne et vendant dans les zones où le marché est en hausse. Cette stratégie s’applique aux actions qui ont une forte volatilité et permet une meilleure maîtrise des coûts en achetant par lots.
La stratégie commence par calculer les lignes de résistance et de soutien. La ligne de résistance est déterminée par la croisée des moyennes oscillatrices des prix élevés et des prix de clôture, et la ligne de soutien par la croisée des moyennes oscillatrices des prix de clôture et des prix bas.
Lorsqu’un prix tombe en dessous de la ligne de support, si le prix est éloigné de la ligne de résistance dans la plage d’achat définie, acheter une position de 25% pour la première étape. Ensuite, acheter une position de 25% à nouveau près du prix d’achat de la première étape.
Lorsque le prix de l’action est supérieur au double du coût d’ouverture, la liquidation complète de la position est effectuée.
Les cours des actions continuent de baisser et ne peuvent pas être arrêtés, ce qui pourrait entraîner de lourdes pertes
Paramètres mal réglés, points d’achat multiples trop proches pour une dispersion des coûts
Le point de rupture est trop élevé pour contrôler efficacement les pertes
Ajustement des paramètres en fonction des différents types d’actions pour que la zone d’achat soit plus adaptée aux caractéristiques de l’action
Ajouter un indicateur de volatilité pour acheter lorsque la volatilité augmente
Optimisation des méthodes de blocage plutôt que de suivi des blocages, pour des gains plus élevés
Augmentation du paramètre Stop Loss pour arrêter les pertes lorsque le prix dépasse un certain niveau à la baisse
La stratégie d’acquisition quantitative en quatre étapes des actions BIST est une stratégie qui convient parfaitement au concept populaire. En construisant des stocks par lots, il est possible d’utiliser efficacement la volatilité des actions et de bénéficier d’un meilleur coût lorsque les prix rebondissent. De plus, un réglage raisonnable des arrêts et des pertes a également permis à la stratégie de mieux gérer les risques.
/*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)