리소스 로딩... 로딩...

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

저자:차오장, 날짜: 2023-12-19 15:21:22
태그:

img

이 BIST 주식 4단계 양적 인수 전략은 파동 움직임을 추적하기 위해 4단계 구매를 기반으로합니다. 조작 후 시장에 진출하고 구매자의 수요가 증가하면 판매합니다. 이 전략은 큰 변동이있는 주식에게 적합하며 단계별 구매를 통해 더 나은 비용 통제를 달성합니다.

전략 원칙

이 전략은 먼저 저항선과 지지선을 계산합니다. 저항선은 닫힌 가격과 높은 가격의 변동 평균의 교차로 결정되며, 지원선은 닫힌 가격과 낮은 가격의 변동 평균의 교차로 결정됩니다.

가격이 지지선 아래로 넘어가면, 만약 가격이 저항선에서 설정된 구매 범위 안에 있다면, 첫 번째 단계에서 25%의 포지션을 구매할 것입니다. 그 다음 첫 번째 구매 가격 주위에서 또 다른 25%의 포지션을 구매할 것입니다. 그리고 4번 계속하여, 결국 포지션의 100%를 보유합니다.

주가가 개설비의 2배를 넘으면 모든 포지션을 종료합니다.

전략 의 장점

  1. 4단계 구매로 구매비용을 낮추는 것
  2. 재고 변동 추적을 통해 더 나은 입구점
  3. 적당한 수익을 위한 합리적인 수익점

위험 과 해결책

  1. 손실을 멈추지 않고 계속된 재고 감소, 큰 손실로 이어집니다.

    • 적당한 스톱 로스를 설정하여 손실을 효과적으로 제어합니다.
  2. 부적절한 매개 변수 설정은 여러 구매 지점을 너무 가깝게 만들어 비용을 다양화시킵니다.

    • 구매 단계 사이의 적절한 가격 차이를 설정
  3. 손실을 효과적으로 제어할 수 없을 정도로 큰 스톱 손실점

    • 실제 거래 환경과 심리적 허용에 따라 적절한 정지 거리를 설정합니다.

최적화 방향

  1. 다른 종류의 조류에 대한 매개 변수를 그들의 특성에 더 잘 맞추기 위해 조정

  2. 변동성이 증가할 때 구매하기 위해 변동성 지표를 추가합니다.

  3. 더 높은 수익을 달성하기 위해 후속 정지를 사용하여 수익을 최적화

  4. 가격이 특정 수준을 넘을 때 손실을 줄이기 위해 스톱 로스 설정을 추가합니다.

요약

BIST 주식 4단계 양적 인수 전략은 일반적으로 인기있는 개념 주식에 적합합니다. 구매를 단계화함으로써 가격이 후퇴 할 때 더 나은 비용을 얻기 위해 주식의 변동성을 효과적으로 활용 할 수 있습니다. 또한 합리적인 수익 및 스톱 손실 설정으로 위험 통제에서 잘 수행 할 수 있습니다. 실제 시장 환경에 기반한 지속적인 매개 변수 조정 및 최적화로이 전략은 알파를 안정적으로 제공할 수 있습니다.


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

더 많은