커뮤니티

예스스팟 Q&A

답변완료

15초에 15번 이상 매매 발생시 해당 신호가 정지가 되나요?

제가 알고 잇는것이 맞는지 확인차 문의드립니다. 그러니까 15초의 기간동안 1초에 1번 이상 매매 신호가 발생하면 해당 스팟 신호를 제한하는것 같은데 명확하지가 않습니다. 어디에도 그런 내용이 없구요. 그런데 어떨땐 정지가 되고 또 어떨땐 정지가 안되는 거 같아서 명확한 답변을 듣고 싶습니다.
프로필 이미지
궁금궁금123
2018-11-20
2855
글번호 224671
답변완료

매수매도 청산

매수신호: ATM 5초간격 콜매수 매수청산 신호: 종목관계 없이 잔고가 있으면 5초간격 콜매도 청산 매도신호: 어떤 종목 5초간격 풋매수 매도청산 신호: 종목관계 없이 잔고가 있으면 5초간격 풋매도 청산 var CallCode,PutCode; var BEcnt,BXcnt,SEcnt,SXcnt; var MaxEntryVol = 3; var MaxExitVol; function C1_OnRiseSignal(Signal) { if (Signal.signalKind == 1 ) { Main.MessageList("매수신호발생"); CallCode = Option.GetATMCallRecent(0); var CallPrice = Option.GetAskByCode(CallCode,2); A1.OrderBuy(CallCode, 1, CallPrice, 0); BEcnt = 1; //1번 타이머 5초 셋팅 Main.SetTimer(1,5000); } if (Signal.signalKind == 2 ) { Main.MessageList("매수청산신호발생"); var BxPrice = Option.GetBidByCode(CallCode, 2); A1.OrderSell(CallCode, 1, BxPrice, 0); BXcnt = 1; //보유수량이 2계약 이상이면 if (MaxExitVol >= 2) //2번 타이머 5초 셋팅 Main.SetTimer(2,5000); } if (Signal.signalKind == 3 ) { Main.MessageList("매도신호발생"); PutCode = Option.GetATMPutRecent(0); var PutPrice = Option.GetAskByCode(PutCode, 2); A1.OrderBuy(PutCode, 1, PutPrice, 0); SEcnt = 1; //3번 타이머 5초 셋팅 Main.SetTimer(3,5000); } if (Signal.signalKind == 4 ) { Main.MessageList("매도청산발생"); var SxPrice = Option.GetAskByCode(PutCode, 2); A1.OrderSell(PutCode, Vo, SxPrice, 0); SXcnt = 1; //보유수량이 2계약 이상이면 if (MaxExitVol >= 2) //4번 타이머 5초 셋팅 Main.SetTimer(4,5000); } } //타이머 동작 function Main_OnTimer(nEventID) { //1번 타이머 동작할 때마다 if (nEventID == 1) { //카운트 BEcnt = BEcnt+1; //카운트가 최대진입수량 이하이면 if (BEcnt <= MaxEntryVol) { //1계약씩 추가매수 A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0); } //최대진입수량에 도달하면 타이머종료 if (BEcnt == MaxEntryVol) { Main.KillTimer(1); } } //2번타이머 동작할때마다 if (nEventID == 2) { //카운트 BXcnt = BXcnt+1; //카운트가 보유수량 이하이면 if (BXcnt <= MaxExitVol) { //1계약씩 매도주문 A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0); } //카운트가 보유수량에 도달하면 타이머 종료 if (BXcnt == MaxExitVol) { Main.KillTimer(2); } } if (nEventID == 3) { SEcnt = SEcnt+1; if (SEcnt <= MaxEntryVol) { A1.OrderBuy(Code, 1, Option.GetAskByCode(Code,2), 0); } if (SEcnt == MaxEntryVol) { Main.KillTimer(3); } } if (nEventID == 4) { SXcnt = SXcnt+1; if (SXcnt <= MaxExitVol) { A1.OrderSell(Code, 1, Option.GetBidByCode(Code,2), 0); } if (SXcnt == MaxExitVol) { Main.KillTimer(4); } } }
프로필 이미지
팡팡
2018-12-09
3021
글번호 224670
답변완료

양매도 수식 추가

안녕하세요 양매도 진입 수식에 다음 2가지 방식의 추가수식 부탁드립니다. << 방식1. 전일data 조건 추가 >> 1) 전일 종가기준으로 각행사가별 콜,풋 가격중 동일 행사가의 콜풋 양합의 최저치를 계산 2) 당일 진입봉 시점에서 각행사가별 콜,풋 가격중 동일 행사가의 콜풋 양합의 최저치를 계산 3) 진입수식에 2)값이 1)값보다 작을 때라는 조건 추가 <--- 진입봉 startN '전일 콜풋 동일 행사가의 양합최저치 > 당일 진입시점 콜풋 동일 행사가의 양합최저치' 입니다. << 방식2. 이전봉data 조건 추가 >> 1) 당일 진입봉 이전3개봉 각각의 각행사가별 콜,풋 가격중 동일 행사가의 콜풋 양합의 최저치를 계산한 후, 3개값의 평균을 구함 2) 당일 진입봉 시점에서 각행사가별 콜,풋 가격중 동일 행사가의 콜풋 양합의 최저치를 계산 3) 진입수식에 2)값이 1)값보다 작을 때라는 조건 추가 <--- 진입봉 startN '당일 진입봉이전 3개봉 콜풋 동일 행사가 각각의 양합최저치의 평균 > 당일 진입시점 동일 행사가의 양합최저치' 입니다. ** 마지막으로, 현재 진입후 E1 = 0 에서 청산시 E1 = 1 로 전환되는데 이럴경우 실제로 진입수량이 없음에도 불구하고 청산이 발생하고 있습니다. 1) 진입수량이 완전히 체결된 경우만 청산이 발생하도록 하고 2) 청산수량이 완전히 체결된 후, 조건에 의해서 재진입이 가능하도록 수식 변경 부탁드립니다. 3) 동일계좌에 여러 시스템이 운용되고 있어서, 해당 시스템 수량에 한합니다. ** 글쓰기가 안되서, OnUp*ateMarket, lUp*ateID 로 표시했습니다. 이상입니다. 감사합니다 !! ---------------------------- // YT 'dayindex' 지표 사용 //내부변수지정 var C1,E1; var SellC_code; var SellP_code; //ATM-50~+50까지 옵션종목의 가격과 코드를 담을 배열변수 var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); //가격 0.00이상~UpLt이하의 옵션중 최고가 콜옵션,풋옵션 저장변수 var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; //콜옵션,풋옵션 베팅수량변수 var CVol; var PVol; // 현재가 추적 var Chart1,ChartReq; function Main_OnStart() { //차트설정 MarketData1종목 1분봉 1개 var SetChart = new ReqChartItem(MarketData1.code, 1, CHART_PERIOD_MINUTE,500,CHART_REQCOUNT_BAR,false, false); //지표설정 (dayindex라는 이름의 지표적용) var SetInd = new IndicatorInfo("dayindex"); //차트생성 Main.ReqChartEx(SetChart,null,new Array(SetInd)); ChartReq = false; Main.MessageLog("Start"); } function Main_OnRcvChartEx(ChartEx) { Chart1 = ChartEx; ChartReq = true; } function Main_OnBarAppended(ChartEx, nData) { Main.MessageList("봉완성",ChartEx.GetIndicatorData("dayindex",1,0)); if (ChartEx.GetCode(1) == MarketData1.code) { //startN번째 봉 완성 if (ChartEx.GetIndicatorData("dayindex",1,0) == startN && MarketData1.time < 1500000000) { C1 = Chart1.GetClose(1,1); //UpLt보다 작은 종목의 코드와 가격을 배열에 저장 ---------------------> start for(var i = -50; i <= 50; i++) { if (Option.GetCurrent(0,i) < UpLt && Option.GetCurrent(0,i) > 0) //---> UpLt { CPrice[50+i] = Option.GetCurrent(0,i); CCode[50+i] = Option.GetATMCallRecent(i); } else { CPrice[50+i] = -1; CCode[50+i] = -1; } if (Option.GetCurrent(1,i) < UpLt && Option.GetCurrent(1,i) > 0) //---> UpLt { PPrice[50+i] = Option.GetCurrent(1,i); PCode[50+i] = Option.GetATMPutRecent(i); } else { PPrice[50+i] = -1; PCode[50+i] = -1; } } //저장된 CPrice,PPrice값중 최고값 계산 MaxCall = -1; MaxCallcode = -1; MaxPut = -1; MaxPutcode = -1; for(var A = 0; A <= 100; A++) { if (CPrice[A] > MaxCall) { MaxCall = CPrice[A]; MaxCallcode = CCode[A]; } if (PPrice[A] > MaxPut) { MaxPut = PPrice[A]; MaxPutcode = PCode[A]; } } //-------------------------------------------------------------------> end SellC_code = MaxCallcode; var SellC_price = MaxCall; CVol = Math.floor(SeedMoney/(SellC_price*100000*MultiN)); //---> SeedMoney이내 콜매도 var SellCC_price = Option.GetBidByCode(SellC_code,5); //---> Call 5호가 매도 SellP_code = MaxPutcode; var SellP_price = MaxPut; PVol = Math.floor(SeedMoney/(SellP_price*100000*MultiN)); //---> SeedMoney이내 풋매도 var SellPP_price = Option.GetBidByCode(SellP_code,5); //---> Put 5호가 매도 if (MaxCall > 1 && MaxPut > 1 && MaxCall+MaxPut > 2.5) { Account1.OrderSell(SellC_code, CVol, SellCC_price-0.3, 0); Account1.OrderSell(SellP_code, PVol, SellPP_price-0.3, 0); } Main.MessageList("양매도 진입"); E1 = 0; } //endN번째봉 청산 if (ChartEx.GetIndicatorData("dayindex",1,0) == endN && E1 == 0) { E1 = 1; Main.MessageList("End 청산"); var xC_price = Option.GetAskByCode(SellC_code,5); //---> Call 5호가 청산 Account1.OrderBuy(SellC_code, CVol, xC_price+0.3, 0); var xP_price = Option.GetAskByCode(SellP_code,5); //---> Put 5호가 청산 Account1.OrderBuy(SellP_code, PVol, xP_price+0.3, 0); } } } function Main_OnUp*ateMarket(sItemCode, lUp*ateID) { if (ChartReq == true && Chart1.GetCode(1) == MarketData1.code && lUp*ateID == 20001) { //startN~endN번째봉 가격차 청산 - 현재가 기준 if (Chart1.GetIndicatorData("dayindex",1,0) > startN && Chart1.GetIndicatorData("dayindex",1,0) < endN && Math.abs(MarketData1.current-C1) >= 가격차 && E1 == 0) { E1 = 1; Main.MessageList("가격차 청산"); var xC_price = Option.GetAskByCode(SellC_code,5); //---> Call 5호가 청산 Account1.OrderBuy(SellC_code, CVol, xC_price+0.3, 0); var xP_price = Option.GetAskByCode(SellP_code,5); //---> Put 5호가 청산 Account1.OrderBuy(SellP_code, PVol, xP_price+0.3, 0); } } }
프로필 이미지
새로운세상
2018-12-13
2961
글번호 224669
답변완료

질문있습니다.

봉완성시에 주문이 나가는 전략이 있다면 예스스팟으로 봉완성 3초전에 주문이 나가게 할 수 있나요? 가능하다면 수식 좀 부탁드립니다. 감사합니다.
프로필 이미지
쥬롱
2018-11-19
2807
글번호 224668
답변완료

예스스팟에서 텍스트 파일을 읽고 쓰는 방법

안녕하세요. 예스랭귀지로 작성한 전략식을 예스스팟으로 옮기기 위해 열심히 공부 중입니다. 예스스팟에서 텍스트 파일을 읽고 쓰는 방법에 대해 문의드립니다. 읽고자 하는 파일은 숫자 몇개가 콤마로 구분되어 있는 두어줄 정도의 크기입니다. 이런 텍스트 파일을 예스스팟에서 읽어들일 방법이 있는지요? 안된다면 엑셀을 이용하는 방법은 없을까요? 답변 부탁드립니다. 감사합니다.
프로필 이미지
좋은밤
2018-11-16
2782
글번호 224666
답변완료

안녕하세요.. 수식 문의드립니다.

예스트레이더로 매매를 하고 있습니다. 궁금한점이 있어서 문의 드립니다. 예스트레이더를 사용합니다. A종목의 특정 진입명 및 청산명이 발생했을때, 다음 진입신호에 B종목에 진입하고 싶습니다. 수식 부탁드립니다. 위에 인한 예스스탁의 성과를 시뮬레이션 하고 싶습니다.. 가능할까요.
프로필 이미지
율담
2018-11-13
2726
글번호 224662
답변완료

엑셀 연동 및 주문관련

수고하십니다. 다음과 같이 구현하려고 합니다. 1. MACD Signal 중 날짜와 시간, 종가, 시그널 수치를 각 180분 종가를 바로 엑셀로 받고 싶습니다.(9시, 11시, 14시, 17시, 20시, 23시, 02시, 05시, 8시) 2. 엑셀작업을 통해 특정 셀에 매수 또는 매도 결과 값이 나오게 합니다. 3. 특정 셀 값을 180분 간격으로 yes global로 발신하여 주문을 합니다. 아래는 11시에 매수할 경우의 예입니다. if sTime == 110000 Then Buy(); if MarketPosition == 1 Then ExitLong("bx",AtStop,EntryPrice-PriceScale*10); if sTime == 140000 Then { ExitLong(); ExitShort(); } 4. 위의 동작을 완전자동으로 구현할 수 있는지 궁금하고 관련 수식을 부탁드립니다.
프로필 이미지
장안
2018-11-12
2862
글번호 224661
답변완료

문의 드립니다

chart1 이름이 울트라수퍼챠트 account1 이름이 9999-9999-99 콜옵션 가격은 0원에서 7만원사이 가격중 가장 큰 콜옵션 선택 울트라수퍼챠트에서 선물로 매수신호가 나올때 콜옵션 매수, 선물로 매도신호가 나올때 콜옵션 매도 나오게 예스스탁수식 작성해주세요 (물론 데이 트레이딩용이므로 첫신호가 선물의 매수신호가 먼저 나온 경우는 다음신호가 매도 일경우 매수청산후 매도진입하도록, 선물의 매도신호가 첫신호로 먼저 나온경우는 매도 청산후 매수 진입하도록, 신호 나오게 해주시고요 즉 울트라수퍼차트에서 나오는 선물의 신호가 그대로 옵션 챠트에서도 작동되도록 수식 부탁드립니다. 그리고 제가 스팟은 처음이라 자동매매를 위해 제 계좌를 연계하는 방법도 모릅니다. 그것도 수식에 넣어 주십시요 항상 감사드립니다 문의사항 010 3231 4592 유원장드림
프로필 이미지
sefswef
2018-11-12
2983
글번호 224660
답변완료

예스스팟으로 외국인 매수내역 볼수 있나요?

전일 외국인이나 투신 매수금액을 알수 있는 함수가 있나요?
프로필 이미지
미수맨
2018-11-11
3013
글번호 224659

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

프로필 이미지
goodmami
2018-11-08
15
글번호 224658