첨부 이미지
그림1
안녕하세요?
예스트레이더 초보자들에게 항상 친절하고 자세한 답변을 해주시는 Q&A 담당자분께 감사의 말씀을 드립니다. 금일 저의 문의 사항은 아래와 같습니다.
[질문1]
Buy(), Sell(), ExitLong(), ExitShort() 등의 함수들은 신호타입(Onclose, Atmarket, Atstop, Atlimit)을 인수로 갖는 것으로 압니다.
특정 시간에 "시장가"로 주문을 내서 주문이 즉시 체결되었으면 하는데...
아래 코드와 같이
-> 10시45분15초에 매수 체결
-> 10시45분35초에 매수청산 체결
을 하려면
Buy()와 ExitLong()의 신호타입을 어떤 것으로 설정해야 하나요?
차트는 1분봉을 사용하고 있고 현재봉의 완성 여부와 관계 없이
미리 정한 시간에 주문이 실행되었으면 합니다.
(질문1 관련 코드 예시)
if stime == 104515 Then Buy();
if stime == 104535 Then ExitLong("bx");
[질문2]
위 첨부 그림은 NH트레이더 시스템트레이딩 교육자료를 켑쳐한 것입니다. "자동주문으로 설정할 경우 매매신호가 발생한 다음 봉이 만들어지는 순간 주문이 나가게 됩니다"라고 적혀있더군요.
(A) 그렇다면 아래 코드에서 현재 진행중인 봉이 시작된지 10초만에 순매수거래량(=Upvol-DownVol)이 1000을 초과했다면, 순매수거래량이 1000을 초과한 시점에 즉시 매수주문이 나가는 것이 아니라, 50초 후 (1분봉 가정) 현재봉이 완성되는 시점에 매수주문이 나가는 건가요?
(B) 현재봉의 초반에 순매수거래량이 1000을 초과했더라도 50초 후에는 순매수거래량이 다시 마이너스로 돌아설 수도 있는데, 순매수거래량이 다시 마이너스로 돌아서면 기존에 발생했던 매수신호가 취소되고 봉 완성 시점에는 매수주문이 나가지 않게 되나요?
(C) 현재 진행중인 봉의 완성 여부와 관계 없이 순매수거래량이(=Upvol-DownVol) 1000을 초과한 시점에 즉시 매수주문이 나가도록 하려면 어떻게 해야 하나요?
(질문2 관련 코드 예시)
if Upvol-DownVol > 1000 Then Buy();
감사합니다.
답변 2
예스스탁
예스스탁 답변
2022-09-26 10:29:59
안녕하세요
예스스탁입니다.
1
수식안에서는 실제 주문가격을 지정하는 옵션이 없습니다.
신호가 발생하면 시스템 트레이딩 설정창의 매매탭에서 설정한 매매가격으로 주문이 집행됩니다.
시장가와 같은 실제 주문옵션은 해당 매매가격으로 설정하셔야 합니다.
시스템 수식에서 Buy,Sell,Exitlong,ExitShort는 신호를 발생을 담당하는 함수이고
신호타입(Onclose, Atmarket, Atstop, Atlimit)은 신호발생 조건을 지정하는 옵션입니다.
수식은 기본적으로 봉완성시(다음봉시가수신)를 기본체계로 합니다.
Onclose는 봉완성시 발생하고 완성봉종가에 신호가 표시되고 완성봉종가를 리포트의 진입/청산가격으로 사용하는 타입입니다.
atmarket은 봉완성시 발생하고 다음봉시가에 신호가 표시되고 다음봉시가를 리포트의 진입/청산가격으로 사용하는 타입입니다.
Onclose와 atmarket은 봉완성시 신호가 발생하는 것은 같고 리포트상 진입/청산가격만 완성봉종가를 사용하느냐
다음봉시가를 사용하느냐의 차이만 있습니다.
Atstop과 atlimit은 봉완성시 특정값을 셋팅해서
다음봉 미완성시에 해당값 이상의 시세나 이하의 시세가 발생하면 즉시 신호가 발생하는 타입니다.
리포트의 가격도 지정한 값 이상이나 이하의 조건을 만족하는 첫가격이 됩니다.
시스템은 사용자분이 지정한 조건일때
신호를 발생하고 주문만 집행됩니다. 주문이후 체결까지는 시스템에서 인지하거나 개입이 가능하지 않습니다.
체결은 거래소에서 되는 부분이므로 지정한 시간의 체결은 수식으로 구현이 되지 않습니다.
지정한 시간에 신호가 발생하고 주문을 집행하고자 하시면
올리신 수식을 사용하시면 되고 수식은 봉의 시가시간이나 종가시간만 체크할 수 있으므로
1초봉에 시스템을 적용하셔야 합니다.
분봉이하에서는 초단위까지 체크해서 신호발생 할 수는 없습니다.
2
수식은 봉완성시(다음봉시가수신)이 기본체계입니다.
if문은 봉완성시로만 체크가 가능하므로 봉미완성시에 조건을 체크해서 신호가 발생하지 못합니다.
랭귀지에서 봉미완성시 조건체크해 신호가 즉시 발생하는 신호타입은 위 1번에서 설명드린 부분과 같이
atstop,atlimit뿐입니다.
하지만 해당 타입은 봉완성시 지정한 값과 미완성시인 현재봉의 현재가와 비교해서 신호가 발생합니다.
비가격데이타로 즉시 신호발생은 가능하지 않습니다.
올리신 내용으로는 즉시는 불가능합니다.
즐거운 하루되세요
> wxc7456 님이 쓴 글입니다.
> 제목 : Buy(), Sell() 펑션의 신호타입 문의
> 안녕하세요?
예스트레이더 초보자들에게 항상 친절하고 자세한 답변을 해주시는 Q&A 담당자분께 감사의 말씀을 드립니다. 금일 저의 문의 사항은 아래와 같습니다.
[질문1]
Buy(), Sell(), ExitLong(), ExitShort() 등의 함수들은 신호타입(Onclose, Atmarket, Atstop, Atlimit)을 인수로 갖는 것으로 압니다.
특정 시간에 "시장가"로 주문을 내서 주문이 즉시 체결되었으면 하는데...
아래 코드와 같이
-> 10시45분15초에 매수 체결
-> 10시45분35초에 매수청산 체결
을 하려면
Buy()와 ExitLong()의 신호타입을 어떤 것으로 설정해야 하나요?
차트는 1분봉을 사용하고 있고 현재봉의 완성 여부와 관계 없이
미리 정한 시간에 주문이 실행되었으면 합니다.
(질문1 관련 코드 예시)
if stime == 104515 Then Buy();
if stime == 104535 Then ExitLong("bx");
[질문2]
위 첨부 그림은 NH트레이더 시스템트레이딩 교육자료를 켑쳐한 것입니다. "자동주문으로 설정할 경우 매매신호가 발생한 다음 봉이 만들어지는 순간 주문이 나가게 됩니다"라고 적혀있더군요.
(A) 그렇다면 아래 코드에서 현재 진행중인 봉이 시작된지 10초만에 순매수거래량(=Upvol-DownVol)이 1000을 초과했다면, 순매수거래량이 1000을 초과한 시점에 즉시 매수주문이 나가는 것이 아니라, 50초 후 (1분봉 가정) 현재봉이 완성되는 시점에 매수주문이 나가는 건가요?
(B) 현재봉의 초반에 순매수거래량이 1000을 초과했더라도 50초 후에는 순매수거래량이 다시 마이너스로 돌아설 수도 있는데, 순매수거래량이 다시 마이너스로 돌아서면 기존에 발생했던 매수신호가 취소되고 봉 완성 시점에는 매수주문이 나가지 않게 되나요?
(C) 현재 진행중인 봉의 완성 여부와 관계 없이 순매수거래량이(=Upvol-DownVol) 1000을 초과한 시점에 즉시 매수주문이 나가도록 하려면 어떻게 해야 하나요?
(질문2 관련 코드 예시)
if Upvol-DownVol > 1000 Then Buy();
감사합니다.
wxc7456
2022-09-26 12:00:32
Re : Re : 1초봉 설정 방법 문의
아래에 주신 답변에서, 1초봉에 시스템을 적용해야 초단위로 신호를 발생 시킬 수 있다고 하셨는데 아주 좋은 해결책인 것 같습니다. 그런데 차트를 어떻게 1초봉으로 설정할 수 있나요? 저의 차트 상단에는 일봉/주봉/월봉/분봉/틱봉 설정 메뉴는 있지만 초봉 설정 메뉴는 보이지 않아서요. 틱봉은 거래가 있을때만 봉이 발생하고 거래가 없을 때는 봉이 만들어지지 않으므로 틱봉으로 시간을 추정할 수는 없을 것 같구요...
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Buy(), Sell() 펑션의 신호타입 문의
> 안녕하세요
예스스탁입니다.
1
수식안에서는 실제 주문가격을 지정하는 옵션이 없습니다.
신호가 발생하면 시스템 트레이딩 설정창의 매매탭에서 설정한 매매가격으로 주문이 집행됩니다.
시장가와 같은 실제 주문옵션은 해당 매매가격으로 설정하셔야 합니다.
시스템 수식에서 Buy,Sell,Exitlong,ExitShort는 신호를 발생을 담당하는 함수이고
신호타입(Onclose, Atmarket, Atstop, Atlimit)은 신호발생 조건을 지정하는 옵션입니다.
수식은 기본적으로 봉완성시(다음봉시가수신)를 기본체계로 합니다.
Onclose는 봉완성시 발생하고 완성봉종가에 신호가 표시되고 완성봉종가를 리포트의 진입/청산가격으로 사용하는 타입입니다.
atmarket은 봉완성시 발생하고 다음봉시가에 신호가 표시되고 다음봉시가를 리포트의 진입/청산가격으로 사용하는 타입입니다.
Onclose와 atmarket은 봉완성시 신호가 발생하는 것은 같고 리포트상 진입/청산가격만 완성봉종가를 사용하느냐
다음봉시가를 사용하느냐의 차이만 있습니다.
Atstop과 atlimit은 봉완성시 특정값을 셋팅해서
다음봉 미완성시에 해당값 이상의 시세나 이하의 시세가 발생하면 즉시 신호가 발생하는 타입니다.
리포트의 가격도 지정한 값 이상이나 이하의 조건을 만족하는 첫가격이 됩니다.
시스템은 사용자분이 지정한 조건일때
신호를 발생하고 주문만 집행됩니다. 주문이후 체결까지는 시스템에서 인지하거나 개입이 가능하지 않습니다.
체결은 거래소에서 되는 부분이므로 지정한 시간의 체결은 수식으로 구현이 되지 않습니다.
지정한 시간에 신호가 발생하고 주문을 집행하고자 하시면
올리신 수식을 사용하시면 되고 수식은 봉의 시가시간이나 종가시간만 체크할 수 있으므로
1초봉에 시스템을 적용하셔야 합니다.
분봉이하에서는 초단위까지 체크해서 신호발생 할 수는 없습니다.
2
수식은 봉완성시(다음봉시가수신)이 기본체계입니다.
if문은 봉완성시로만 체크가 가능하므로 봉미완성시에 조건을 체크해서 신호가 발생하지 못합니다.
랭귀지에서 봉미완성시 조건체크해 신호가 즉시 발생하는 신호타입은 위 1번에서 설명드린 부분과 같이
atstop,atlimit뿐입니다.
하지만 해당 타입은 봉완성시 지정한 값과 미완성시인 현재봉의 현재가와 비교해서 신호가 발생합니다.
비가격데이타로 즉시 신호발생은 가능하지 않습니다.
올리신 내용으로는 즉시는 불가능합니다.
즐거운 하루되세요
> wxc7456 님이 쓴 글입니다.
> 제목 : Buy(), Sell() 펑션의 신호타입 문의
> 안녕하세요?
예스트레이더 초보자들에게 항상 친절하고 자세한 답변을 해주시는 Q&A 담당자분께 감사의 말씀을 드립니다. 금일 저의 문의 사항은 아래와 같습니다.
[질문1]
Buy(), Sell(), ExitLong(), ExitShort() 등의 함수들은 신호타입(Onclose, Atmarket, Atstop, Atlimit)을 인수로 갖는 것으로 압니다.
특정 시간에 "시장가"로 주문을 내서 주문이 즉시 체결되었으면 하는데...
아래 코드와 같이
-> 10시45분15초에 매수 체결
-> 10시45분35초에 매수청산 체결
을 하려면
Buy()와 ExitLong()의 신호타입을 어떤 것으로 설정해야 하나요?
차트는 1분봉을 사용하고 있고 현재봉의 완성 여부와 관계 없이
미리 정한 시간에 주문이 실행되었으면 합니다.
(질문1 관련 코드 예시)
if stime == 104515 Then Buy();
if stime == 104535 Then ExitLong("bx");
[질문2]
위 첨부 그림은 NH트레이더 시스템트레이딩 교육자료를 켑쳐한 것입니다. "자동주문으로 설정할 경우 매매신호가 발생한 다음 봉이 만들어지는 순간 주문이 나가게 됩니다"라고 적혀있더군요.
(A) 그렇다면 아래 코드에서 현재 진행중인 봉이 시작된지 10초만에 순매수거래량(=Upvol-DownVol)이 1000을 초과했다면, 순매수거래량이 1000을 초과한 시점에 즉시 매수주문이 나가는 것이 아니라, 50초 후 (1분봉 가정) 현재봉이 완성되는 시점에 매수주문이 나가는 건가요?
(B) 현재봉의 초반에 순매수거래량이 1000을 초과했더라도 50초 후에는 순매수거래량이 다시 마이너스로 돌아설 수도 있는데, 순매수거래량이 다시 마이너스로 돌아서면 기존에 발생했던 매수신호가 취소되고 봉 완성 시점에는 매수주문이 나가지 않게 되나요?
(C) 현재 진행중인 봉의 완성 여부와 관계 없이 순매수거래량이(=Upvol-DownVol) 1000을 초과한 시점에 즉시 매수주문이 나가도록 하려면 어떻게 해야 하나요?
(질문2 관련 코드 예시)
if Upvol-DownVol > 1000 Then Buy();
감사합니다.