답변완료
MessageBox
늘 수고 하십니다.
수식을 작성하다 문의가 있어서 이렇게 글을 올립니다.
<질문사항>
1. MessageBox가 별도의 창에 띄워지지 않고, 디버깅창에만 출력이 됩니다.
(제 컴퓨터 OS Window7 64)
2. 부동소수점 관련해서 아래 샘플 수식에서 처럼 어떤 수식을 계산해서 값의 차이가
선물 1틱(0.05) 이면 이라는 수식을 작성해서 주문을 낸다고 가정했을때, 실제 많은
로그에서 0.0499000000 이런식으로 찍힌다던가해서 실제로 조건이 만족을해도 주문이 나
가지 않는 경우가 있습니다.
아래처럼 toFixed(2)를 사용해서 조건을 비교하면 정상적으로 비교할 수 있으나,
toFixed 를 사용할때 가끔 값이 빈 Null이 발생할때 오류 보고창에 에러가 발생하는데,
(1) 원래 의도한 0.05 보다 작은 0.0499000000 이런식으로 계산이 되는 이유와 해결책
(선물의 가격을 단순히 차감한 가격에서 오류가 안났으면 합니다)
(2) toFixed를 사용했을때 값이 없을때의 오류처리 구문
function Main_OnStart()
{
var diff;
Main.MessageBox("HI"); // 박스로 띄워지지가 않음
// 부동소수점문제 Test
diff = 256.25 -Futures.current ; // 당시 선물 현재가 256.20
Main.MessageList("선물현재",Futures.current,"Test시세",256.15,"차이",diff);
Main.MessageList("선물현재",Futures.current,"Test시세",256.15,"차이",diff.toFixed(2));
if(diff == 0.05)
{
Main.MessageList("결과값 만족 ") ;
}
if(diff.toFixed(2) == 0.05)
{
Main.MessageList("결과값 만족 toFixed") ;
}
}
2013-09-07
835
글번호 222564
답변완료
문의드립니다.
자세한 답변 감사드립니다.
추가로 두 가지만 더 문의드립니다.
1. 주문가능한 콜옵션을 아래와 같이 계산을 한 후에..
Callcode = Option.GetATMCallRecent(2,0);
var Entryvol = Math.floor(Account1.GetBalanceETCinfo(30)/(Option.GetAskByCode(Callcode, 3)*500000));
Account1.OrderBuy(Callcode, Entryvol, Option.GetAskByCode(Callcode, 3), 0);
아래와 같은 청산식으로 정리할려고 하는데요. 12개가 아닌 현재 잔고보유량으로 청산을 할려면 어떻게 해야 하나요?
Account1.OrderSell(Callcode, 12, Option.GetBidByCode(Callcode, 3), 0);
2. 매수신호 발생 시 현재 잔고 보유금액의 매수가능수량이 아니라 5백만원어치 콜 수량을 살려면 어떻게 해야 하나요?
2013-09-05
815
글번호 222558
답변완료
수식 문의드립니다.
예스스팟으로 아래와 같이 수식을 짰는데요.
몇가지 질문사항이 있어서 문의드립니다.
===================================================================================
(예시)
var S1;
var MP;
var Callcode;
function Main_OnStart()
{
S1 = 0;
MP = 0;
}
function Chart1_OnRiseSignal(Signal)
{
S1 = Signal.signalKind;
if (S1 == 1)
{
Callcode = Option.GetATMCallRecent(1);
Account1.OrderBuy(Callcode, 5, Option.GetAskByCode(Callcode, 3), 0);
MP = 1;
==================================================================================
질문사항 1: "당일 오후 2시 이후부터 챠트에서 발생하는 신호는 진입하지 않는다.(당일 오후 2시에 청산한다는 것이 아니라 새로운 진입을 금지하는 것임)" 를 식으로 추가하고 싶은데요. 어떻게 해야 하나요?
질문사항 2: 예스스탓에서 저렇게 식을 작성해서 돌리면 당월물 옵션을 거래하게 되는데요. 혹시 차월물 옵션을 거래할려면 어떻게 해야 하나요?
질문사항 3: 상기 수식에 따르면 5개의 수량이 거래가 되는데, 주문가능수량으로 할려면 어떻게 해야 하나요?
2013-09-03
1049
글번호 222545