커뮤니티

예스스팟 Q&A

답변완료

수식 부탁합니다

수정해 주신 식은 매도는 되나 청산(매수)이 전혀되지 않습니다. 다음식은 수정해 주신 2253 입니다. var EntryTime = 103000; var ExitTime = 144500; var MaxEnryVol = 10; var Entry,Exit,CurrentVol; var CSV,PSV,CSX,PSX; var CallOrderCode,PutOrderCode; function Main_OnStart() { var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageList(HHMMSS,"Start"); Entry = true; if (HHMMSS >= EntryTime) { Entry = false; } Exit = true; if (HHMMSS >= ExitTime) { Exit = false; } if (Entry == true || Exit == true) { Main.MessageList(HHMMSS,"1번 타이머동작"); Main.SetTimer(1, 5000); } } function Main_OnTimer(nEventID) { var d = new Date(); var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1) { if (Entry == true && HHMMSS >= EntryTime) { //양매도종목 CallOrderCode = Option.GetATMCallRecent(0); PutOrderCode = Option.GetATMPutRecent(0); Main.SetUserValue("SellDate",YYYYMMDD); Main.SetUserValue("CallOrderCode",CallOrderCode); Main.SetUserValue("PutOrderCode",PutOrderCode); Entry = false; if (ExitTime > EntryTime) Main.KillTimer(1); Account1.OrderSell(CallOrderCode, 1, Option.GetBid(CallOrderCode, 2),0); Account1.OrderSell(PutOrderCode, 1, Option.GetBid(PutOrderCode, 2), 0); CurrentVol = 1; Main.SetTimer(2, 5000); } if (Exit == true && HHMMSS >= ExitTime) { Exit = false; if (ExitTime > EntryTime) Main.KillTimer(1); var SellDate = Main.GetUserValue("SellDate") if (YYYYMMDD == SellDate) { CallOrderCode = Main.GetUserValue("CallOrderCode"); PutOrderCode = Main.GetUserValue("PutOrderCode"); if (CallOrderCode != "") { Account1.SetBalance(CallOrderCode, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) CSV = Account1.Balance.count; else CSV = 0; if (PSV > 0) { Main.SetTimer(3, 5000); CSX = 1; Account1.OrderBuy(CallOrderCode, 1, Option.GetAsk(CallOrderCode, 2),0); } } if (PutOrderCode != "") { Account1.SetBalance(PutOrderCode, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) PSV = Account1.Balance.count; else PSV = 0; if (PSV > 0) { Main.SetTimer(4, 5000); PSX = 1; Account1.OrderBuy(PutOrderCode, 1, Option.GetAsk(PutOrderCode, 2),0); } } } } } if (nEventID == 2) { CurrentVol = CurrentVol+1; if (CurrentVol <= MaxEnryVol) { Account1.OrderSell(CallOrderCode, 1, Option.GetBid(CallOrderCode, 2),0); Account1.OrderSell(PutCode, 1, Option.GetBid(PutCode, 2), 0); } else { Main.KillTimer(2); } } if (nEventID == 3) { CSX = CSX+1; if (CSX <= CSV) { Account1.OrderBuy(CallOrderCode, 1, Option.GetAsk(CallOrderCode, 2),0); } else { Main.KillTimer(3); } } if (nEventID == 4) { PSX = PSX+1; if (PSX <= PSV) { Account1.OrderBuy(PutOrderCode, 1, Option.GetAsk(PutOrderCode, 2),0); } else { Main.KillTimer(4); } } }
프로필 이미지
팡팡
2021-07-07
2612
글번호 225513
답변완료

예스트레이더 종목검색을 이용한 예스스팟 자동매매 예제 요청

YesLanguage편집기로 종목검색을 만들고 검색된 종목을 실시간으로 예스스팟을 이용해서 자동매매하는 예제를 찾고 있습니다. 본 게시판 게시물이라든지 예제 소스를 올려주시면 감사하겠습니다.
프로필 이미지
고유키
2021-07-06
2783
글번호 225512
답변완료

해외선물 연결선물 당월물 만기전 신규주문 불가시 차월물 거래 방법

연결선물로 차트를 만들고 당월물 주문가능일 이후에 차월물로 주문을 내려고 합니다. 주문가능 종목코드 GetOrderCode를 호출하면 어떤 월물 종목코드가 반환되는지요 ? 해외선물 거래중이고 거래 증권사는 이베스트투자증권입니다. 예스트레이더로 신호를 만들고 예스스팟에서 신호를 받아서 처리하는 방법도 고민중입니다.
프로필 이미지
악한천사
2021-06-30
2532
글번호 225511
답변완료

지표값을 Tick Size 단위로 변환시 이상현상 문의합니다.

문의에 항상 빠른 답변에 감사드립니다. 제가 하고자 하는 것은 지표값을 구하여 그 지표값을 주문 가격에 이용하고자 틱 사이즈 단위로 변환하여 수치을 구하고자 합니다. GetTickSize 함수로 마이크로 골드 종목을 구하면 0.1000000... 소수점 이하 많은 양이 나오네요. 그래서 0.1로 조정을 했습니다. 그런데 TickSize 값은 0.1로 잘 나오는데, BBC1, BBU1, BBD1 등 값은 0.1단위로 나올때도 있고 수수점 이하 많은 자리가 나올때도 있는 등 들쑥날쑥이네요. 제가 무엇을 잘못 했나요?! 아래 식은 제가 일부분을 발췌하였습니다. var TickSize = F1.GetTickSize();//: 호가단위 : NH 실제:소수점 이하 10이상 존재 TickSize = Math.floor(TickSize*1000000)/1000000; // 종목 적용시 소수점 이하 6자리까지 적용가능 var BBC1 = C1.GetIndicatorData("Bollinger Bands", 1,0); //BB지표 var BBU1 = C1.GetIndicatorData("Bollinger Bands", 2,0); var BBD1 = C1.GetIndicatorData("Bollinger Bands", 3,0); Main.MessageList("상단 : " + BBU1 + ", 하단 : "+ BBD1 + ", 중심선 : "+ BBC1 ); //TickSize로 Price 변경 Math.floor(A / TickSize)*TickSize Main.MessageList("틱 사이즈 : " + TickSize); BBC1 = Math.floor(BBC1 / TickSize)*TickSize; //TickSize 단위로 내림 BBU1 = Math.floor(BBU1 / TickSize)*TickSize; BBD1 = Math.floor(BBD1 / TickSize)*TickSize; Main.MessageList("1분봉 틱 조정 상단 : " + BBU1 + ", 하단 : "+ BBD1 + ", 중심선 : "+ BBC1 ); 갑사합니다.
프로필 이미지
김상
2021-06-30
2557
글번호 225509
답변완료

문의 드립니다

1 매수진입명"B" 매수청산명"BX" 매도진입명"S" 매도청산명"SX" SetStopProfitTarget 매수매도+진입청산+익절 시스템 해외선물에서 스팟으로 아래와같이 주문하고싶습니다 <매수진입 신호발생> 매도 5호가로 매수주문 신호가격 10호가 위로 매도주문(미리익절주문넣기) <매수진입 정정> 1초뒤 미체결시 매도 5호가로 1차정정 매수주문 <매수익절SetStopProfitTarget 신호발생> (주문은 매수진입신호발생시 미리 넣어놨음) <매수익절SetStopProfitTarget 정정> 1초뒤 미체결시 매수 5호가로 1차정정 매도주문 <매수청산 신호발생> 매수 5호가로 매도주문 미리넣은 익절매도주문 취소 <매수청산 정정> 1초뒤 미체결시 매수 5호가로 1차정정 매도주문 <매도진입 신호발생> 매수 5호가로 매도주문 신호가격 10호가 아래로 매수주문(미리익절주문넣기) <매도진입 정정> 1초뒤 미체결시 매수 5호가로 1차정정 매도주문 <매도익절SetStopProfitTarget 신호발생> (주문은 매도진입신호발생시 미리 넣어놨음) <매도익절SetStopProfitTarget 정정> 1초뒤 미체결시 매도 5호가로 1차정정 매수주문 <매도청산 신호발생> 매도 5호가로 매수주문 미리넣은 매수주문 취소 <매도청산 정정> 1초뒤 미체결시 매도 5호가로 1차정정 매수주문 2 SetStopProfitTarget 대신 진입신호와 동시에 익절을 미리 걸어두고싶은데 다른 아이디어가 있을까요?
프로필 이미지
파인애플
2021-06-30
2486
글번호 225503
답변완료

문의 드립니다.

Account1.GetBalanceETCinfo(100) 이용해서 순자산총액을 조회하는데 계속 같은 값이 들어오는것 같아요 이 값은 얼마를 주기로 다른값으로 변경되나요?
프로필 이미지
이스데일
2021-06-16
2669
글번호 225502
답변완료

수식을만들고싶습니다.

자동매매를 하고 싶은데 아래의 조건으로 가능할지요? 1. 관심종목을 '120일 신고가' 종목으로만 구성(관심종목 추가, 제외는 수동으로 진행 예정) 2. 관심종목 중 120일 신고가 가격기준 10% 하락시 매수 주문 실행(시장가) 3. 매수 가격기준 3% 상승시 매도 주문 실행(시장가) 참고로 코딩은 한번도 해보지 않은 사람입니다. 가능하시다면 코딩 부탁 드립니다.
프로필 이미지
미소한방
2021-06-16
2690
글번호 225501

파인애플 님에 의해서 삭제되었습니다.

프로필 이미지
파인애플
2021-06-11
20
글번호 225499

손추 님에 의해서 삭제되었습니다.

프로필 이미지
손추
2021-06-12
7
글번호 225498

마당새123 님에 의해서 삭제되었습니다.

프로필 이미지
마당새123
2021-06-11
0
글번호 225497