Search

ExitLong

함수설명

매수포지션 청산

작성방법

ExitLong("명칭", 신호타입, 신호가격, "진입명", 수량, 수량옵션);
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 CrossDown(mav1,mav2) Then ExitLong("bx1",OnClose);//OnClose는 생략가능 //봉완성시 다음봉 시가날짜와 완성봉 날짜가 다르면 다음봉 시가 전량청산 //다음날 시초가청산 if NextBarSdate != sDate Then ExitLong("bx2",AtMarket); //진입가 대비 20틱 하락하면 즉시 전량청산(손절) ExitLong("bx3",AtStop,EntryPrice-PriceScale*20); //진입가 대비 20틱 상승하면 즉시 전량청산(익절) ExitLong("bx4",AtLimit,EntryPrice+PriceScale*20); }
C
복사

※ 진입명

var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //이평골드 매수진입 if CrossUp(mav1,mav2) Then Buy("B1"); //20봉 신고가 매수진입 if C > Highest(H,20)[1] Then Buy("B2"); #매수진입 후 if MarketPosition == 1 Then { //봉완성시 이평 데드크로스 발생하면 //B1진입만 봉완성시 종가 전량청산 if CrossDown(mav1,mav2) Then ExitLong("bx1",OnClose,Def,"B1"); }
C
복사

※수량옵션

0 : 각 진입신호별 지정한 수량을 차감해 청산하는 옵션 진입신호의 남은 수량이 청산할 수량보다 작으면 해당 진입신호의 남은수량만 청산 var : mav1(0),mav2(0); //이동평균 mav1 = ma(C,5); mav2 = ma(C,20); //첫 매수진입 //무포지션에서 이평골드가 발생하면 3계약 매수진입 if MarketPosition == 0 and CrossUp(mav1,mav2) Then Buy("B1",OnClose,Def,3); //매수진입 후 if MarketPosition == 1 Then { //두번째 매수 //1차 진입 후 진입가 대비 20틱 상승하면 3계약 추가 매수진입 if MaxEntries == 1 Then Buy("B2",AtStop,EntryPrice+PriceScale*20,3); //봉완성시 이평 데드크로스 발생하면 각 진입별 2계약씩 종가 청산 if CrossDown(mav1,mav2) Then ExitLong("bx1",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 CrossUp(mav1,mav2) Then Buy("B1",OnClose,Def,3); //매수진입 후 if MarketPosition == 1 Then { //두번째 매수진입 //1차 진입 후 진입가 대비 20틱 상승하면 3계약 추가 매수 if MaxEntries == 1 Then Buy("B2",AtStop,EntryPrice+PriceScale*20,3); //봉완성시 이평 데드크로스 발생하면 2계약 종가 청산 if CrossDown(mav1,mav2) Then ExitLong("bx1",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 CrossUp(mav1,mav2) Then Buy("B1",OnClose,Def,3); //매수진입 후 if MarketPosition == 1 Then { //두번째 매수진입 //1차 진입 후 진입가 대비 20틱 상승하면 3계약 추가 매수 if MaxEntries == 1 Then Buy("B2",AtStop,EntryPrice+PriceScale*20,3); //봉완성시 이평 데드크로스 발생할때마다 2계약 종가 청산 if CrossDown(mav1,mav2) Then ExitLong("bx1",OnClose,Def,"",2,2); }
C
복사
조건만족시 마다 2계약씩 청산.
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.