Diese BIST-Aktien 4-stufige quantitative Akquisitionsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-19
Tags:

img

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.

Strategieprinzipien

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.

Vorteile der Strategie

  1. Senkung der Einkaufskosten durch vierstufige Einkäufe
  2. Bessere Einstiegspunkte durch Nachverfolgung von Lagerfluktuationen
  3. Ein vernünftiger Gewinnpunkt für angemessene Renditen

Risiken und Lösungen

  1. Fortgesetzte Lagerbestandsabnahme ohne Stop-Loss, was zu großen Verlusten führt

    • Ein angemessener Stop-Loss zur effektiven Kontrolle von Verlusten
  2. Fehlende Parameter-Einstellungen machen mehrere Kaufpunkte zu nahe, um die Kosten zu diversifizieren

    • Festlegung geeigneter Preisunterschiede zwischen den Einkaufsphasen
  3. Stoppverlustpunkt zu groß, um Verluste wirksam zu kontrollieren

    • Auf der Grundlage der tatsächlichen Handelsumgebung und der psychologischen Toleranz geeignete Stoppdistanz festlegen

Optimierungsrichtlinien

  1. Anpassung der Parameter für verschiedene Arten von Beständen, um ihre Merkmale besser zu berücksichtigen

  2. Hinzufügen von Volatilitätsindikatoren zum Kauf, wenn die Volatilität steigt

  3. Optimieren Sie den Gewinn durch Trailing Stop, um höhere Renditen zu erzielen

  4. Hinzufügen von Stop-Loss-Einstellungen, um Verluste zu reduzieren, wenn der Preis bestimmte Werte überschreitet

Zusammenfassung

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)

Mehr