파워종목검색 후 검색결과로 나온 종목을 매수하는 스팟식을 작성중입니다
종목별 진입시간과 진입이후 최고가를 저장해놓고 스팟식을 시작할 때마다
보유종목리스트 조회해서
각 보유종목별 진입시간, 진입이후 최고가를 불러내서 사용하고 싶습니다
답변 주시면 감사하겠습니다
답변 1
예스스탁
예스스탁 답변
2016-06-02 19:14:00
안녕하세요
예스스탁입니다.
스팟의 변수는 휘발성입니다.
프로그램이 종료되면 사라지므로
Main.SetUserValue(sName, sValue)라는 함수를 이용해
해당 값들을 내부파일에 저장하셔야 합니다.
아래 내용 참고하시기 바랍니다.
var MK = [];
var rcv;
//스팟 시작시
function Main_OnStart()
{
rev = 0;
//잔고보유종목 종목객체 모두 요청
var num = Account1.GetTheNumberOfBalances();
for (var i = 0; i < num; i++)
{
Account1.SetBalance(i);
if (Account1.Balance.count > 0)
{
//종목객체 요청
Main.ReqMarketData(Account1.Balance.code);
}
}
}
//계좌에 변동발생
function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID)
{
//계좌에 새로운 종목 추가
if (sAccntNum == Account1.number && lUp*dateID == 30001)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
var YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();
//진입날짜를 내부파일에 date종목코드를 이름으로 저장
//예를 들어 삼성전자이면 D035930 과 같이 변수명을 만들어 값을 저장
Main.SetUserValue("D"+sItemCode,YYYYMMDD);
//진입시간을 내부파일에 date종목코드를 이름으로 저장
//예를 들어 삼성전자이면 T035930 과 같이 변수명을 만들어 값을 저장
Main.SetUserValue("T"+sItemCode,HHMMSS);
//진입시간을 내부파일에 HH종목코드를 이름으로 저장
//예를 들어 삼성전자이면 H035930 과 같이 변수명을 만들어 값을 저장
Main.SetUserValue("H"+sItemCode,0);
//종목객체 요청
Main.ReqMarketData(sItemCode);
}
//계좌에 종목이 삭제(매도되어 잔고에서 빠짐) 추가
if (sAccntNum == Account1.number && lUp*dateID == 30001)
{
//내부저장변수의 이름자체를 제거할수는 없으므로 모두 0으로 셋팅
//진입날짜를 내부파일에 date종목코드를 이름으로 저장
Main.SetUserValue("D"+sItemCode,0);
//진입시간을 내부파일에 date종목코드를 이름으로 저장
Main.SetUserValue("T"+sItemCode,0);
//진입시간을 내부파일에 HH종목코드를 이름으로 저장
Main.SetUserValue("H"+sItemCode,0);
}
}
function Main_OnRcvMarketData(MarketData)
{
//수신되는 순서로 0번방 부터 종목객체 저장
MK[rcv] = MarketData;
rcv = rcv+1;
}
//종목객체 중 변동발생
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)
{
//체결시세가 들어오고 수신된 종목객체가 있을때
if (lUp*dateID == 20001 && MK.length >= 1 )
{
//해당종목의 최고가 불러와 HH에 저장
var HH = Main.GetUserValue("H"+sItemCode);
for (var i = 0; i < MK.length; i++)
{
//종목객체 중 현재 변동이 발생한 종목을 찾고 현재가가 HH보다 크면
//내부저장변수에 현재가로 값을 변경
if (MK[i].code == sItemCode && MK[i].current > HH)
Main.SetUserValue("H"+sItemCode,MK[i].current);
}
}
}
즐거운 하루되세요
> 훈sys 님이 쓴 글입니다.
> 제목 : 매수종목에 대한 정보 저장 문의
> 파워종목검색 후 검색결과로 나온 종목을 매수하는 스팟식을 작성중입니다
종목별 진입시간과 진입이후 최고가를 저장해놓고 스팟식을 시작할 때마다
보유종목리스트 조회해서
각 보유종목별 진입시간, 진입이후 최고가를 불러내서 사용하고 싶습니다
답변 주시면 감사하겠습니다