4단계 BIST 주식 양적 인수 전략


생성 날짜: 2023-12-19 15:21:22 마지막으로 수정됨: 2023-12-19 15:21:22
복사: 0 클릭수: 560
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

4단계 BIST 주식 양적 인수 전략

개요

4단계 BIST 주식 양적 매수 전략은 4단계 매수와 변동 추적을 이용한 전략으로, 시장이 침체된 지역에서 매수하고, 시장이 증가한 지역에서 매수한다. 이 전략은 큰 변동이 있는 주식에 적용되며, 분량 매입을 통해 더 나은 비용 통제를 달성한다.

전략 원칙

이 전략은 먼저 저항선과 지지선을 계산한다. 저항선은 높은 가격의 흔들림 평균선과 닫기 가격의 교차점을 통해 결정되며, 지지선은 닫기 가격과 낮은 가격의 흔들림 평균선의 교차점을 통해 결정된다.

가격이 지지선 아래로 떨어질 때, 가격이 저항선에서 떨어져 있는 설정된 구매 범위 내에서, 첫 번째 단계의 25% 포지션을 구매한다. 그 후, 첫 번째 단계의 구매 가격 근처에서 다시 25% 포지션을 구매한다. 이렇게 4 번 순환하여, 최종적으로 100%의 포지션을 달성한다.

주식 가격이 포지션 개시 비용의 2배를 초과했을 때, 전체 포지션 청산한다.

전략적 이점

  1. 4단계 구매로 구매비용이 낮아집니다.
  2. 주식 변동을 추적하여 더 나은 입시 지점을 달성합니다.
  3. 이치에 맞게 투자하고, 더 나은 수익을 얻습니다.

위험과 해결책

  1. 주가가 계속 하락하고, 더 큰 손실을 초래할 수 있습니다.

    • 합리적인 스톱 라인을 설정하여 손실을 효과적으로 제어하십시오.
  2. 잘못된 매개 변수 설정, 여러 구매 포인트가 너무 가깝기 때문에 비용 분산 효과가 없습니다.

    • 구매 단계 사이의 가격 격차를 합리적으로 설정합니다.
  3. 스톱 손실 지점은 너무 커서 손실을 효과적으로 제어할 수 없습니다.

    • 실제 거래 환경과 심리적 용도에 따라 적절한 중지 거리를 설정하십시오.

전략 최적화 방향

  1. 다른 유형의 주식에 따라 매입 영역을 주식의 특성에 맞게 조정하는 파라미터

  2. 변동률 지표에 가입하여 변동이 커지면 구매합니다.

  3. 정지 방법을 최적화하여 정지를 추적하는 대신 더 높은 수익을 얻습니다.

  4. 가격 하향이 특정 수준을 돌파 할 때 손실을 중지하는 스톱 라인 설정을 추가하십시오.

요약하다

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)