Cette stratégie d'acquisition quantitative en quatre étapes est basée sur un achat en quatre étapes pour suivre les mouvements des vagues. Elle entre sur le marché après la manipulation et se vend lorsque la demande des acheteurs augmente.
Cette stratégie calcule d'abord les lignes de résistance et de soutien. La ligne de résistance est déterminée par l'intersection du prix de clôture et de la moyenne mobile oscillant du prix élevé, tandis que la ligne de support est déterminée par l'intersection du prix de clôture et de la moyenne mobile oscillant du prix bas.
Lorsque le prix dépasse la ligne de support, si le prix se situe dans la fourchette d'achat définie à partir de la ligne de résistance, il achètera 25% de la position dans la première étape.
Lorsque le prix de l'action dépasse le double du coût d'ouverture, toutes les positions sont fermées.
Déclin continu des stocks sans arrêt des pertes, entraînant des pertes importantes
Des paramètres incorrects rendent les points d'achat multiples trop proches pour diversifier les coûts
Le point d'arrêt des pertes est trop large pour contrôler efficacement les pertes
Ajuster les paramètres des différents types de stocks afin de mieux les adapter à leurs caractéristiques
Ajouter des indicateurs de volatilité pour acheter lorsque la volatilité augmente
Optimiser la prise de profit en utilisant le trailing stop pour obtenir des rendements plus élevés
Ajouter des paramètres de stop loss pour réduire les pertes lorsque le prix dépasse certains niveaux
La stratégie d'acquisition quantitative en 4 étapes de BIST est bien adaptée aux actions conceptuelles populaires dans l'ensemble. En organisant les achats, elle peut utiliser efficacement la volatilité des actions pour obtenir de meilleurs coûts lorsque les prix reculent. En outre, les paramètres raisonnables de prise de profit et de stop-loss lui permettent de bien fonctionner dans le contrôle des 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)