예스스탁
예스스탁 답변
2025-02-04 17:30:53.0
안녕하세요
예스스탁입니다.
답변이 늦어 죄송합니다.
현재 해외선물 프로그램 중 한국투자증권을 제외하고
유진,NH,Next,LS의 자바스크립트가 높은 버전으로 업그레이드가 되었는데
봉의시간값 등을 차트에서 넘겨받아 처리하는데 문제가 있습니다.
해당 내용 빠르게 처리해 드리고 싶은데 담당자분이 외부에서 근무중인 관계로
수정에 시간이 많이 필요할 것 같습니다.
인티저 맥스를 넘는 값이 리턴되어 문제가 발생하고
시간은 6자리(HHMMSS)로 받으시면 되므로
Plot1(sTime);
번거로우시겠지만 이 지표를 차트에 적용후에(지표명 stime)
Chart1.GetIndicatorData함수를 이용해
각 봉의 시간을 6자리(HHMMSS)로 받아
저장하게 처리해 주시면 해결하실 수 있을것 같습니다.
hhStime= Chart1.GetIndicatorData("stime",1,ffa);
이용에 불편을 드려 죄송합니다.
즐거운 하루되세요
> 로봇짱 님이 쓴 글입니다.
> 제목 : 유진예스트레이더 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 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 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증.
}
}