커뮤니티

예스스팟 Q&A

답변완료

이 게시판에도 좀 빠르게 답을 달아주실 수는 없는지요?

예스랭기지 게시판에는 빠르게 답을 주시는데 그에 비하면 이 게시판에는 답이 많이 늦습니다. 업무에 바쁘시겠지만 이 게시판에 나온 질문에도 조금 더 빠르게 답을 주실 수는 없는지요? 감사합니다.
프로필 이미지
음양조파
2015-03-06
1195
글번호 223340

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

프로필 이미지
ywesry
2015-03-05
0
글번호 223339
답변완료

문의드립니다.

청산수식에 대한 문의입니다. 갭보정된 120틱차트에 현재종가가 지수이평선 20이평선을 하향돌파하면 청산하고자 하나 휩소를 거르고자 두개의 봉으로 판단하여 청산할려고 합니다. 즉 20지수이평선을 하향돌파한 음봉한개,그다음봉이 20지수이평선아래의 양봉이든 음봉이든 종가상 아래있다면 연속두개의 봉으로 판단하여 청산하고자 합니다. 아래와 같이 확장차트를 불러왔습니다. Main.ReqChartEx(new ReqChartItem(EntryObject[RcvData].code,120,CHART_PERIOD_TICK,1000,CHART_REQCOUNT_BAR,false,true)); 청산식 부탁드리겠습니다.
프로필 이미지
엔즈
2015-03-06
1276
글번호 223338
답변완료

문의드립니다.

안녕하세요? 질문답변으로 얻은 수식을 나름대로 변형해서 아래 식을 짠 후 모의투자로 돌려보았습 니다. 가격이 오르면 따라 사고 내리면 따라 파는 식입니다. 그런데, 스팟을 시작하고나서 기준가보다 크거나 작을 때 한 번은 진입을 하는데 그 후에는 가격이 오르거나 내려도 추가진입이 이루어지지 않네요. 종목객체, 계좌객체, 다 제대로 설정했는지도 확인했고 일간데이터도 사용으로 설정했는 지 확인했는데 거기에는 문제가 없었습니다. 아무래도 제가 만든 코딩 자체에 문법적 잘못이 있거나 구조적으로 무언가를 잘못한 것 아 닐까 하는 생각이 드는데, 아래 코딩이 제가 원하는 것을 구현하고자 할 때에 코딩 자체의 문제는 없는 것인지 좀 봐 주시면 감사하겠습니다. 저 혼자 추측하기에는, ckey의 사용법에 문제가 있나 하는 생각을 합니다. 가격이 변화하 는 순간 수도 없는 진입을 방지하려고, 일단 스팟 시작하면 ckey를 1로 놓았다가 가격변화 를 포착하면 일단 ckey를 0으로 놓고 매수도를 수행한 후에 체결통보를 받으면 ckey를 다 시 1로 다시 놓는 것으로 식을 짠다고 아래 식을 짰는데, 이게 뭔가 코딩 방법 상 잘못된 것은 아닌지 궁금합니다. 가르쳐 주시면 감사하겠습니다. //진입컨트롤키 var ckey; //기준가 var sprice; //저장값 var lfprice; //스팟이 시작하면 function Main_OnStart() { //컨트롤키를 진입가능하도록 ckey=1; //저장된 값이 있는지 확인하여 저장값 변수에 대입 lfprice = parseFloat(Main.GetUserValue('lfprice')); //만일 저장값 변수가 양이면 그 값을 기준가로 하고 메시지출력 if (lfprice > 0) { sprice = lfprice; Main.MessageLog("저장된 최종체결가를 기준가로 : " + lfprice); } //그렇지 않다면 어제의 종가를 기준가 변수에 대입하고 메시지출력 else { sprice = MarketData1.GetPrevClose(1); Main.MessageLog("어제의 종가를 기준가로 : " + MarketData1.GetPrevClose(1)); } } //시장정보가 갱신되고 function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//금칙어땜에 별표,실제 실행시에는 별표 지움 //갱신된 시장정보가 해당종목의 시세정보이며 시가가 접수 즉 장이 시작된 경우 { if (sItemCode == MarketData1.code && lUp*dateID == 20001 && MarketData1.open > 0)//실제 실행시에는 별표 지워야 { //계좌를 체크하여 잔고를 세팅 Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0); //키가 진입허용상태이고 현재가가 기준가보다 일정가격 이상 커지면 if (ckey==1 && MarketData1.current >= sprice+0.05 ) { //일단 무한진입 방지 ckey=0; //매도잔고가 있으면 2개매수 if (Account1.Balance.count >= 1 && Account1.Balance.position == 1 ) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 2, MarketData1.current, 0); } //매도잔고가 없으면 1개매수 if (Account1.Balance.count == 0) { Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current, 0); } } //진입허용 상태이고 현재가가 기준가보다 일정가격 이상 작아지면 if (ckey==1 && MarketData1.current <= sprice-0.05) { //일단 무한진입 방지 ckey=0; //매수잔고가 있으면 2개 매도 if (Account1.Balance.count >= 1 && Account1.Balance.position == 2 ) {Account1.OrderSell(Main.GetOrderCode(MarketData1.code),2, MarketData1.current, 0); } //매수잔고가 없으면 1개매도 if (Account1.Balance.count == 0) {Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current, 0); } } } } //체결통보를 받으면 기준가에 체결가를 저장하고 컨트롤키를 진입가능케하면서 계좌를 새롭게 갱신 function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.code == MarketData1.code) { sprice = NotifyFill.fillPrice; ckey=1; Account1.Refresh(); } } //스팟 종료시에는 기준가를 저장값으로 저장하고 미체결주문 취소 function Main_OnClose() { Main.SetUserValue('lfprice', sprice); var numOfUnfills = Account1.GetTheNumberOfUnfills(); for(var i = 0 ; i < numOfUnfills ; i++) { var unfill = Account1.SetUnfillIndex(i); Account1.OrderCancel(unfill.orderNum); } }
프로필 이미지
음양조파
2015-03-06
1347
글번호 223337
답변완료

장중 예상체결가

1) 얼마전부터 시장에 과열완화장치가 적용되어, 장중에도 가격이 급변시 동시호가 상태로 변하고 있는데요, 이 경우의 예상체결가도 onUpdat eMarket 의 UID_EXPECTPRICE 에서 받아볼 수 있나요? 혹시 안된다면 다른 방법은 없는지 문의드립니다. 2) 장시작 전 동시호가에서 발생하는 잔량변화도 UID_EXPECTPRICE 등에서 알 수 있는지 궁금합니다. if( lU pdateID==UID_EXPECTPRICE ) { if( stock1.Bid != stock1.limitUp) { ... } } 같은 표현이 동작할까요. 감사합니다.
프로필 이미지
괴델
2015-03-01
1401
글번호 223336

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

프로필 이미지
괴델
2015-03-01
0
글번호 223335
답변완료

SetBalanceItem의 매도 포지션을 가져오지 못합니다.

아래와 같이 코딩했는데 매도포지션을 찾아오지 못합니다. 신속히 수정 바랍니다. function check_postion() { gPosition = 0; fxAct.SetBalanceItem(Main.GetOrderCode(fxMktData.code),1); if (fxAct.Balance.count > 0) { fxVol = fxAct.Balance.count; fxPst = fxAct.Balance.position; gPosition = fxPst; }; Main.MessageList(fxMktData.time, "3.매도포지션 체크 fxAct.Balance.count =", fxAct.Balance.count , "fxAct.Balance.position=", fxAct.Balance.position); fxAct.Refresh(); fxAct.SetBalanceItem(Main.GetOrderCode(fxMktData.code),2); if (fxAct.Balance.count > 0) { fxVol = fxAct.Balance.count; fxPst = fxAct.Balance.position; gPosition = fxPst; }; Main.MessageList(fxMktData.time, "4.매수 포지션 체크 fxAct.Balance.count =", fxAct.Balance.count , "fxAct.Balance.position=", fxAct.Balance.position); }
프로필 이미지
richon
2015-02-25
1503
글번호 223334
답변완료

옵션 가상차트를 생성하는데, 이걸 초차트나 틱차트로도 구현이 되나요

1. 옵션 초차트, 틱차트 주기를 자유자재로 변형이 가능하게 가상차트 생성이 가능한가요 ? 2. 9시 1분부터 9시 30분까지 사이의 고점, 저점의 중간값을 함수로 만드는 식좀 올려주세요 ... 감사합니다
프로필 이미지
바다리
2015-02-24
1407
글번호 223333
답변완료

setbalanceitem과 refresh

안녕하세요? 스팟에서 특정종목의 계좌잔고를 확인하고자 할 때에 setbalanceitem을 일단 해야하는 것으로 알고 있습니다. 그런데, 매뉴얼에서 잔고를 참고하려면 가원장과 원장을 동기화시켜야 한다는 말을 읽었는데, 자동매매를 하면서 수동으로 동기화시키는 것은 아닐 터이니 코딩에서 setbalanceitem 바로 전에 refresh를 하면 되는 것인지요? 감사합니다.
프로필 이미지
음양조파
2015-03-06
1354
글번호 223332
답변완료

스팟종료시 미체결주문 취소

안녕하세요? 스팟이 종료되는 경우 미체결주문이 있으면 모두 취소하고 종료되도록 하고 싶습니다. 코딩 좀 가르쳐 주세요. 감사합니다.
프로필 이미지
음양조파
2015-02-16
1346
글번호 223331