커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

Yes Global Spot 에서 계좌 객체에서 잔고 수량 0 인 이유 질의

계좌 객체에서 사용하는 함수, 메써드 등은 spot에서 주문된 것만 관련 정보가 반환되는 것인지요? 예를들면 nh선물 hts에서 주문 체결된 후 잔고, 미체결 등 정보는 spot의 TheNumberOfBalances() 등을 활용해서 잔고 정보를 불러올 때도 있고 불러오지 못할 때도 있습니다. 이유가 무엇인지요?! 계좌번호, 종목, 포지션 등은 잘 불러오는데 잔고 수량(count),단가 등이 0으로 불러오는 경우는 왜 그러는 걸까요?! spot수식 A1 계좌 객체 설정 완료 function Main_OnStart() { var d = new Date(); var HHMMDD = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); Main.MessageLog(HHMMDD+":"+"전략 시작"); Main.MessageLog("계좌번호:"+A1.number +", 계좌명:"+A1.name); OrderCode = Main.GetOrderCode(F1.code); //F1 종목 객체에서 종목코드를 주문용 코드로 변환 Main.MessageLog("단축코드:" + F1.code + "주문용 종목코드:"+OrderCode+", 종목명:"+F1.name +" ,잔존일수:"+F1.remainDay); //잔고 정보 조회 A1.SetBalanceItem(F1.code, 0); //잔고객체를 사용하기위해 종목 설정 A1.Refresh();//가원장 새로 고침 Main.RefreshAccount(A1.number);//Main에서 A1 계좌번호로 가원장 새로 고침 Bal = A1.GetTheNumberOfBalances(); //잔고 리스트 개수 반환 현재 계좌에 1종목 1개 존재 A1.SetBalanceIndex(0);//잔고 인덱스 0 설정(1종목 1수량 존재하므로) Main.MessageLog("잔고 리스트 개수:" + Bal); Main.MessageLog("잔고 code:"+A1.Balance.code); Main.MessageLog("잔고 포지션(S:1,L:2)):"+ A1.Balance.position); Main.MessageLog("잔고 count:"+ A1.Balance.count); Main.MessageLog("잔고 평균단가:"+ A1.Balance.avgUnitCost); Main.MessageLog("잔고 평가금액:"+ A1.Balance.assessedAmount); Main.MessageLog("잔고 current:"+ A1.Balance.current); } 잔고 리스트 개수 : 정상 포지션 : 정상 current : 정상 표시 그러나 A1.Balance.count A1.Balance.avgUnitCost A1.Balance.assessedAmount 등은 모두 0으로 표시되는 이유는 무엇인가요?! 감사합니다.
프로필 이미지
김상
2021-06-24
1386
글번호 150262
시스템
답변완료

부탁 드립니다

.120봉 안에서 고점을 돌파 한후 그 돌파한 양봉에 종가를 지켜 주면서 거래량이 줄어든 음봉을 찾고 싶습니다.
프로필 이미지
그리워
2021-06-24
1241
글번호 150260
종목검색

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2021-06-24
963
글번호 150258
지표
답변완료

만기일 표시 부탁드립니다.

만기일 15:00 정각에 , data1 차트에 수직선으로 길게 표시되게 가능하련지요?
프로필 이미지
캣피쉬
2021-06-24
1267
글번호 150244
지표
답변완료

종목검색식 문의드려요

항상감사합니다~~ 오늘도 종목검색식 문의드립니다 1.일봉에서 macd 0선을 돌파한 종목들 중에서 고점(고점 라인들)을 돌파해서 종가 마감한 종목들을 매일 검색하고 싶은데요 (당일 검색할때 macd 0선을 돌파한 상태이면서 그 봉의 고점을 넘어서 종가 마감한 종목을 검색하고싶은데요.. 5일전에 0선 돌파한 종목이라도 오늘 그 고점을 돌파 했으면 검색이 되었으면 하는데요....) 가능할까요? 부탁드립니다~~ 2. macd 0선 돌파한 봉의 저점을 하락돌파해서 종가 마무리 되는 종목의 검색식도 부탁드려요(내용은 위의 1번과 동일합니다)
프로필 이미지
pinpoint
2021-06-24
1322
글번호 150243
종목검색
답변완료

검토 부탁드립니다.

안녕하세요...글번호73031 검토좀해주세요. 주신수식에 시가라인이 안그려지네요. plot 1 데이타2 plot 2 데이타5 (장시작시가라인 장종료까지그려지게요) plot 3 데이타3 plot 4 데이타4 plot 5 데이타5 plot 6 0값라인 주신수식에제가 데이타변경만햇거든요 아래와같이요..검토좀부탁드립니다 plot 1 데이타4 plot 2 데이타4(장시작시가라인 장종료까지그려지게요) plot 3 데이타5 plot 4 데이타6 plot 5 데이타7 plot 6 0값라인 수고하세요...꾸벅
프로필 이미지
보인다
2021-06-24
1345
글번호 150242
지표
답변완료

stoploss

안녕하세요? 고견 부탁드립니다~~ 1. 메뉴얼 내용중 문의 드립니다 A와 B가 동일한데 어떻게 사용하는지요? A 2 포인트 손실 청산 SetStopLoss(2,PointStop); B 10000원 손실 시 청산 SetStopLoss(10000,PointStop) 메뉴얼----------------- SetStopLoss 설명 : 손절매 함수 : SetStopLoss(손절매값,Method); 손절매값 손절매값, 이 값이 0이면 목표수익 설정이 해지 된다. Method PercentStop → % 설정 PointStop → 포인트(원) 설정 생략하면 % 설정 예제 : 10% 손실시 청산 SetStopLoss(10); SetStopLoss(10,PercentStop); 2 포인트 손실 청산 SetStopLoss(2,PointStop); 10000원 손실 시 청산 SetStopLoss(10000,PointStop); 손절매 청산 해제 SetStopLoss(0); 2. 나스닥 1분봉에서 손익절값 동일하게 30포인트 설정하여 시뮬레이션 하였는데 손절은 약57포인트. 익절은 약2.7포인트 발생합니다. 하기 전략에서 어디가 잘못되었는지요? input : 매수(30),매수손절(30),매수익절(30),매도(30),매도손절(30),매도익절(30); var : entry(0); if Bdate != bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 and entry < 1 and c < dayopen-매수 Then Buy(); if MarketPosition == 0 and entry < 1 and c > dayopen+매도 Then sell(); if MarketPosition == 1 Then { SetStopLoss(매수손절,PointStop); SetStopProfittarget(매수익절,PointStop); } if MarketPosition == -1 Then { SetStopLoss(매도손절,PointStop); SetStopProfittarget(매도익절,PointStop); }
프로필 이미지
코퍼
2021-06-24
1156
글번호 150240
시스템
답변완료

Yes Global Spot 에서 잔고 함수 정상 작동 확인 요청드립니다.

Yes spot에서 잔고함수를 사용해서 잔고 종목, 수량 등이 0 으로 나오네요. 스크립트&#160;객체설정 차트객체추가&#160;-->&#160;속성에서&#160;객체명&#160;Chart1,&#160;차트와&#160;아이디&#160;연결 종목객체추가&#160;-->&#160;속성에서&#160;객체명&#160;MarketData1,&#160;차트와&#160;동일종목으로&#160;설정 계좌객체추가&#160;-->&#160;속성에서&#160;객체명&#160;Account1,&#160;계좌번호&#160;지정 var&#160;Score; function&#160;Main_OnStart() { &#160;&#160;&#160;&#160;Main.MessageList("start") } //차트에서&#160;신호발생 function&#160;Chart1_OnRiseSignal(Signal) { &#160;&#160;&#160;&#160;&#160;&#160;//매수진입신호이면 &#160;&#160;&#160;&#160;if&#160;(Signal.signalKind&#160;==&#160;1) &#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//수량계산 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&#160;vol&#160;=&#160;Account1.GetBalanceETCinfo(0)*0.6*Score/&#160;MarketData1.Ask(3); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//계산된&#160;수량으로&#160;매도3호가로&#160;매수주문 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Account1.OrderBuy(MarketData1.code,&#160;vol,&#160;MarketData1.Ask(3),&#160;0); &#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;//매수청산신호이면 &#160;&#160;&#160;&#160;if&#160;(Signal.signalKind&#160;==&#160;2) &#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//미체결&#160;중&#160;해당종목의&#160;미체결은&#160;모두&#160;취소 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var&#160;num&#160;=&#160;Account1.GetTheNumberOfUnfills(); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(num&#160;>&#160;0) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for&#160;(var&#160;i&#160;=&#160;0;i&#160;<&#160;num;i++) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Account1.SetUnfill(i) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(Account1.Unfill.count&#160;>&#160;0&#160;&&&#160;Account1.Unfill.code&#160;==&#160;MarketData1.code)&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Account1.OrderCancel(Account1.Unfill.orderNum);&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//잔고셋팅 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Account1.SetBalance(MarketData1.code,&#160;0); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//잔고보유수량&#160;전량&#160;매수3호가로&#160;매도주문 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if&#160;(Account1.Balance.count&#160;>&#160;0) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Account1.OrderSell(MarketData1.code,Account1.Balance.count,&#160;MarketData1.Bid(3),&#160;0); &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;} }
프로필 이미지
김상
2021-06-24
1100
글번호 150239
시스템
답변완료

함수변환요청

안녕하세요? 아래는 키움(시그널메이커)에서 적용되는 스크립트입니다. 한투에서 사용될 수 있도록 예스로 변환 요청드립니다. 감사합니다. Params : cnt(3); If SignalPosition = 0 Then Begin If O > Highest(H[1] of data2,cnt) Then Sell("S1", AtMarket); If O < Lowest(L[1] of data2,cnt) Then Buy("B1", AtMarket); If O > Highest(C[1] of data2,cnt) Then Sell("S2", AtMarket); If O < Lowest(C[1] of data2,cnt) Then Buy("B2", AtMarket); End; If CrossDown(O, Ma(C of data2, 5)) Or CrossDown(C, Ma(C of data2, 5)) Then ExitLong("EXB"); If CrossUp(O, Ma(C of data2, 5)) Or CrossUp(C, Ma(C of data2, 5)) Then ExitShort("EXS");
프로필 이미지
흰둥이아빠
2021-06-24
1125
글번호 150236
시스템
답변완료

일자회귀선을 항상 자동으로 끄어지게 할수있나요?

보통 차트에서 일자회귀선을 사용하면 시작점과 끝점을 마우스로 드래그해서 만들어줘야하는데 당일 시초가와 연결해서 마지막봉이나 현재가와 계속해서 연결되게 할수있나요??
프로필 이미지
timeless
2021-06-24
1222
글번호 150235
지표