Четырехэтапная стратегия количественного приобретения акций BIST


Дата создания: 2023-12-19 15:21:22 Последнее изменение: 2023-12-19 15:21:22
Копировать: 0 Количество просмотров: 560
1
Подписаться
1619
Подписчики

Четырехэтапная стратегия количественного приобретения акций BIST

Обзор

Стратегия количественного покупки акций BIST в четыре этапа - это стратегия, которая использует четыре этапа покупки для отслеживания колебаний, покупки в районах, где рынок застрял, и продажи в районах с повышенным спросом. Эта стратегия применяется для акций с большим количеством колебаний, чтобы обеспечить лучший контроль затрат путем покупки в группах.

Стратегический принцип

Сначала стратегия рассчитывает линии сопротивления и поддержки. Линии сопротивления определяются с помощью пересечения высоких средних колебаний цены и цены закрытия, а линии поддержки определяются с помощью пересечения средних колебаний цены закрытия и низких цены.

Когда цена опускается ниже линии поддержки, если цена находится в пределах установленного диапазона покупок от линии сопротивления, совершается покупка 25% позиций первого этапа. Затем вновь покупается 25% позиций вблизи цены покупки первого этапа, таким образом цикл 4 раза, в конечном итоге достигается 100% позиций.

Когда цена акций превышает вдвое стоимость открытия позиции, проводится полный вывод из позиции.

Стратегические преимущества

  1. Покупка в четыре раза, снижение стоимости покупки
  2. Отслеживание колебаний акций для улучшения входных точек
  3. Разумная остановка, лучшая прибыль

Риски и решения

  1. Продолжающийся спад цен на акции не может остановить убыток, что может привести к большим потерям.

    • Разумная установка стоп-линий, эффективное управление потерями
  2. Неправильно настроенные параметры, несколько точек покупки слишком близко друг к другу, не обеспечивают распределение затрат

    • Разумная установка ценового разрыва между этапами покупки
  3. Стоп-потери слишком большие, чтобы эффективно контролировать потери

    • Настройка соответствующего стоп-распада в зависимости от реальной торговой среды и психологической выносливости

Направление оптимизации стратегии

  1. Параметры корректировки в зависимости от типа акций, чтобы сделать зону покупки более соответствующей характеристикам акций

  2. Присоединяйтесь к волатильности и покупайте, когда волатильность увеличивается

  3. Оптимизация методов остановки, вместо отслеживания остановки, для достижения более высокой прибыли

  4. Увеличение установки стоп-линии, чтобы остановить убытки, когда цена пересекает определенный уровень вниз

Подвести итог

Стратегия количественного приобретения акций BIST в четырех этапах в целом является стратегией, которая очень подходит для популярных концепций акций. С помощью поэтапного строительства складов, можно эффективно использовать волатильность акций, получать лучшую стоимость при падении цен. В то же время, разумная установка стоп-стоп и потерь также делает стратегию лучшей в управлении рисками.

Исходный код стратегии
/*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)