
Strategi pembelian kuantitatif saham BIST empat tahap adalah strategi yang memanfaatkan empat tahap pembelian untuk melacak fluktuasi, membeli di area yang berada di dalam pasar, dan menjual di area dengan kenaikan harga. Strategi ini berlaku untuk saham yang memiliki fluktuasi besar, dengan membeli secara batch untuk mendapatkan kontrol biaya yang lebih baik.
Strategi ini pertama-tama menghitung resistance line dan support line. Resistance line ditentukan oleh titik persimpangan rata-rata pergerakan harga tinggi dan harga close out, dan support line ditentukan oleh titik persimpangan rata-rata pergerakan harga close out dan harga low.
Ketika harga jatuh di bawah garis dukungan, jika harga jarak dari resistance line dalam batas yang ditetapkan untuk membeli, melakukan tahap pertama 25% dari posisi pembelian. Kemudian di tahap pertama membeli harga membeli lagi membeli 25% dari posisi, sehingga siklus 4 kali, akhirnya mencapai 100% dari posisi.
Ketika harga saham melebihi dua kali lipat dari biaya pembukaan posisi, melakukan exit posisi penuh.
Harga saham terus turun, tidak bisa menghentikan kerugian, dan dapat menyebabkan kerugian besar
Parameter yang tidak tepat, beberapa titik pembelian terlalu dekat, tidak dapat mencapai efek dispersi biaya
Stop loss set terlalu besar untuk mengontrol kerugian secara efektif
Parameter yang disesuaikan dengan berbagai jenis saham untuk membuat area pembelian lebih sesuai dengan karakteristik saham
Menambahkan indikator volatilitas untuk membeli saat volatilitas meningkat
Optimalisasi Stop Stop, Mengikuti Stop Stop, dan Menghasilkan Hasil yang Lebih Tinggi
Menambahkan pengaturan stop loss line untuk menghentikan kerugian saat harga menembus level tertentu ke bawah
Strategi pembelian kuantitatif saham BIST empat tahap secara keseluruhan adalah strategi yang sangat cocok untuk konsep saham populer. Dengan membangun gudang secara bertahap, dapat memanfaatkan volatilitas saham secara efektif, mendapatkan biaya yang lebih baik ketika harga turun. Selain itu, pengaturan stop-loss yang masuk akal juga membuat strategi ini berkinerja baik dalam mengendalikan risiko.
/*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)