커뮤니티
한번 진입후 여러번 분할 청산시
2010-08-14 18:30:58
669
글번호 31579
한번 진입후 여러번 분할하여 청산시
동일한 청산이름으로 분할하여 청산이 안되나요?
예를 들면
input : 매수일자(20100108), 매매기준가(0),매도대상수량(100), 분할스텝수(5), 분할폭_퍼센트(1);
var :거래기준가(0), 매매수량(0), 매도잔량(0), 비중(0), 찌꺼기(0), stp(1), check_price(0), max_stp(1);
if date == 매수일자 then {
if MarketPosition() <> 1 then {
max_stp = 분할스텝수;
if max_stp > 5 then max_stp = 5;
else if max_stp < 1 then max_stp = 1;
buy("매수1", OnClose, DEF, 매도대상수량);
매도잔량 = 매도대상수량;
if 매매기준가 == 0 then 거래기준가 = C; else 거래기준가 = 매매기준가;
}
}
if date >= 매수일자 and stp <= max_stp then {
if max_stp == 2 then {
if stp==1 then {비중=0.7; check_price= 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.3; ; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 3 then {
if stp == 1 then { 비중 = 0.5; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중 = 0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.2; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 4 then {
if stp == 1 then { 비중=0.4; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중=0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp==3 then { 비중 = 0.2; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중=0.1; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 5 then {
if stp == 1 then { 비중 = 0.4; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중 = 0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 3 then { 비중 = 0.15; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 4 then { 비중 = 0.1; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.05; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
if c > check_price /*and c[1] <= check_price*/ then {
if stp == max_stp then 매매수량 = int(매도잔량/10)*10;
else 매매수량 = int(매도대상수량*비중/10)*10;
exitlong("청산#", OnClose, DEF, "", 매매수량, 1);
stp = stp + 1;
매도잔량 = 매도잔량 - 매매수량; }
}
의 경우 처음 한번만 청산되고 그 후는 청산이 안되는데요.
제가 코딩을 잘못 한 것인가요?
부탁드립니다. 꾸벅!!!
답변 1
예스스탁 예스스탁 답변
2010-08-16 10:35:57
안녕하세요
예스스탁입니다.
청산함수는 하나의 거래에서 한번식만 발동됩니다.
그러므로 분할청산하실 경우에는 경우의 수에 맞게
청산함수가 있어야 발동가능합니다.
ex) 3번 분할청산 --> 청산함수 3개
즐거운 하루되세요
> brucehan 님이 쓴 글입니다.
> 제목 : 한번 진입후 여러번 분할 청산시
> 한번 진입후 여러번 분할하여 청산시
동일한 청산이름으로 분할하여 청산이 안되나요?
예를 들면
input : 매수일자(20100108), 매매기준가(0),매도대상수량(100), 분할스텝수(5), 분할폭_퍼센트(1);
var :거래기준가(0), 매매수량(0), 매도잔량(0), 비중(0), 찌꺼기(0), stp(1), check_price(0), max_stp(1);
if date == 매수일자 then {
if MarketPosition() <> 1 then {
max_stp = 분할스텝수;
if max_stp > 5 then max_stp = 5;
else if max_stp < 1 then max_stp = 1;
buy("매수1", OnClose, DEF, 매도대상수량);
매도잔량 = 매도대상수량;
if 매매기준가 == 0 then 거래기준가 = C; else 거래기준가 = 매매기준가;
}
}
if date >= 매수일자 and stp <= max_stp then {
if max_stp == 2 then {
if stp==1 then {비중=0.7; check_price= 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.3; ; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 3 then {
if stp == 1 then { 비중 = 0.5; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중 = 0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.2; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 4 then {
if stp == 1 then { 비중=0.4; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중=0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp==3 then { 비중 = 0.2; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중=0.1; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
else if max_stp == 5 then {
if stp == 1 then { 비중 = 0.4; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 2 then { 비중 = 0.3; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 3 then { 비중 = 0.15; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else if stp == 4 then { 비중 = 0.1; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); }
else { 비중 = 0.05; check_price = 거래기준가*(1+분할폭_퍼센트*stp/100); } }
if c > check_price /*and c[1] <= check_price*/ then {
if stp == max_stp then 매매수량 = int(매도잔량/10)*10;
else 매매수량 = int(매도대상수량*비중/10)*10;
exitlong("청산#", OnClose, DEF, "", 매매수량, 1);
stp = stp + 1;
매도잔량 = 매도잔량 - 매매수량; }
}
의 경우 처음 한번만 청산되고 그 후는 청산이 안되는데요.
제가 코딩을 잘못 한 것인가요?
부탁드립니다. 꾸벅!!!
다음글
이전글