함수설명
매수포지션 청산
작성방법
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계약씩 청산.
뒤로가기는 좌측상단의 목차 버튼을 눌러주세요.