커뮤니티
질문드립니다.
2014-03-10 12:42:41
164
글번호 73343
청산에 관련된 함수가 궁금해서 질문드립니다.
1.
if 청산조건 then
{ exitlong("a", atmarket, def, "", 1, 2); }
라고 시스템을 작성하였을때,
"a"는 청산이름이고, atmarket는 봉완성시라고 알고 있습니다.
그런데 뒤에 def, "", 1 그리고 2는 무었을 의미하는지 알고 싶습니다.
2.
그리고 atmarket대신 atlimit, atstop, onclose등등의 함수가 있는데,
그 뒤에 붙는 def, "", 1 그리고 2와 함께 사용하면 어떤 의마가 되는지 알고싶습니다.
atmarket자리에 올수 있는 모든 명령어와 각각의 명령어에 따른 그뒤에 붙을 수 있는 명령어들의 종류와 그 의미를 상세하게 알고 싶습니다.
번거로우시겠지만 궁금해서 그러니 차근차근 하나씩 설명부탁드리겠습니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2014-03-10 17:34:08
안녕하세요
예스스탁입니다.
청산함수(exitlong,exitshort)는 모두 6개의 매개변수를 지정할수 있습니다.
exitlong("이름",신호타입,신호가격,"진입명",수량,수량옵션);
exitShort("이름",신호타입,신호가격,"진입명",수량,수량옵션);
1."이름"
"이름"은 임의로 지어주시면 됩니다.
2.3 신호타입과 신호가격
신호타입과 신호가격은 하나의 쌍으로 보시면 됩니다.
신호타입은 onclose,Atmarket,Atstop,Atlimit 4가지가 제공되는데
이중 Onclose와 Atmarket은 따로 신호가격을 지정하는 타입이 아니므로 신호가격을 def로 지정해 주시면 되며
Atstop과 atlimit은 신호가격을 지정해 주셔야 합니다.
1). 신호타입을 onclose로 사용하시면
if조건 만족시 다음봉 시가가 수신될때 주문을 발생하게 되고
진입/청산가격은 if만족봉의 종가를 사용하는 타입입니다.
2). 신호타입을 atmarket으로 사용하시면
if조건 만족시 다음봉 시가가 수신될때 주문을 발생하게 되고
진입/청산가격은 if만족봉 다음봉의 시가를 사용하는 타입입니다.
3). atstop은 봉완성시에 atstop 뒤에 지정한 가격으로 감시가격을 설정하고
다음봉이 이 감시가격 이상이나 이하의 시세가 발생하면 신호가 발생하게 됩니다.
매수주문함수(buy,exitshort) : 지정한 감시가격 이상의 시세 발생시 즉시 신호발생
매도주문함수(buy,exitlong) : 지정한 감시가격 이하의 시세 발생시 즉시 신호발생
buy("b",atstop,H+0.1); 직전완성봉의 고가보다 0.1이상 큰 시세 발생시 즉시 매수주문
sell("S",atstop,L-0.1); 직전완성봉의 저가보다 0.1이상 작은 시세 발생시 즉시 매도주문
4). atlimit은 봉완성시에 atlimit 뒤에 지정한 가격으로 감시가격을 설정하고
다음봉이 이 감시가격 이상이나 이하의 시세가 발생하면 신호가 발생하게 됩니다.
매수주문함수(buy,exitshort) : 지정한 감시가격 이하의 시세 발생시 즉시
매도주문함수(buy,exitlong) : 지정한 감시가격 이상의 시세 발생시 즉시
buy("b",atlimit,L-0.1); 직전완성봉의 저가보다 0.1이상 작은 시세 발생시 즉시 매수주문
sell("S",atlimit,H-0.1); 직전완성봉의 고가보다 0.1이상 큰 시세 발생시 즉시 매도주문
4. "진입명"
청삼함수가 특정한 진입명으로 진입되어 있을때만 발동하게 하기 원하시면
""안에 진입의 이름을 지정해 주시면 됩니다.
아무것도 적지 않으시면 모든 진입에 대해 발동합니다
Exilong("bx",atstop,entryprice-0.5,"매수1"); --> "매수1"이라는 이름으로 진입이 들어갔을때만 진입가대비 0.5하락하면 청산
Exilong("bx",atstop,entryprice-0.5,""); --> 모든 매수진입에 대해 진입가 대비 0.5하락하면 청산
5. 수량
해당 청산이 발동할때 청산할 수량을 지정해 주시면 됩니다.
아무것도 적지 않으시면 진입수량 전량 청산입니다.
6. 수량옵션
수량 옵션은 0,1,2가 제공됩니다.(우리트레이더의 경우 아직 3.1버전이라 2는 사용할수 없습니다)
수량옵션은 분할로 청산할때만 이용하는 옵션입니다.
수량옵션 0은 진입별로 지정한 수량을 청산합니다.
예를들어 매수가
9시 3계약진입 --> 10시 3계약진입 --> 11시에 3계약 진입하고
12시에 아래 조건이 만족하고 아래 청산(수량옵션 0)을 만나면
if crossdown(c,ma(c,20)) then
exitlong("bx",onclose,def,"",2,0);
각 3번의 진입에서 2계약씩 배수 총 6계약이 청산되도 3계약이 남게 됩니다.
12시에 아래 조건이 만족하고 아래 청산(수량옵션 1)을 만나면
exitlong("bx",onclose,def,"",2,1);
각 3번의 진입으로 들어간 총 9계약에서 2계약을 청산하고 7계약이 남게 됩니다.
즉 수량옵션 0은 진입별로 N계약씩 빼서 청산하라는 옵션이고
수량옵션 1은 총계약수에서 지정한 계약수만 청산하라는 옵션입니다.
수량옵션2는 하나의 청산함수는 기본적으로 진입횟수 이상으로는 발동하지 않습니다.
즉 3번에 나누어 Buy를 하면 하나의 청산함수는 최대 발동횟수가 3입니다.
하지만 수량옵션을 2로 하면 이 제한을 무시하고 원하시는 횟수만큼 발동하실수가 있습니다.
예를 들어 골든크로스가 발생하면 10계약 진입하고
이후에 데드크로스가 발생할때마다 2계약씩 청산한다면
아래와 같이 작성하면 매수이후에 한번 데드가 날때만 2계약 청산하고 이후에 청산이 나오지 않습니다.
(진입이 1회이므로 청산함수도 1회만 동작)
if Crossup(c,ma(c,20)) Then
buy("b",OnClose,def,10);
if CrossDown(C,ma(c,20)) Then
ExitLong("bx",OnClose,def,"",2,1);
하지만 아래와작성하면 매수이후에 데드가 날때마다 2계약 청산하게 할수 있습니다.
(진입은 1회이지만 청산함수는 하나의 청산함수가 다수로 발생)
if Crossup(c,ma(c,20)) Then
buy("b",OnClose,def,10);
if CrossDown(C,ma(c,20)) Then
ExitLong("bx",OnClose,def,"",2,0);
즐거운 하루되세요
> HI_yj**** 님이 쓴 글입니다.
> 제목 : 질문드립니다.
> 청산에 관련된 함수가 궁금해서 질문드립니다.
1.
if 청산조건 then
{ exitlong("a", atmarket, def, "", 1, 2); }
라고 시스템을 작성하였을때,
"a"는 청산이름이고, atmarket는 봉완성시라고 알고 있습니다.
그런데 뒤에 def, "", 1 그리고 2는 무었을 의미하는지 알고 싶습니다.
2.
그리고 atmarket대신 atlimit, atstop, onclose등등의 함수가 있는데,
그 뒤에 붙는 def, "", 1 그리고 2와 함께 사용하면 어떤 의마가 되는지 알고싶습니다.
atmarket자리에 올수 있는 모든 명령어와 각각의 명령어에 따른 그뒤에 붙을 수 있는 명령어들의 종류와 그 의미를 상세하게 알고 싶습니다.
번거로우시겠지만 궁금해서 그러니 차근차근 하나씩 설명부탁드리겠습니다.
감사합니다.