답변완료
시스템 수식 수정 문의
0915시에 "분봉장중단타1.5" 파워검색 실시 후 나온 종목들에 대해 시스템을 실행하려고 합니다.
아래와 같이 코딩했는데... 어디가 문제인지 모르겠습니다. ㅜㅡ
var List;
var ListCnt;
var ReqCount;
var HHMMSS,HHMMSS1;
//스팟 첫 실행시
function Main_OnStart()
{
Main.MessageLog("시작"); //시작 메세지 출력
Main.SetTimer(1,60000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var d = new Date();
HHMMSS1 = HHMMSS;
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS >= 093000 && HHMMSS1 < 0930) // 0930시 파워검색 실시
{
Main.ReqPowerSearch("분봉장중단타1.5");
Main.MessageLog("파워검색시작");
Main.KillTimer(1);
}
}
}
function Main_OnRcvItemList(aItemList, nCount) //종목검색 완료되어 리스트(검색된 종목코드) 수신
{
List = aItemList; //검색된 종목코드를 저장
ListCnt = nCount; //검색된 종목수 저장
Main.SetTimer(2,2000);//2초 타이머
ReqCount = 0;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 2) //2초 단위로 한종목씩 차트 생성
{
if (ReqCount == ListCnt) //요청이 검색된 종목수 만큼 되었으면 터이머 종료
Main.KillTimer(2);
//ReqCount번째 종목요청
//종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청
//차트설정 :종목, 주기 분봉, 조회건수 1500
var C1 = new ReqChartItem(List[ReqCount], 1, CHART_PERIOD_MINUTE, 1500, CHART_REQCOUNT_BAR, false, false);
//시스템 설정
var S1 = new SystemInfo("feel29na_ver_1.0");
//C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성
Main.ReqChartEx(C1,S1);
ReqCount = ReqCount+1;//요청횟수 1증가
}
}
//생성된 차트에서 신호가 발생하면
function Main_OnRiseSignal(ChartEx, Signal)
{
//신호완성 출력
Main.MessageLog("신호발생");
//매수신호 발생하면 매수주문
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수");
}
//청산신호 발생하면 매도주문
if (Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수청산");
}
}
2020-08-17
2314
글번호 225298
답변완료
수식 점검 좀 해 주세요^^;;
3.0 근접 옵션 매수식인데..
예스스팟에서 실행하면 12번째 줄이 ubexpected token;; 이라고 나오네요..
12번째줄이 요놈...
function Main::OnStart()
혹시 수식연습할 수 있는데 예제들이 있나요?
----------------------------------------------------------
var CPrice = new Array(101);
var CCode = new Array(101);
var PPrice = new Array(101);
var PCode = new Array(101);
var MaxCall;
var MaxCallCode;
var MaxPut;
var MaxPutCode;
function Main::OnStart()
{
//ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리
for(var i = -50; i <= 50; i++)
{
if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0)
{
CPrice[50+i] = Option.GetCurrent(0,i);
CCode[50+i] = Option.GetATMCallRecent(i);
}
else
{
CPrice[50+i] = -1;
CCode[50+i] = -1;
}
if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0)
{
PPrice[50+i] = Option.GetCurrent(1,i);
PCode[50+i] = Option.GetATMPutRecent(i);
}
else
{
PPrice[50+i] = -1;
PCode[50+i] = -1;
}
}
//저장된 CPrice, PPrice값중 최고값 계산
MaxCall = -1;
MaxCallcode = -1;
MaxPut = -1;
MaxPutcode = -1;
for(var A = 0; A <= 100; A++)
{
if (CPrice[A] > MaxCall)
{
MaxCall = CPrice[A];
MaxCallcode = CCode[A];
}
if (PPrice[A] > MaxPut)
{
MaxPut = PPrice[A];
MaxPutcode = PCode[A];
}
}
Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode);
Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode);
}
2020-07-27
1976
글번호 225289
답변완료
가격 호가 데이터를 엑셀로 내려받고 싶습니다
엑셀로 틱 데이터를 보내는 방법이 궁금합니다.
삼성전자선물 매수 1호가, 매수1호가의 거래량, 매도 1호가, 매도1호가의 거래량, 현재가, 삼성전자주식 매수 1호가, 매수1호가의 거래량, 매도 1호가, 매도 1호가의 거래량, 현재가,
이렇게 a2셀~j2셀 부터
아래로 쭉 엑셀로 다운받는 코딩을 부탁드립니다.
첫번째 틱 발생 시(틱으로 구현이 안되면 분으로 구현해도 됩니다)
A2 셀 : 삼성전자선물 매수1호가의 가격
B2 셀 : 삼성전자선물 매수1호가의 거래량
C2 셀 : 삼성전자선물 매도1호가의 가격
D2 셀 : 삼성전자선물 매도1호가의 거래량
E2 셀 : 삼성전자선물 현재가 (이게 없다면 E2셀은 그냥 넘어가셔도 됩니다)
F2 셀 : 삼성전자주식 매수1호가의 가격
G2 셀 : 삼성전자주식 매수1호가의 거래량
H2 셀 : 삼성전자주식 매도1호가의 가격
I2 셀 : 삼성전자주식 매도1호가의 거래량
J2 셀 : 삼성전자주식 현재가 (이게 없다면 J2셀은 그냥 넘어가셔도 됩니다)
두번째 틱 발생 시
A3
B3
C3
D3
E3
...
세번째 틱 발생 시
A4
B4
C4
D4
E4
...
2020-07-23
2639
글번호 225287
답변완료
문의 드립니다.
항상 노고의 감사드립니다.
랭귀지 가이드로 스팟구현을 하려고하는데 너무 초보라 많이 부족합니다.
[밑에 랭귀지식을 스팟으로 가이드 부탁드립니다.]챠트객체없이 잔고객체만 추가해서 구현하려합니다.
종목수는 10-15개 종목정도....
매수/매도의 (%수치만) 외부객체로 가능하면 부탁드립니다.
또한 매수 총금액의 범위는 "전날종가기준평가금액"의 50%이하입니다.
input : ndate(),전날종가기준평가금액();//<==CurrentContracts*C(1)??
if sdate >= ndate Then
{ if MarketPosition == 0 Then
buy();//<==(매수는 수동매수입니다.)
if MarketPosition == 1 Then
{ if CurrentContracts*C > (전날종가기준평가금액*1.05) Then//<==1.05는 외부객체로 부탁드립니다.
{ ExitLong("매도종목코드",OnClose,def,"",int(abs(전날종가기준평가금액-(CurrentContracts*C))/C),시장가); }
if CurrentContracts*C < (전날종가기준평가금액*0.95) Then//<==0.95는 외부객체로 부탁드립니다.
{ Buy("매수종목코드",OnClose,def,int(abs(전날종가기준평가금액-(CurrentContracts*C))/C),시장가); } } }
2020-07-31
2738
글번호 225284