커뮤니티

예스스팟 Q&A

답변완료

유진예스트레이더 GetSTime 이상값

안녕하세요. 친절한 답변에 미리 감사드립니다. 아래의 수식으로 예스트레이더 내 예스스팟으로 차트객첵의 데이터를 외부의 데이터베이스로 인서트 할때 문제점입니다. 최초 외부 데이터베이스로 자료를 가져갈때 현재 시점으로부터 약 9000~10000봉 과거 봉들을 가져가는 수식입니다. 유진예스트레이더 예스스팟 좀 봐주십시오. 1. 한투예스트레이더 내 예스스팟에서는 GetSTime 의 수치들이 문제가 없습니다. 마이너스 음수 처리된 값이 나가는 경우가 없습니다. 2. 그런데 유진예스트레이더 내 예스스팟에서는 GetSTime 의 수치들에 문제가 있습니다. 마이너스 음수 처리된 오류값들이 나갑니다. ####################################################### var choKkuenSi_sseulMisaBongSu=8600; // 손잡이- 10000 하면 좋으나 줄여도 됨. var hhSseulGoId=1; // 손잡이 이나 고정- 봉번 ID는 날초 시 언제나 1번부터임. var hhSdate=0; var hhStime=0; var hhO=0; var hhH=0; var hhL=0; var hhC=0; var hhV=0; var sql인서트="0"; var hhBongBun=0; function Main_OnStart() { Main.MessageList("AD yestrader ssj <soochool> sijac. hhSseulGoId=",hhSseulGoId); //////////////// 자료고 날 최초시 갈래 for (var ffa=choKkuenSi_sseulMisaBongSu; ffa>=0; ffa--){ // 손잡이 //////////////// 마련 hhSdate=Chart1.GetSDate(1,ffa); hhStime=Chart1.GetSTime(1,ffa); hhO=Chart1.GetOpen(1,ffa); hhH=Chart1.GetHigh(1,ffa); hhL=Chart1.GetLow(1,ffa); hhC=Chart1.GetClose(1,ffa); hhV=Chart1.GetVolume(1,ffa); //////////////// 로고 sql 마련 sql인서트=hhRoGoEreum+" (ID,SDATE,STIME,O,H,L,C,V) VALUES ("; sql인서트+=String(hhSseulGoId); sql인서트+=","; sql인서트+=String(hhSdate); sql인서트+=","; sql인서트+=String(hhStime); sql인서트+=","; sql인서트+=String(hhO); sql인서트+=","; sql인서트+=String(hhH); sql인서트+=","; sql인서트+=String(hhL); sql인서트+=","; sql인서트+=String(hhC); sql인서트+=","; sql인서트+=String(hhV); sql인서트+=");"; //////////////// 로고 실행 DataBase1.인서트(sql인서트); hhSseulGoId+=1; // 1증. } } function Chart1_OnBarAppended(nData) { // Main.MessageList("Chart1_OnBarAppended / hhSseulGoId=",hhSseulGoId); if (nData==1){ hhBongBun=0; // 0부여. //////////////// 마련 hhSdate=Chart1.GetSDate(1,hhBongBun); hhStime=Chart1.GetSTime(1,hhBongBun); hhO=Chart1.GetOpen(1,hhBongBun); hhH=Chart1.GetHigh(1,hhBongBun); hhL=Chart1.GetLow(1,hhBongBun); hhC=Chart1.GetClose(1,hhBongBun); hhV=Chart1.GetVolume(1,hhBongBun); //////////////// 로고 sql 마련 sql인서트=hhRoGoEreum+" (ID,SDATE,STIME,O,H,L,C,V) VALUES ("; sql인서트+=String(hhSseulGoId); sql인서트+=","; sql인서트+=String(hhSdate); sql인서트+=","; sql인서트+=String(hhStime); sql인서트+=","; sql인서트+=String(hhO); sql인서트+=","; sql인서트+=String(hhH); sql인서트+=","; sql인서트+=String(hhL); sql인서트+=","; sql인서트+=String(hhC); sql인서트+=","; sql인서트+=String(hhV); sql인서트+=");"; //////////////// 로고 실행 DataBase1.인서트(sql인서트); hhSseulGoId+=1; // 1증. } } var choKkuenSi_sseulMisaBongSu=8600; // 손잡이- 10000 하면 좋으나 줄여도 됨. var hhSseulGoId=1; // 손잡이 이나 고정- 봉번 ID는 날초 시 언제나 1번부터임. var hhSdate=0; var hhStime=0; var hhO=0; var hhH=0; var hhL=0; var hhC=0; var hhV=0; var sql인서트="0"; var hhBongBun=0; function Main_OnStart() { Main.MessageList("AD yestrader ssj <soochool> sijac. hhSseulGoId=",hhSseulGoId); //////////////// 자료고 날 최초시 갈래 for (var ffa=choKkuenSi_sseulMisaBongSu; ffa>=0; ffa--){ // 손잡이 //////////////// 마련 hhSdate=Chart1.GetSDate(1,ffa); hhStime=Chart1.GetSTime(1,ffa); hhO=Chart1.GetOpen(1,ffa); hhH=Chart1.GetHigh(1,ffa); hhL=Chart1.GetLow(1,ffa); hhC=Chart1.GetClose(1,ffa); hhV=Chart1.GetVolume(1,ffa); //////////////// 로고 sql 마련 sql인서트=hhRoGoEreum+" (ID,SDATE,STIME,O,H,L,C,V) VALUES ("; sql인서트+=String(hhSseulGoId); sql인서트+=","; sql인서트+=String(hhSdate); sql인서트+=","; sql인서트+=String(hhStime); sql인서트+=","; sql인서트+=String(hhO); sql인서트+=","; sql인서트+=String(hhH); sql인서트+=","; sql인서트+=String(hhL); sql인서트+=","; sql인서트+=String(hhC); sql인서트+=","; sql인서트+=String(hhV); sql인서트+=");"; //////////////// 로고 실행 DataBase1.인서트(sql인서트); hhSseulGoId+=1; // 1증. } } function Chart1_OnBarAppended(nData) { // Main.MessageList("Chart1_OnBarAppended / hhSseulGoId=",hhSseulGoId); if (nData==1){ hhBongBun=0; // 0부여. //////////////// 마련 hhSdate=Chart1.GetSDate(1,hhBongBun); hhStime=Chart1.GetSTime(1,hhBongBun); hhO=Chart1.GetOpen(1,hhBongBun); hhH=Chart1.GetHigh(1,hhBongBun); hhL=Chart1.GetLow(1,hhBongBun); hhC=Chart1.GetClose(1,hhBongBun); hhV=Chart1.GetVolume(1,hhBongBun); //////////////// 로고 sql 마련 sql인서트=hhRoGoEreum+" (ID,SDATE,STIME,O,H,L,C,V) VALUES ("; sql인서트+=String(hhSseulGoId); sql인서트+=","; sql인서트+=String(hhSdate); sql인서트+=","; sql인서트+=String(hhStime); sql인서트+=","; sql인서트+=String(hhO); sql인서트+=","; sql인서트+=String(hhH); sql인서트+=","; sql인서트+=String(hhL); sql인서트+=","; sql인서트+=String(hhC); sql인서트+=","; sql인서트+=String(hhV); sql인서트+=");"; //////////////// 로고 실행 DataBase1.인서트(sql인서트); hhSseulGoId+=1; // 1증. } }
프로필 이미지
로봇짱
2025-01-15
320
글번호 226187

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

프로필 이미지
뽀스뽀스
2025-01-17
32
글번호 226186

비슬짱 님에 의해서 삭제되었습니다.

프로필 이미지
비슬짱
2025-01-12
0
글번호 226185
답변완료

지표수식 표시 위치변경

안녕하세요 챠트나 보조지표설치시 지표가 왼쪽위에 표시되는데 이것을 오른쪽 에표시하고 싶은데요 어떻케 하는지요?
프로필 이미지
비슬짱
2025-01-12
319
글번호 226184
답변완료

신호 관련

안녕하세요 건의사항이 있습니다. 제가 알고 있기로는 신호관련 제가 알고있는 바는 아래와 같아서 개선 건의를 드리고자 합니다. 혹시 제가 잘못 알고 있는 상황이라면 설명부탁드립니다. 다음과 같이 시스템 설정이 되어 있고 => 매매계약수 : 1, 주문시작신호 : 모든신호 포지션이 없는 경우에 신호가 발생하면 2계약이 잡히는 되는 것으로 알고 있습니다. 그래서 '주문시작신호를 진입신호'로 하고 나서, 포지션 진입시 다시 모든신호로 바꿔야 하는 번거로움이 있습니다. 기술적으로 가능하다면, 포지션이 없는 상황에서 주문시작신호를 모든신호로 설정하면, 진입신호 발생시와 같은 계약수로 설정되도록 개선 부탁드립니다.
프로필 이미지
minve
2025-01-10
330
글번호 226183
답변완료

프로그램 사용문의 드립니다.

파워종목검색에서, 기술적지표를 누른뒤에, 원래 검색식 간에 조합이 가능했는데, 지금은 하나의 검색식에서, 다른 조건검색식을 "현재 조건에 추가" 버튼을 클릭을 하면, 조건이 추가가 되지않습니다.. 어떻게 하면 될까요?
프로필 이미지
살빼고싶다
2025-01-02
380
글번호 226182

당근인생 님에 의해서 삭제되었습니다.

프로필 이미지
당근인생
2025-01-16
30
글번호 226180
답변완료

전략실행차트에서 기준시간 설정을 변경할 수 없는지요?

안녕하세요. LSYestrader를 사용합니다. 전략실행차트를 화면에서 보면 시간대가 CME 선물을 보면 시카고 시간대의 시간이 보여지는데요. 이것을 서을기준시간대로 바꿀 수 있는지요?
프로필 이미지
markus
2024-12-31
315
글번호 226179
답변완료

예스스팟

var timer5 = 2; //5초 var 매수금 = 100000; var OrderList = []; var MKList = []; var req; function Main_OnStart() { //1번 타이머, 1초 Main.SetTimer(1, timer5*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = []; } function Main_OnTimer(nEventID) { var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS > 090000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("매수조건") } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvItemList(aItemList, nCount) { Main.KillTimer(1); OrderList = []; if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Add = false; } } if (Add == true && !IsStockInAccount(aItemList[a])) { OrderList.push(aItemList[a]); } } } } if (OrderList.length == 0) { Main.SetTimer(1, timer5*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == OrderList[req]) { MKList.push(MarketData); // 계좌에 같은 종목이 있는지 확인 if (!IsStockInAccount(MarketData.code)) { // 계좌에 없는 경우에만 매수 Account1.OrderBuy(MarketData.code,1,0,1); //Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0); //지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. Main.MessageList(MarketData.code + " 주식을 매수합니다."); } else { Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다."); } req = req+1; if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5*1000); } } } function IsStockInAccount(stockCode) { // 계좌에 해당 종목이 있는지 확인하는 함수 var numberOfBalances = Account1.GetTheNumberOfBalances(); for (var i = 0; i < numberOfBalances; i++) { Account1.SetBalance(i); if (stockCode == Account1.Balance.code) { return true; // 계좌에 같은 종목이 있으면 true 반환 } } return false; // 계좌에 같은 종목이 없으면 false 반환 } =============================================== 위와 같이 실전매매를 진행중인데요. 1) "매수조건"신호에 따라 사듯이, "매도조건"신호에 따라 팔려고 합니다. 가능하면 부탁드립니다. 2) 한종목당 1회만 매수진입조건인데, 매수신호가 나올때 마다 진입할려면 무엇을 어떻게 바꾸면 될까요? 개별종목 단타라서 분봉신호마다 들어갈려고 합니다. 항상 감사합니다.
프로필 이미지
보이저
2024-12-26
366
글번호 226177

당근인생 님에 의해서 삭제되었습니다.

프로필 이미지
당근인생
2024-12-30
13
글번호 226176