답변완료
호가 데이터를 받고자 하는데 작동이 안되고 있습니다.
안녕하세요.
호가 데이터를 받고자 하는데 작동이 안되고 있습니다.
코드에 어떠한 문제가 있는지 알수있을까요?
스크립트 객체는 총 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
2735
글번호 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
2708
글번호 225399
답변완료
문의드립니다.
안녕하세요..
주식거래중이며 예스랭귀지 시스템에서 신호가 나오면
스팟에서 확장차트를 만들어서 매매를 하고 있습니다.
시스템을 분할매도가 들어가게 바꾸었습니다.
그래서 한번 샀지만, 지표신호에 따라서 매도 신호가 나올때마다
보유수량을 일부씩 청산해갑니다.
(차트에서는 정상적으로 나옵니다)
그런데 스팟에서는 매도신호를 받으면
아래의 식으로 매도를 하는데요
Acoount1.OrderSell(Main.GetOrderCode(ChartEx.code(1)),Account1.Balance.count,ChartEx.GetClose(1,0),0);
스팟은 차트에서의 매도신호에 담긴 <수량>이 분할이건, 전량이건 구분하지 않고
매도신호까지만 읽고 보유한 수량 전부를 청산 할수 밖에 없는 것인가요
그래서 분할청산을 하려면 랭귀지의 분할매도 신호와는 별개로
스팟에서 아예 따로 보유수량에 근거한 매도물량을 작성해야 하는 것인가요
1>
한마디로 차트에서 분할매도로 수식을 작성한게 스팟에서는 사용할수 없는 것인가요?
뭔가 그대로 사용할 수 잇는 해결책이 있을가 싶어서 문의드립니다..
차트 신호에 최대한 가깝게 분할매도 하는 방법이 있을가요
안될경우 차트에서 매도신호나오면 , 동시에 n프로 수익중일때 분할익절 두번,
다시 신호나오면 전량청산
이렇게 확장차트에서 나오는 매도신호 + 잔고수익률 확인해서 청산수량을
3분할하는 방법좀 알려주세요..
꼭좀 부탁드리겠습니다.
2021-01-13
2723
글번호 225394