커뮤니티
분할매수매도
2014-12-15 12:34:15
167
글번호 81304
안녕하십니까. 아래내용 부탁드려요
적용차트 일봉이며 (주차트, Data2, Data3모두 일봉) 전일의 조건에 의해 당일시가에 진입
매수 : 주차트 5일선상승변곡 + Data2양봉(A값이상) + Data3양봉(B값이상)
매도 : 주차트 5일선하락변곡 + Data2음봉(C값이상) + Data3음봉(D값이상
분할매수 분할매도방식으로 진입하려합니다.
총투자금액 10,000,000만원
매수,매도 모두 한번거래시 총투자금액의 20%씩 거래,
매수만 한다고 가정하면 총 5회가능하지만 중간에 스위칭되므로
즉 매수,매수,매수면 => 3회 ,60%매수
매수,매도,매수면 => 1회 ,20%매수
매도,매수,매도면 => -1회 ,20%매도
1. 주식일 경우는 매수부터 시작 (매도는 분할청산의 개념)
2. 주식선물의 경우는 매도부터 시작도 가능 (순수매도포지선도 보유)
매수분이 있을경우에는 포지션을 분할청산한 후에 매도포지션을 늘려가는 개념.
(매수분 40% --> 매도분 20% 이런식으로 바로 스위칭이 아니라..
즉 보유분이 이렇게 +40% --> +20 --> 0 --> -20% 되도록)
레버리지를 고려해서 조정하는 변수도 포함부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2014-12-15 14:21:53
안녕하세요
예스스탁입니다.
문의하신 내용 분할횟수에 따라 나열해서 작성해야 합니다.
진입수량이 유동적이고 진입수량이 모두 청산되지 않으면
다음 진입이 들어가지 않으므로 횟수별로 나열해 작성해야 합니다.
총투자금액 대비 20%이므로 최대 5회까지 진입하는 것으로 작성해 드립니다.
그러므로 따로 보유분의 외부변순는 처리하지 않습니다.
input : 총투자금액(10000000);
var : mav(0,data1),Vol(0,data1),Bcond(false,data1),Scond(false,data1);
if CodeCategoryEx == 11 and BasePrice < 50000 Then
vol = int(int((총투자금액*0.20)/C)/10)*10;
Else
vol = int((총투자금액*0.20)/C);
mav = data1(ma(c,5));
Bcond = mav > mav[1] and mav[1] < mav[2] And data2(C>O and C > A값) and data3(C>O and C > B값);
Scond = mav < mav[1] and mav[1] > mav[2] And data2(C<O and C > C값) and data3(C<O and C > D값);
if Bcond == true Then{
if MarketPosition == 0 Then
buy("b1",AtMarket,def,vol);
if MarketPosition == 1 and MaxEntries == 1 Then
buy("b2",AtMarket,def,Vol);
if MarketPosition == 1 and MaxEntries == 2 Then
buy("b3",AtMarket,def,Vol);
if MarketPosition == 1 and MaxEntries == 3 Then
buy("b4",AtMarket,def,Vol);
if MarketPosition == 1 and MaxEntries == 4 Then
buy("b5",AtMarket,def,Vol);
if MarketPosition == -1 and countif(Bcond == true,BarsSinceEntry) == 1 Then
ExitShort("sx1",OnClose,def,"s1");
if MarketPosition == -1 and countif(Bcond == true,BarsSinceEntry) == 2 Then
ExitShort("sx2",OnClose,def,"s2");
if MarketPosition == -1 and countif(Bcond == true,BarsSinceEntry) == 3 Then
ExitShort("sx3",OnClose,def,"s3");
if MarketPosition == -1 and countif(Bcond == true,BarsSinceEntry) == 4 Then
ExitShort("sx4",OnClose,def,"s4");
if MarketPosition == -1 and countif(Bcond == true,BarsSinceEntry) == 5 Then
ExitShort("sx5",OnClose,def,"s5");
}
if Scond == true Then{
if MarketPosition == 0 Then
sell("s1",AtMarket,def,vol);
if MarketPosition == -1 and MaxEntries == 1 Then
sell("s2",AtMarket,def,vol);
if MarketPosition == -1 and MaxEntries == 1 Then
sell("s3",AtMarket,def,vol);
if MarketPosition == -1 and MaxEntries == 1 Then
sell("s4",AtMarket,def,vol);
if MarketPosition == -1 and MaxEntries == 1 Then
sell("s5",AtMarket,def,vol);
if MarketPosition == 1 and countif(Scond == true,BarsSinceEntry) == 1 Then
exitlong("bx1",OnClose,def,"b1");
if MarketPosition == 1 and countif(Scond == true,BarsSinceEntry) == 1 Then
exitlong("bx2",OnClose,def,"b2");
if MarketPosition == 1 and countif(Scond == true,BarsSinceEntry) == 1 Then
exitlong("bx3",OnClose,def,"b3");
if MarketPosition == 1 and countif(Scond == true,BarsSinceEntry) == 1 Then
exitlong("bx4",OnClose,def,"b4");
if MarketPosition == 1 and countif(Scond == true,BarsSinceEntry) == 1 Then
exitlong("bx5",OnClose,def,"b5");
}
즐거운 하루되세요
> 미수예스 님이 쓴 글입니다.
> 제목 : 분할매수매도
> 안녕하십니까. 아래내용 부탁드려요
적용차트 일봉이며 (주차트, Data2, Data3모두 일봉) 전일의 조건에 의해 당일시가에 진입
매수 : 주차트 5일선상승변곡 + Data2양봉(A값이상) + Data3양봉(B값이상)
매도 : 주차트 5일선하락변곡 + Data2음봉(C값이상) + Data3음봉(D값이상
분할매수 분할매도방식으로 진입하려합니다.
총투자금액 10,000,000만원
매수,매도 모두 한번거래시 총투자금액의 20%씩 거래,
매수만 한다고 가정하면 총 5회가능하지만 중간에 스위칭되므로
즉 매수,매수,매수면 => 3회 ,60%매수
매수,매도,매수면 => 1회 ,20%매수
매도,매수,매도면 => -1회 ,20%매도
1. 주식일 경우는 매수부터 시작 (매도는 분할청산의 개념)
2. 주식선물의 경우는 매도부터 시작도 가능 (순수매도포지선도 보유)
매수분이 있을경우에는 포지션을 분할청산한 후에 매도포지션을 늘려가는 개념.
(매수분 40% --> 매도분 20% 이런식으로 바로 스위칭이 아니라..
즉 보유분이 이렇게 +40% --> +20 --> 0 --> -20% 되도록)
레버리지를 고려해서 조정하는 변수도 포함부탁드립니다.
감사합니다.
이전글