커뮤니티

호가 데이터를 받고자 하는데 작동이 안되고 있습니다.

프로필 이미지
퀀트드래곤
2021-01-19 11:08:36
2736
글번호 225400
답변완료
안녕하세요. 호가 데이터를 받고자 하는데 작동이 안되고 있습니다. 코드에 어떠한 문제가 있는지 알수있을까요? 스크립트 객체는 총 4개(MAIN, MarketData1, MarketDate2, AA(엑셀객체)) 입니다. Market Data1은 코스피 선물 3월물 Market Data2는 KODEX200 입니다. 그리고 타이머는 1초에 한번씩 잘 찍히게 셋팅된걸까요? 아래의 수식대로 복사 붙여넣기 한 후 -> 시스템트레이딩 -> 예스스팟 -> 해당 전략 더블클릭 -> (스팟 전략 설정 창에서)'시험적용' 클릭 이렇게 해서 엑셀창 까지는 떴는데 아무것도 안찍히네요. 도움 부탁드립니다. --------------------------------------------------------------------- var KOSPI200 = 2; var KODEX200 = 2; function Main_OnStart() { Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--시작--"); var D = new Date(); var hh = D.getHours(); var mm = D.getMinutes(); if (hh > 09 && mm > 01) { Main.SetTimer(1, 1000); Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--타이머셋--"); TimeCount = 0; } } function Main_OnTimer(nEventID) { function Main_OnUp*dateMarket(sItemCode, lUp*dateID) / * 제거 { if (lUp*dateID == 20001) / *제거 { if (sItemCode == MarketData1.code) { KOSPI200 = KOSPI200+1; Excel1.SetData(1, "A"+KOSPI200,MarketData1.Bid(1)); Excel1.SetData(1, "B"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "C"+KOSPI200,MarketData1.Ask(1)); Excel1.SetData(1, "D"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "E"+KOSPI200,MarketData1.current); } if (sItemCode == MarketData2.code) { KODEX200 = KODEX200+1; Excel1.SetData(1, "F"+KODEX200,MarketData2.Bid(1)); Excel1.SetData(1, "G"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "H"+KODEX200,MarketData2.Ask(1)); Excel1.SetData(1, "I"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "J"+KODEX200,MarketData2.current); } } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-02-26 14:25:18

안녕하세요 예스스탁입니다. 이벤트 안에 이벤트를 위치하시면 안됩니다. 타이머동작시 출력하시려면 1번식과 같이 작성하셔야 하고 종목객체 호가나 시세변동시 출력하고자 하시면 2번식과 같이 작성해 사용해야 합니다. 시세나 호가변동은 건수가 많아 부하가 많이 걸릴수 있으므로 주의하시기 바랍니다. 1 var KOSPI200 = 2; var KODEX200 = 2; function Main_OnStart() { Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--시작--"); var D = new Date(); var hh = D.getHours(); var mm = D.getMinutes(); if (hh > 09 && mm > 01) { Main.SetTimer(1, 1000); Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--타이머셋--"); TimeCount = 0; } } function Main_OnTimer(nEventID) { Main.MessageList("OnTimer"); KOSPI200 = KOSPI200+1; Excel1.SetData(1, "A"+KOSPI200,MarketData1.Bid(1)); Excel1.SetData(1, "B"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "C"+KOSPI200,MarketData1.Ask(1)); Excel1.SetData(1, "D"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "E"+KOSPI200,MarketData1.current); KODEX200 = KODEX200+1; Excel1.SetData(1, "F"+KODEX200,MarketData2.Bid(1)); Excel1.SetData(1, "G"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "H"+KODEX200,MarketData2.Ask(1)); Excel1.SetData(1, "I"+KODEX200,MarketData2.AskAmount(1)); } 2 var KOSPI200 = 2; var KODEX200 = 2; function Main_OnStart() { Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--시작--"); var D = new Date(); var hh = D.getHours(); var mm = D.getMinutes(); } function Main_OnUp*dateMarket(sItemCode, lUp*dateID) { if (sItemCode == MarketData1.code) { Main.MessageList("OnUp*dateMarket"); KOSPI200 = KOSPI200+1; Excel1.SetData(1, "A"+KOSPI200,MarketData1.Bid(1)); Excel1.SetData(1, "B"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "C"+KOSPI200,MarketData1.Ask(1)); Excel1.SetData(1, "D"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "E"+KOSPI200,MarketData1.current); } if (sItemCode == MarketData2.code) { KODEX200 = KODEX200+1; Excel1.SetData(1, "F"+KODEX200,MarketData2.Bid(1)); Excel1.SetData(1, "G"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "H"+KODEX200,MarketData2.Ask(1)); Excel1.SetData(1, "I"+KODEX200,MarketData2.AskAmount(1)); } } 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 호가 데이터를 받고자 하는데 작동이 안되고 있습니다. > 안녕하세요. 호가 데이터를 받고자 하는데 작동이 안되고 있습니다. 코드에 어떠한 문제가 있는지 알수있을까요? 스크립트 객체는 총 4개(MAIN, MarketData1, MarketDate2, AA(엑셀객체)) 입니다. Market Data1은 코스피 선물 3월물 Market Data2는 KODEX200 입니다. 그리고 타이머는 1초에 한번씩 잘 찍히게 셋팅된걸까요? 아래의 수식대로 복사 붙여넣기 한 후 -> 시스템트레이딩 -> 예스스팟 -> 해당 전략 더블클릭 -> (스팟 전략 설정 창에서)'시험적용' 클릭 이렇게 해서 엑셀창 까지는 떴는데 아무것도 안찍히네요. 도움 부탁드립니다. --------------------------------------------------------------------- var KOSPI200 = 2; var KODEX200 = 2; function Main_OnStart() { Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--시작--"); var D = new Date(); var hh = D.getHours(); var mm = D.getMinutes(); if (hh > 09 && mm > 01) { Main.SetTimer(1, 1000); Main.MessageList(getYYYYMMDD(),getHHMMSSS(),"--타이머셋--"); TimeCount = 0; } } function Main_OnTimer(nEventID) { function Main_OnUp*dateMarket(sItemCode, lUp*dateID) / * 제거 { if (lUp*dateID == 20001) / *제거 { if (sItemCode == MarketData1.code) { KOSPI200 = KOSPI200+1; Excel1.SetData(1, "A"+KOSPI200,MarketData1.Bid(1)); Excel1.SetData(1, "B"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "C"+KOSPI200,MarketData1.Ask(1)); Excel1.SetData(1, "D"+KOSPI200,MarketData1.AskAmount(1)); Excel1.SetData(1, "E"+KOSPI200,MarketData1.current); } if (sItemCode == MarketData2.code) { KODEX200 = KODEX200+1; Excel1.SetData(1, "F"+KODEX200,MarketData2.Bid(1)); Excel1.SetData(1, "G"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "H"+KODEX200,MarketData2.Ask(1)); Excel1.SetData(1, "I"+KODEX200,MarketData2.AskAmount(1)); Excel1.SetData(1, "J"+KODEX200,MarketData2.current); } } } }