커뮤니티

예스스팟 Q&A

답변완료

예스스팟 편집기 글자크기 변경여부?

안녕하세요. 예스랭귀지와 예스스팟으로 전략을 작성중인데요. 예스랭귀지 편집기는 나름 일반 편집기처럼 글자크기도 변경하고 가독성있는 글꼴로 바꾸는것이 가능한데요. 왜 예스스팟 편집기는 없나요?(많은 편집기를 봤지만 처음 봄) 요즘은 노트북이나 PC의 모니터가 고해상도가 대부분인데 눈이 너무 아파요. 안그래도 노안이 와서 신문도 잘 안보여서 서러워 죽겠는데!!!! 그렇다고 해상도를 낮추면 글자가 깨져서 흐릿하고 이놈의 편집기 까지 스트레스를 주네요. 예스랭귀지 편집기랑 기능이 같은거로 해 주세요. 최소한 글자크기랑 글꼴은 변경이 가능해야 편집기라고 얘기할 수 있지 않을까요. 예스스팟 편집기 보면 눈물이 납니다..ㅠㅠ
프로필 이미지
마몬
2016-01-21
2023
글번호 223783
답변완료

문의드립니다.

안녕하세요~ YesSpot 메뉴얼중에서 예제3.시간정정주문 에서 확장된 질문드립니다. 1. 예를 들어 매수 1호가에 100계약을 매수주문합니다. 그리고 OnTimer를 1분으로 지정한 후, 1분후에도 미체결 상태라면 매도 2호가로 매수정정주문이 발생합니다. 이런 상태에서 100계약 중 50계약이 남고 50계약이 미체결 상태로 1분이 지나면, 남은 계약에서 기존에 걸어두었던 OnTimer 때문에 한번 더 매도 2호가로 다시 정정주문이 나갈 때.... 매도 2호가의 가격이 이전 매도 2호가의 가격과 동일 할때, 모의투자에서는 가격이 같기 때문에 정정주문에서 오류가 납니다. (오류후에도 기존에 매도2호가로 체결은 계속됨) 즉, 정정주문시에는 동일한 가격으로 정정주문이 나가지는 않는건가요??? 이 현상이 모의투자에서만 그런 것인지, 실제매매에서 그런지 확인하고 싶습니다. 2. 잔고내역을 확인할 때... var temp = Account1.GetTheNumberOfBalances(); if(temp > 0) { for (var i = 0; i < temp; i++) { Account1.SetBalanceIndex(i); Main.MessageList("잔고종목코드[", Account1.Balance.code, "] 잔고수량[",Account1.Balance.count, "]"); } } 이런식으로 확인할 때... SetBalanceIndex() 와 SetBalance()의 차이를 알고 싶습니다. 객체 정보의 데이터에서는 똑같은 설명으로 나와있어서...스크린 샷으로 올리고,,, 설명 부탁드리겠습니다^^
프로필 이미지
트레이딩시스템
2016-01-20
2049
글번호 223782
답변완료

선물 당일종가 청산 문의.

1) if (nEventID == 1 && HHMMDD >= 150600) 이 수식을 --> if (nEventID == 1 && HHMMDD >= 150800 && HHMMDD <= 152000) 이렇게 변경해도 동시호가 주문이 작동 하겠죠? 2) 예스스팟 상에서 2pt 수익시 청산 하고 싶습니다(%만 있더라구요, 손절도 넣어주심 좋구요). 3) 당일 매매 로직에서 스팟상 수식으로 포지션 청산시 실행 챠트상 청산신호는 무시 라는 개념입니다.( 계좌 카운팅 해서 포지션 없으면 청산 신호 무시 라는 걸로 되지 싶은데요...)
프로필 이미지
휴식
2016-01-23
1910
글번호 223777
답변완료

이벤트 발생 후 실행순서 문의드립니다.

안녕하세요. 이벤트 발생 후 실행순서 문의 드립니다. 간단한 예를 들어서 질문 드리겠습니다. 0.5초 타이머로 발생하는 Event A와 B가 있다고 가정하고 SetUserValue와 GetUserValue 로 값을 저장하는 변수 K가 있습니다. A, B 두 타이머를 동시에 시작한다고 했을때 A와 B 이벤트는 거의 동시에 발생하면서 순서가 다른 경우도 생길텐데요 여기서 K라는 변수가 0 이면 1로 바꾸고, 1이면 0으로 바꾸는 로직이 A와 B 로직에 들어있다면, 0.5초 마다 초기값 0 이었던 변수 K가 1로 갔다가 다시 0으로 바뀌는걸 보장 할 수 있을까요? 그러니까, 거의 동시에 발생한 이벤트의 로직이 순차실행 보장이 되는지 궁금합니다. 차트 봉 추가 이벤트나 타이머에 의해서 거의 동시에 발생하는 이벤트 들이 있을텐데요 이벤트 A,B,C 들이 거의 동시에 발생 했을 때 내부적으로 큐와 비슷하게 가지고 있다가 A이벤트의 로직이 처음부터 끝까지 실행되고 난 후에 B로직이 처음부터 끝까지 실행되고 다음 C의 로직이 처음부터 끝까지 되는건지 아니면 A로직이 실행되고 있는 중간에 B로직이 실행되는 구조인지 궁금합니다. 이벤트에서 중복실행을 방지하기 위해 그러니까 A,B,C 이벤트에서 한 곳에서만 주문이 발생하게 하려고 하는데요 (A메서 주문이 발생하면 B,C 에서는 주문안함) 이 방법으로 SetUserValue와 GetUserValue 를 이용해서 변수 하나에 값을 저장하게 하면 가능할지가 제가 최종적으로 드리고 싶은 질문이었는데 의도가 잘 전달되게 최대한 풀어서 질문 드립니다. 답변 부탁드립니다. 감사합니다.
프로필 이미지
데칸
2016-01-17
1702
글번호 223776
답변완료

문의드립니다.

안녕하세요. 스팟 시작할 때 파워종목검색 활용하는 경우에도 확장차트 객체 추가를 해야 하는지요? 확장차트 객체 추가를 해야 한다면 종목검색을 통해 몇개의 종목이 검색될지 모르는 상황인데 확장차트 추가를 몇개나 해야할런지요? 그리고 어떤 종목이 검색될 지 모르는 데 종목명을 어떻게 지정해야 할지요? 현재 나타나는 문제를 구체적으로 설명드리자면... 스크립트 객체에 ChartEx를 여러개 추가한 후, 개별 확장 차트에서 종목명 지정을 하지 않으면 스팟 전략 저장시 YesSpotMaker 창이 뜨고 "연결된 차트가 없습니다"라고 출력됩니다. 또한 예스스팟 전략을 적용 시키면 종목검색된 수량만큼의 Chart창이 뜨고 "undefined을(를) 찾을 수 없습니다."라는 메시지가 출력됩니다. 하기는 제가 적용했던 예스스팟 코드입니다. 무엇이 잘못되었는지 고견 부탁드리겠습니다. ----------------------------------------------------------------------------------- //종목검색 완료(aItemList : 종목리스트), (nCount : 종목수) function Main_OnRcvItemList(aItemList, nCount) { // 확장챠트의 생성과 적용될 시스템의 세부 설정 var TradeSet = new SystemTradeInfo( TRADE_FIXCAPITAL, 1,1000000,1, 0,0,CALCMETHOD_PERCENT, 0,0,CALCMETHOD_PERCENT, PYRAMIDING_NONE, 100000,2 ); Main.MessageList("확장챠트 생성 & 시스템 세부설정"); //확장 챠트는 최대 100개까지만 가능 for (var i = 0; i < Math.min(nCount,100); i++) { //생성할 차트 셋팅 var ChartSet = new ReqChartItem(aItemList[i], 10, CHART_PERIOD_SECOND, 5000,CHART_REQCOUNT_BAR, true, false); //차트에 적용할 시스템명 및 설정 var SystemSet = new SystemInfo(YesSpot1,YL_TYPE_NORMAL,null,TradeSet,null); Main.ReqChartEx(ChartSet,SystemSet); Main.MessageList("확장챠트 생성 : "+(i+1)); } }
프로필 이미지
2016-01-19
1781
글번호 223774
답변완료

수식문의드림니다

수식문의 드림니다 아래의 스팟수식에 동시호가시간(15시06분정도)에 잔고에 종목을 모두청산하는 당일계좌정리 수팟수식을 첨가 부탁드림니다 ///////////////////////////////////////////////////////////////////////////// function Main_OnStart() { //[ 3번시스템 : 3S ] Main.MessageList("스팟_시작"); } function Chart1_OnRiseSignal(Signal) { //투입수량 변수지정 // ORDER_VOL = 1; // 신호발생수량 X N 배수로 주문실행 //매수신호 발생 if (Signal.signalKind == 1) { Main.MessageList("Buy_Signal"); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), ORDER_VOL * Signal.count, MarketData1.Ask(5), 0); } //매수청산신호 발생 if (Signal.signalKind == 2) { Main.MessageList("ExitLong_Signal"); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), ORDER_VOL * Signal.count, MarketData1.Bid(5), 0); } //매도신호 발생 if (Signal.signalKind == 3) { Main.MessageList("Sell_Signal"); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), ORDER_VOL * Signal.count, MarketData1.Bid(5), 0); } //매도청산신호 발생 if (Signal.signalKind == 4) { Main.MessageList("ExitShort_Signal"); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), ORDER_VOL * Signal.count, MarketData1.Ask(5), 0); } }
프로필 이미지
mao
2016-01-14
1665
글번호 223773
답변완료

사용자정의 모듈과 전역변수 사용법 문의 드립니다

스팟 프로그램이 길어져 관리상 가독성 좋게 사용자함수를 사용해서 정리하려 합니다. 예를 들어 var 전역변수1,전역변수2,전역변수3; function Main_OnStart() 전역변수1=0; 전역변수2=0; 전역변수3=0; function Main_On*pdateMarket(sItemCode, l*pdateID) if condition1 then 사용자함수1(); else if condition2 then 사용자함수2(); else if condition3 then 사용자함수3(); function 사용자함수1() if 전역변수1 == condition4 then . . . 이런식으로 코딩이 가능할까요?
프로필 이미지
고가행진
2016-01-12
1780
글번호 223772
답변완료

무슨 문제인가요?

아래수식을 모의거래에 적용을 해보았는데, "시작" 메세지 이후 아무런 시스템 작동이 안되네요!! 어디에 문제점이 있나요? 참조 1. 차트객체명 : C1 2. 종목객체명 : SP -------> E-mini S&P 500 ( 2016.3) 3. 계좌객체명 : A1 /* 스크립트시작------------------------------ */ var Position; var OrderCode; var BID; var SID; var SNum; var BNum; var BuyFill; var SellFill; function Main_OnStart() { Main.MessageLog("시작"); Position = 0; OrderCode = Main.GetOrderCode(SP.Code); } function C1_OnRiseSingal(Singal) { Main.MessageLog("신호완성/"+Singal.SinalKind); if (Sinal.SinalKind == 1) { Position = 1; BID = A1.OrderBuy(SP.Code, 1, SP.Ask(2),0); Main.MessageLog("매수진입"); BuyFill = 0; } if (Position == 1 && Sinal.SingKind == 2) { if (BuyFill == 1) { A1.OrderSell(SP.Code, 1, SP.Bid(2),0); Main.MessageLog("매수청산실행"); } if (BuyFill == 0) { A1.OrderCancel(Bnum); Main.MessageLog("매수청산취소"); } } if (Sinal.sinalKind == 3) { Position = -1; SellFill = 0; SID = A1.OrderSell(SP.Code, 1, SP.Bid(2), 0); Main.MessageLog("매도진입"); } if (Position == -1 && Singal.singalKind == 4) { if (SellFill == 1) { A1.OrderBuy(SP.Code, 1, Ask(2), 0); Main.MessageLog("매도청산"); } if (SellFill == 0) { A1.OrderCancel(SNum); Main.MessageLog("매도청산취소"); } } } function Main_OnOrderResponse(OrderResponse) { if (Position == 1 && OrderResponse.orderID == BID) { BNum = OrderResponse.orderNum; } if (Position == -1 && OrderResponse.orderID == SID) { SNum = OrderResponse.ordNum; } } function Main_OnNotifyFill(NotifyFill) { if (Position == 1 && NotifyFill.orderNum == BNum) { BuyFill = 1; } if (Position == -1 && NotifyFill.orderNum == SNum) { SellFill = 1; } } /* 스크립트 끝-----------------------------*/
프로필 이미지
너무조아
2016-01-12
1790
글번호 223771
답변완료

수식 문의합니다.

당일 아침 9:05분에, 1.0에 가장 가까운 행사가의 콜옵션을 10 계약, 아침 9:05분에 자동매수 하는 수식 부탁합니다. 반대 수식도 부탁드립니다. (풋옵션 9:05분 1.0 근접, 9:05분 10계약 매수) (또한, 상기 콜/풋 식들을 시초가 1.0 근접, 시초가 매수도 함께 부탁합니다.) 그리고, 위와 같이 매수한 옵션을 그 다음날 아침 9:05분에 절반 매도, 또 그 다음날 아침 9:05분에 나머지 절반 매도하고 싶은데, 청산수식도 같이 부탁합니다. (혹시, 위 매수/청산 수식을 한가지로 묶을수 있나요? 가령 수 아침에 매수하고, 목아침 절반매도, 금아침 나머지 절반매도 하는 식으로 말입니다) 한가지만 더 부탁합니다. 위 수식에서 본인이 직접 옵션 행사가를 지정해서 할수는 없읍니까? 가령, 수식에 행사가를 직접 입력하게 하거나, 다른 방법이 가능한지 부탁합니다. 수고하십시요.
프로필 이미지
초록이
2016-01-12
1770
글번호 223770
답변완료

시초에 거래이 없을경우 1초간 강제로 쉬려면

선물신호를 받아 옵션으로 주문내는데 선물이 동시호가 직후 신호가 나오는 경우 옵션종목들이 아직 동시호가 형성이 안되어서 전날 매매가격을 기준으로 종목조회가 종종 발생하던데... 이 때문에 갭발생시 원하는 가격대와 차이가 큰 종목이 선택되어 매매되고 있습니다. 이와같이 아직 거래가 형성되지 않았을때, 당이 가격이 형성된 이후 주문이 나가게 할 방법이 있는지요 ? 만약 방법이 없다면 09시 01초 이전에 선물신호를 수신하는 경우는 1초간 쉬었다가 스팟로직이 계속 진행되도록 하고 싶은데, 어떤 방법으로 하면 되는지요 ? [추가문의] 선물신호를 받아 옵션매매를 하고 있는데 미니옵션으로 주문을 내려면 옵션객체를 미니옵션으로만 선택해주면 되는건가요 ?
프로필 이미지
anyhelp
2016-01-18
1750
글번호 223769