Cette stratégie d'acquisition quantitative en 4 étapes

Auteur:ChaoZhang est là., Date: le 19 décembre 2023 15:21:22
Les étiquettes:

img

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.

Principes de stratégie

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.

Les avantages de la stratégie

  1. Réduction des coûts d'achat grâce à des achats en quatre étapes
  2. Meilleurs points d'entrée en suivant les fluctuations des stocks
  3. Point de profit raisonnable pour des rendements décents

Risques et solutions

  1. Déclin continu des stocks sans arrêt des pertes, entraînant des pertes importantes

    • Définir un stop loss raisonnable pour contrôler efficacement les pertes
  2. Des paramètres incorrects rendent les points d'achat multiples trop proches pour diversifier les coûts

    • Définir les différences de prix appropriées entre les étapes d'achat
  3. Le point d'arrêt des pertes est trop large pour contrôler efficacement les pertes

    • Définir une distance d'arrêt appropriée en fonction de l'environnement de négociation réel et de la tolérance psychologique

Directions d'optimisation

  1. Ajuster les paramètres des différents types de stocks afin de mieux les adapter à leurs caractéristiques

  2. Ajouter des indicateurs de volatilité pour acheter lorsque la volatilité augmente

  3. Optimiser la prise de profit en utilisant le trailing stop pour obtenir des rendements plus élevés

  4. Ajouter des paramètres de stop loss pour réduire les pertes lorsque le prix dépasse certains niveaux

Résumé

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)

Plus de