Diese BIST-Aktien 4-stufige quantitative Akquisitionsstrategie basiert auf einem vierstufigen Kauf, um die Wellenbewegungen zu verfolgen. Sie tritt während der Nachmanipulation in den Markt ein und verkauft, wenn die Nachfrage der Käufer steigt. Diese Strategie eignet sich für Aktien mit großen Schwankungen und erreicht eine bessere Kostenkontrolle durch Stufenkäufe.
Diese Strategie berechnet zunächst die Widerstands- und Unterstützungslinien. Die Widerstandslinie wird durch die Schnittstelle des Schlusskurses und des schwingenden gleitenden Durchschnitts des hohen Preises bestimmt, während die Unterstützungslinie durch die Schnittstelle des Schlusskurses und des schwingenden gleitenden Durchschnitts des niedrigen Preises bestimmt wird.
Wenn der Preis unter die Unterstützungslinie bricht, wenn der Preis innerhalb des festgelegten Kaufbereichs von der Widerstandslinie liegt, kauft er in der ersten Stufe 25% der Position. Dann kauft er weitere 25% der Position um den ersten Kaufpreis herum und so weiter für 4 Mal, bis er schließlich 100% der Position hält.
Wenn der Aktienkurs doppelt so hoch ist wie die Eröffnungskosten, schließt er alle Positionen.
Fortgesetzte Lagerbestandsabnahme ohne Stop-Loss, was zu großen Verlusten führt
Fehlende Parameter-Einstellungen machen mehrere Kaufpunkte zu nahe, um die Kosten zu diversifizieren
Stoppverlustpunkt zu groß, um Verluste wirksam zu kontrollieren
Anpassung der Parameter für verschiedene Arten von Beständen, um ihre Merkmale besser zu berücksichtigen
Hinzufügen von Volatilitätsindikatoren zum Kauf, wenn die Volatilität steigt
Optimieren Sie den Gewinn durch Trailing Stop, um höhere Renditen zu erzielen
Hinzufügen von Stop-Loss-Einstellungen, um Verluste zu reduzieren, wenn der Preis bestimmte Werte überschreitet
Die 4-stufige quantitative Akquisitionsstrategie von BIST-Aktien eignet sich für allgemein beliebte Konzeptaktien. Durch die Inszenierung der Einkäufe kann sie die Volatilität der Aktien effektiv nutzen, um bessere Kosten zu erzielen, wenn die Preise zurückgehen. Außerdem ermöglichen die angemessenen Gewinn- und Stop-Loss-Einstellungen eine gute Performance bei der Risikokontrolle. Mit kontinuierlichen Parameteranpassungen und -optimierungen basierend auf den tatsächlichen Marktumgebungen kann diese Strategie zuverlässig Alpha liefern.
/*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)