답변완료
종목검색식 문의
안녕하세요.
아래 질문에 대해 구버전에서는 아래과 같은 답변을 받아서 구현을 했었는데요.
신버전에서는 동작하지 않는것 같습니다.
신버전 구현식 부탁 드립니다.
-------------------------------------------------------------------------
[질문]
볼린저 밴드 값을 이용하여 종목검색식 작성시,
볼린저밴드 값이 존재하는지의 여부는 어떻게 판단하나요?
예를 들면 상장된지 얼마 안되어 240일 볼린저 밴드값이 존재하지 않는 경우,
이를 수식에서 판단 할수 있는 방법이 궁금합니다.
[답변 : 구버전 구현식]
식상 지정한 봉수가 충족되지 못하는 종목은
해당 값을 계산할 수 없으므로 조건에 만족하지 못하므로 자동으로 제외됩니다.
따로 수식적으로 해당 부분에 대해 내용을 추가하시고자 하시면
종목검색 속성화면에서 검색에 필요한 봉갯수를 500으로 설정 하시고
아래와 같이 인덱스를 이용해 식을 구분해서 작성하시면 됩니다.
input : P(240),dv(2);
var1 = BollBandUp(P,dv);
if crossup(c,var1) and index > P Then
find(1);
-------------------------------------------------------------------------
수고하세요.
2012-11-14
2454
글번호 221721
답변완료
주문 오류
하기와 같이 마감동시호가 청산을 위하여 작성된 코드이고
정상적으로 동작하는 것으로 알고 있는 코드입니다.
실제로 주문도 내고 있고요..
예스스탁에서도 유사한 코드를 샘플로 배포한 바 있습니다.
오늘 장마감 무렵 선물 매도주문이 있는 상태에서
PC시각으로 150601에 시장가매수주문이 아니라
시장가 매도주문이 발생하였습니다.
주문을 꼼꼼히 챙기지 않았으면 대량포지션을 오버할 뻔 했네요...
왜 이런 오류가 발생하였는지요? 확인 부탁드립니다.
function Main_OnStart()
{
Main.SetTimer(1, 5000); //5초마다
}
function Main_OnTimer(nEventID)
{
// 날짜 추출
var d = new Date();
var HHMMDD = d.getHours()*10000 + d.getMinutes()*100 + d.getSeconds();
if (nEventID == 1 && HHMMDD >= 150600)
{
Main.KillTimer(1);
Main.MessageLog("주문시간: " + HHMMDD);
num = Account1.GetTheNumberOfBalances(); //종목수
for(var i = 0; i < num; i++)
{
Account1.SetBalanceIndex(i); //해당종목 수량 잔고세팅
if (Account1.Balance.position == 1)
var nID = Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count,0,1);
if (Account1.Balance.position == 2)
var nID = Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,0,1);
}
}
}
2012-11-15
2443
글번호 221720