Search

ExitShort

함수설명

매도포지션 청산

작성방법

ExitShort("명칭", 신호타입, 신호가격, "진입명", 수량, 수량옵션);
C
복사

매개변수 설명

"명칭": 신호명칭, 하나의 전략에서 동일한 명칭으로 중복사용 불가
"신호타입": 생략 가능, 기본값은 OnClose
OnClose
봉완성시 종가에 신호표시 종가를 리포트 진입/청산가격으로 사용
Atmarket
봉완성시 다음봉 시가에 신호표시 다음봉 시가를 리포트 진입/청산가격으로 사용
AtStop
봉완성시 감시할 신호가격을 셋팅하고 다음봉에서 가격조건 충족시 즉시 신호발생. 가격조건 충족하는 첫시세가 리포트의 진입/청산가격이 됨. Buy, ExitShort인 경우에는 지정한 신호가격 이상의 시세 발생 시 즉시 신호발생 Sell, ExitLong인 경우에는 지정한 신호가격 이하의 시세 발생 시 즉시 신호발생
AtLimit
봉완성시 감시할 신호가격을 셋팅하고 다음봉에서 가격조건 충족시 즉시 신호발생. 가격조건 충족하는 첫시세가 리포트의 진입/청산가격이 됨. Buy, ExitShort인 경우에는 지정한 신호가격 이하의 시세 발생 시 즉시 신호발생 Sell, ExitLong인 경우에는 지정한 신호가격 이상의 시세 발생 시 즉시 신호발생
"감시가격": AtLimit, AtStop일 때 감시할 신호가격. OnClose, AtMarket의 경우는 필요하지 않으며 DEF로 입력
"진입명": 진입명을 지정하면 지정한 이름의 진입신호가 있을때만 신호가 발생
"수량": 주문 수량, 생략하면 현재 남은 수량 전량 청산. 포지션의 남은 수량이 지정한 수량보다 작으면 남은 수량만 청산
"수량옵션": 수량적용옵션 분할청산시에 사용하는 옵션이고 기본값은 0 0 : 각 진입신호별 지정수량을 차감해 청산 1 : 전체수량 중 지정수량을 청산 2 : 하나의 청산함수로 지정수량을 반복청산

활용예시

※ 신호타입

var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); #매도진입 후 if MarketPosition == -1 Then { //봉완성시 이평 골드크로스 발생하면 봉완성시 종가 전량청산 if CrossUp(mav1,mav2) Then ExitShort("sx1",OnClose);//OnClose는 상략가능 //봉완성시 다음봉 시가날짜와 완성봉 날짜가 다르면 다음봉 시가 전량청산 //다음날 시초가청산 if NextBarSdate != sDate Then ExitShort("sx2",AtMarket); //진입가 대비 20틱 상승하면 즉시 전량청산(손절) ExitShort("sx3",AtStop,EntryPrice+PriceScale*20); //진입가 대비 20틱 하락하면 즉시 전량청산(익절) ExitShort("sx4",AtLimit,EntryPrice-PriceScale*20); }
C
복사

※ 진입명

var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //이평골드 매도진입 if CrossDown(mav1,mav2) Then Sell("S1"); //20봉 신저가 매도진입 if C < Lowest(L,20)[1] Then Sell("S2"); //매도진입 후 if MarketPosition == 1 Then { //봉완성시 이평 골드크로스 발생하면 //S1진입만 봉완성시 종가 전량청산 if CrossDown(mav1,mav2) Then ExitShort("sx1",OnClose,Def,"S1"); }
C
복사

※수량옵션

0 : 각 진입신호별 지정한 수량을 차감해 청산하는 옵션 진입신호의 남은 수량이 청산할 수량보다 작으면 해당 진입신호의 남은수량만 청산 var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //첫매도진입 //무포지션에서 이평데드가 발생하면 3계약 매도진입 if MarketPosition == 0 and CrossDown(mav1,mav2) Then Sell("S1",OnClose,Def,3); //매도진입 후 if MarketPosition == -1 Then { //두번째 매도진입 //1차 진입 후 진입가 대비 20틱 하락하면 3계약 추가 매도진입 if MaxEntries == 1 Then Sell("S2",AtStop,EntryPrice-PriceScale*20,3); //봉완성시 이평 골드크로스 발생할때마다 2계약 종가 청산 if CrossUp(mav1,mav2) Then ExitShort("sx1",OnClose,Def,"",2,0); }
C
복사
총 6계약 중 각 진입신호별로 2계약씩 총 4계약 청산하고 2계약 남음
1 : 전체수량 중 지정 수량을 청산 var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //첫매도진입 //무포지션에서 이평데드가 발생하면 3계약 매도진입 if MarketPosition == 0 and CrossDown(mav1,mav2) Then Sell("S1",OnClose,Def,3); //매도진입 후 if MarketPosition == -1 Then { //두번째 매도진입 //1차 진입 후 진입가 대비 20틱 하락하면 3계약 추가 매도진입 if MaxEntries == 1 Then Sell("S2",AtStop,EntryPrice-PriceScale*20,3); //봉완성시 이평 골드크로스 발생할때마다 2계약 종가 청산 if CrossUp(mav1,mav2) Then ExitShort("sx1",OnClose,Def,"",2,1); }
C
복사
총 6계약 매도진입 중 2계약 청산 후 4계약이 남음.
2 : 하나의 함수로 지정수량을 반복청산 각 청산함수는 최대 진입횟수만큼만 발생할 수 있습니다. 이런 제한을 없애고 하나의 청산함수로 지정수량을 반복청산할 때 사용하는 옵션입니다. var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //첫매도진입 //무포지션에서 이평데드가 발생하면 3계약 매도진입 if MarketPosition == 0 and CrossDown(mav1,mav2) Then Sell("S1",OnClose,Def,3); //매도진입 후 if MarketPosition == -1 Then { //두번째 매도진입 //1차 진입 후 진입가 대비 20틱 하락하면 3계약 추가 매도진입 if MaxEntries == 1 Then Sell("S2",AtStop,EntryPrice-PriceScale*20,3); //봉완성시 이평 골드크로스 발생할때마다 2계약 종가 청산 if CrossUp(mav1,mav2) Then ExitShort("sx1",OnClose,Def,"",2,2); }
C
복사
조건만족시 마다 2계약씩 청산.
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.