커뮤니티
예스스팟 Q&A
답변완료
모의 거래 옵션 잔고리스트 개수 문의
안녕하십니까? 수고하십니다. 문의드리고자 하는 바는 아래와 같습니다.
옵션 모의거래 테스트를 하면서 GetTheNumberofBalances를 이용하여 잔고리스트의 개수를
불러오고자 했습니다. 하지만 분명 계좌 잔고에는 옵션 종목이 4개가 있는데
위 함수를 이용하여 잔고리스트 수를 불러오면 10개로 나옵니다.
잔고에 있는 옵션을 청산하고 1개만 남겨도 잔고리스트의 수는 10개로 나옵니다.
해당 부분내용은 아래와 같습니다.
참고로 모의계좌번호 일치 확인했습니다.
그리고 추가적인 문의사항은 지금은 6월인데 아래 date결과가 5월로 나옵니다.
분명 컴퓨터에 뜨는 날은 오늘로 뜨는데 말이죠 이부분도 함께 문의드립니다.
감사합니다.
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
var Month = d.getMonth();
var SCallCode, BCallCode;
var SPutCode, BPutCode;
var IDPB, IDPS, IDCS, IDCB;
var NumPB, NumPS, NumCS, NumCB;
var entryBPutCode, entrySPutCode, entrySCallCode, entryBCallCode;
var amount = 20;//매매수량
function Main_OnStart()
{
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--시작--");
var num = A.GetTheNumberOfBalances();
if (HHMMSS >= 90100 && HHMMSS <= 155000 && PstEntry == 0)
{
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"num",num);
for (var i = 0; i < num; i++)
{
A.SetBalance(i);
if (A.Balance.position == 1)
{
if (O.GetDelta(A.Balance.code) < 0)
{
SCallCode = A.Balance.code;
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"SCallCode",A.Balance.code,O.GetDelta(A.Balance.code));
}
else
{
SPutCode = A.Balance.code;
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"SPutCode",A.Balance.code,O.GetDelta(A.Balance.code));
}
}
else
{
if (O.GetDelta(A.Balance.code) < 0)
{
BPutCode = A.Balance.code;
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"BPutCode",A.Balance.code,O.GetDelta(A.Balance.code));
}
else
{
BCallCode = A.Balance.code;
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"BCallCode",A.Balance.code,O.GetDelta(A.Balance.code));
}
}
}
Main.SetTimer(1, 5000);
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--잔고 내 옵션보유 확인 후 5초 타이머셋--");
}
if (HHMMSS >= 90100 && HHMMSS <= 153500 && PstEntry == 1)
{
Main.SetTimer(2, 5000);
Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--포지션 진입 준비--");
Main.SetTimer(3, 30000);
}
}
2019-06-17
3335
글번호 224902
답변완료
선물 포지션 전환 방법 문의드립니다.
안녕하십니까.
선물 포지션을 전환할 때 YesSpot으로는 어떻게 해야 하는지요?
예를 들어 선물 1계약을 매수로 보유하다가 매도 포지션으로 바꾸고 싶으면
무조건 2계약을 매도해야 하는 것인가요?
2019-06-14
3380
글번호 224899
답변완료
Orderbuy에 대해 설명 부탁드립니다.
Account1.OrderBuy(“005930”,10,0,1)
예스스탁을 설명한 파일에 위와 같은 예시가 있었습니다.
종목코드가 005930인 삼성전자 10주를 시장가로 사라는 명령어로 알고 있습니다.
1) 현재가로 살 때 3번째칸(dPrice)을 0으로 지정해도 현재가로 주문이 나가는지입니다.
Account1.OrderBuy(“005930”,10,0,0)
위와 같이 주문하면 삼성전자 10주를 0원에 지정가 매수로 나가는지
아니면 매수 당시 현재가로 지정가 매수가 나가는지 궁급합니다.
2) 제가 하고 싶은것은 최우선지정가로 주문하는 것인데,
Account1.OrderBuy(“005930”,10,0,10)
dPrice칸은 0으로 둔채 위와 같이 입력하면
삼성전자 10주를 최우선지정가로 사라는 명령이 나가는지 궁금합니다.
모의매매에는 다 0원으로 주문이 나가는 것 같아서 질문드립니다.
2019-06-12
3216
글번호 224898
답변완료
수식 작성 부탁드립니다.
안녕하세요
많은 도움에 항상 감사드립니다.
아래 예시의 스팟 수식을 부탁드립니다.
1. 아래의 스팟 샘플은 매수 포지션 일때, 익절과 손절 설정입니다.
아래의 조건문에 추가하거나 아니면 새롭게 트레일링 조건을 하나 더 추가하고 싶습니다.
( 예시 : 수익 최고치가 진입가의 + 25틱 이되면 트레일링 발동하여 (최고치에서) -5틱 아래로 내려오면 전량 청산.
예로는 +25틱에서 -5틱 이상 떨어지지 않으면 계속 증가하여 최종 +50틱에서 전량 청산한다.)
// ----------------------------------------------------------
//잔고가 매수포지션이고 매수잔고 수량이 있을떄
if (Account1.Balance.position == 2 )
{
//현재가가 잔고평단가 대비 지정틱수(+50틱) 이상이면 익절청산 (시장가)
if (MarketData1.current >= (Account1.Balance.avgUnitCost + MarketData1.GetTickSize()*50) )
{
Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0, 1);
}
}
// ----------------------------------------------------------
2. 스팟에서 매매시간 설정이 가능하다면, 스팟에서 아래와 같이 설정하고 싶습니다.
(1) 거래시간 #1 : 당일 오전 10시 ~ 저녁 9시
#2 : 당일 저녁 11시 ~ 저녁 12시
#3 : 다음날 오전 00시 ~ 오전 4시
( 오전 10시~ 다음날 오전4시 (당일 저녁 9시~11시 제외) )
3. 손절 익절 초기 설정은 손절(25틱)/익절(25틱) 입니다.
(1) 진입후에 30분이 지나도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 30분이 지나도 청산이 되지 않으면 현재가에 청산한다.
(2) 진입후에 20봉이 경과해도 청산이 되지 않는 경우, 손절/익절을 각 각 10틱으로 변경하고, 그 이후에 또 20봉이 경과해도 청산이 되지 않으면 현재가에 청산한다.
감사합니다.
2019-06-19
3351
글번호 224896
답변완료
수식작성 문의드립니다.
수고많으세요. 궁금한게 있어 질문드립니다.
먼저 수식을 적용하고, 매매를 해보고,
매매를 한 상태에서 수식을 적용해보았습니다.
청산이 되지 않는 경우가 있는데 왜 그런지 궁금합니다.
(수식)
var tEnable = true, BID,SID,Bnum,Snum;
function Main_OnStart()
{
Main.MessageLog("청산식 시작");
}
function Main_OnU*dateMarket(sItemCode, lU*dateID)
{
if (sItemCode == M1.code && lU*dateID == 20001 && tEnable == true) {
A1.SetBalanceItem(M1.code,0);
if (A1.Balance.profit > tProfit || A1.Balance.profit < tLoss) {
if (A1.Balance.position == 1 && tEnable == true) {
BID = A1.OrderBuy(A1.Balance.code, A1.Balance.count, 0, 1);
tEnable = false;
}
else if (A1.Balance.postion == 2 && tEnable == true) {
SID = A1.OrderSell(A1.Balance.code, A1.Balance.count, 0, 1);
tEnable = false;
}
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID)
Bnum = OrderResponse.orderNum;
else if(OrderResponse.orderID == SID)
Snum = OrderResponse.orderNum;
}
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Bnum) {
Main.MessageList("매도청산");
tEnable = true;
}
else if (NotifyFill.orderNum == Snum) {
Main.MessageList("매수청산");
tEnable = true;
}
}
2019-06-07
3365
글번호 224895
답변완료
수식 작성 부탁드립니다.
매번 도움 감사드립니다.
하기와 같은 수식 작성 부탁드립니다.
(종목검색 후 매매 수식은 게시판에도 많은데,
검색 이후 매수/매도 시, 미체결에 대한 정정 기능은 구현을 못하겠습니다ㅜㅜ)
1) 종목검색 하여 차트생성
2) 생성된 차트에 시스템 적용
3) 시스템 신호 발생시 매수/매도
4) 미체결 시 주문 정정 (매수미체결시: 매도1호가로 정정, 매도미체결: 매수1호가로 정정)
2019-06-06
3374
글번호 224894
몬스터 님에 의해서 삭제되었습니다.
2019-06-05
0
글번호 224893
어나니머스 님에 의해서 삭제되었습니다.
2019-05-29
3
글번호 224888
답변완료
예스스팟 실행 방법 문의
항상 도움을 주셔서 감사합니다.
1. 첨부처럼 예스스팟의 전략을 세우는 중인데요, 결과값을 최근 메세지로 확인한 후 계속 수정을 하고 또 확인하고, 수정하고, 확인하고를 반복하고 있습니다.
전략이 한번 실행되었을 때 어떻게 다시 실행할 수 있는지 방법을 몰라. 'X' 를 눌러 전략을 삭제한 후 다시 등록해서 테스트 중인데 바로 다시 실행하는 방법이 있는지요?
(전략 예시: 매일 급등하는 종목 3개를 자동 종목검색하여 자동 매매)
2. 이번 달 하이투자증권에서 예스툴박스 교육 받을 때 고객들이 하이투자증권에 PC를 놓고 몇 년씩 자동 매매를 하고 있다고 했는데요, 매일 예스스팟의 전략이 자동 실행되려면 어떻게 해야 하는지요? (설마 매일 하이투자증권 직원이 전략을 'X' 클릭하고 전략 새로 등록하는 방법은 아니겠죠?)
3. 예스트레이더는 일정 시간이 지나면 자동으로 세션을 종료시키지는 않나요?
2019-05-27
3587
글번호 224883
답변완료
옵션
몇일 전에 매수한 풋옵션을 청산시로 발생시 매도하고자 하는 경우 다음 두 가지 질문 드립니다..
1. 옵션 종목을 특정화
제가 보유중인 옵션종목을 특정화 할 수 있는 방안이 있나요.(예를 들면 당월물 250풋옵션, 270 콜옵션)
2. 청산신호 발생시 잔고에 있는 옵션을 매도하는 청산수식(몇일 전 매수한 옵션종목 저장하지 않은상황 전제)
감사합니다.
2019-05-26
3553
글번호 224882