답변완료
호가 데이터를 받고자 하는데 작동이 안되고 있습니다.
안녕하세요.
호가 데이터를 받고자 하는데 작동이 안되고 있습니다.
코드에 어떠한 문제가 있는지 알수있을까요?
스크립트 객체는 총 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);
}
}
}
}
2021-01-19
2780
글번호 225400
답변완료
수식 관련
안녕하세요.
제가 첨부한 식은 차트에서 매수청산신호 또는 매도신호 발생 시에 보유 중인 콜옵션 전량 청산하는 식인데요.
하기 첨부한 식을 시험주문을 한 결과,
주문가격에 "1.-214789786" 이란 값이 뜨고 청산이 되지 않는 듯 합니다.
오류가 무엇인지 알려주시면 감사하겠습니다.
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (M1.code == sItemCode)
{
if ( (BuyCond == 19) || ( BuyCond == 9 && C2.GetIndicatorData("CCI", 1, 0) <= C2.GetIndicatorData("CCI", 2, 0) ) )
{
BuyCond = 111;
Main.MessageList("BuyCond:" ,BuyCond);
/* 계좌 보유 종목수 */
var num = A1.GetTheNumberOfBalances();
for (var i = 0; i < num; i++)
{
/* 순서대로 종목셋팅 */
A1.SetBalance(i);
/* 셋팅된 종목이 옵션인지 확인 */
if (Option.GetCurrent(A1.Balance.code) > 0)
{
/* 매수포지션 수량이 있으면 */
if (A1.Balance.count > 0 && A1.Balance.position == 2)
{
/* 매도3호가로 전량 청산 */
A1.OrderSell(A1.Balance.code, A1.Balance.count,Option.GetAsk(Callcode, 3), 0);
}
}
}
}
2021-01-18
2751
글번호 225399