BIST này cổ phiếu 4 giai đoạn chiến lược mua lại định lượng

Tác giả:ChaoZhang, Ngày: 2023-12-19 15:21:22
Tags:

img

Chiến lược mua lại định lượng 4 giai đoạn này dựa trên việc mua bốn giai đoạn để theo dõi các chuyển động sóng. Nó vào thị trường sau khi thao túng và bán khi nhu cầu của người mua tăng. Chiến lược này phù hợp với cổ phiếu có biến động lớn và đạt được kiểm soát chi phí tốt hơn thông qua mua từng giai đoạn.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính toán các đường kháng cự và hỗ trợ. Đường kháng cự được xác định bởi giao điểm của giá đóng và đường trung bình động dao động của giá cao, trong khi đường hỗ trợ được xác định bởi giao điểm của giá đóng và đường trung bình động dao động của giá thấp.

Khi giá phá vỡ dưới đường hỗ trợ, nếu giá nằm trong phạm vi mua thiết lập từ đường kháng cự, nó sẽ mua 25% vị trí trong giai đoạn đầu tiên. sau đó nó sẽ mua thêm 25% vị trí xung quanh giá mua đầu tiên, và như vậy trong 4 lần, cuối cùng giữ 100% vị trí.

Khi giá cổ phiếu vượt quá gấp đôi chi phí mở cửa, nó sẽ đóng tất cả các vị trí.

Ưu điểm của Chiến lược

  1. Giảm chi phí mua thông qua mua hàng bốn giai đoạn
  2. Các điểm nhập khẩu tốt hơn bằng cách theo dõi biến động cổ phiếu
  3. Điểm lợi nhuận hợp lý cho lợi nhuận hợp lý

Rủi ro và giải pháp

  1. Tiếp tục giảm tồn kho mà không dừng lỗ, dẫn đến tổn thất lớn

    • Đặt mức dừng lỗ hợp lý để kiểm soát thiệt hại hiệu quả
  2. Cài đặt tham số không chính xác làm cho nhiều điểm mua quá gần để đa dạng hóa chi phí

    • Thiết lập sự khác biệt giá phù hợp giữa các giai đoạn mua
  3. Điểm dừng mất mát quá rộng để kiểm soát thiệt hại hiệu quả

    • Đặt khoảng cách dừng thích hợp dựa trên môi trường giao dịch thực tế và dung nạp tâm lý

Hướng dẫn tối ưu hóa

  1. Điều chỉnh các thông số cho các loại cổ phiếu khác nhau để phù hợp hơn với đặc điểm của chúng

  2. Thêm các chỉ số biến động để mua khi biến động tăng

  3. Tối ưu hóa lợi nhuận bằng cách sử dụng dừng lại để đạt được lợi nhuận cao hơn

  4. Thêm cài đặt dừng lỗ để cắt giảm lỗ khi giá vượt qua một số mức nhất định

Tóm lại

Chiến lược mua cổ phiếu định lượng 4 giai đoạn của BIST rất phù hợp với các cổ phiếu khái niệm phổ biến nói chung. Bằng cách sắp xếp các giao dịch mua, nó có thể sử dụng hiệu quả sự biến động của cổ phiếu để có được chi phí tốt hơn khi giá giảm. Ngoài ra, các thiết lập lấy lợi nhuận và dừng lỗ hợp lý cho phép nó hoạt động tốt trong kiểm soát rủi ro. Với các điều chỉnh tham số liên tục và tối ưu hóa dựa trên môi trường thị trường thực tế, chiến lược này có thể cung cấp alpha đáng tin cậy.


/*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)

Thêm nữa