안녕하세요.
다음 수식 부탁드립니다.
------------------------------
<1>
예스스팟에서
MarketData1 는 K200 지수이고,
옵션 행사가격을 결정하기 위하여
다음과 같이 수식이 작성되어 있습니다.
PP = (Math.floor(MarketData1.current/2.5)*2.5);
이때 행사가격(PP)이 260, 265, 270 과 같이 5로 나누었을 때 나머지가 0 인 행사가격과
262.50, 267.50, 272.50 과 같이 5로 나누었을 때 나머지가 2.50 인 행사가격을
구분하고자 합니다.
<2>
예스스팟에서
데이트레이딩이 아닌 포지션매매일 경우
진입횟수를 제한하고자 합니다.
제 생각으로는 Main.GetUserValue 함수를 사용하여
거래횟수를 기억시켜서 사용해야 될 것 같은데,
위의 방법 또는 다른 간단한 방법이 있으면
수식 부탁드립니다. (포지션매매, 진입횟수 3회로 제한)
---------------------------
그럼 오늘도 즐거운 시간되세요~
감사합니다 !!!
답변 1
예스스탁
예스스탁 답변
2015-05-21 19:01:05
안녕하세요
예스스탁입니다.
1.
2.5단위만 소숫점 아래에 값이 있고 반올림하면 PP값보다 커지므로
아래와 같이 반올림함수로 비교해서 만드시면 됩니다.
var PP;
var T;
function Main_OnStart()
{
PP = (Math.floor(MarketData1.current/2.5)*2.5);
if (PP == Math.round(PP))
T = 5;
else
T = 2.5
Main.MessageList(PP,Math.round(PP),T)
}
2.
예 GetUserValue로 내부파일에 값을 저장해서 제어하셔야 합니다.
아래와 같이 처리하시면
진입시 내부파일의 ECount에서 값을 가져와 EntryCount변수에 저장하고
해당 값을 비교해서 진입을 결정합니다.
최초에 첫진입전에는 아직 내부파일 ECount 에 저장된 변수가 없으므로 ""입니다.
//진입조건이 있는 이벤트
function 이벤트
{
if (매수진입조건)
{
var EntryCount = Main.GetUserValue("ECount");
if (EntryCount < 3)
{
Account1.OrderBuy(sItemCode, nCount, dPrice, nPriceKind);
EntryCount = EntryCount+1;
Main.SetUserValue("ECount", EntryCount);
}
}
if (매도진입조건)
{
var EntryCount = Main.GetUserValue("ECount");
if (EntryCount < 3)
{
Account1.OrderSell(sItemCode, nCount, dPrice, nPriceKind);
EntryCount = EntryCount+1;
Main.SetUserValue("ECount", EntryCount);
}
}
}
즐거운 하루되세요
> 새로운세상 님이 쓴 글입니다.
> 제목 : 옵션 행사가 구분
> 안녕하세요.
다음 수식 부탁드립니다.
------------------------------
<1>
예스스팟에서
MarketData1 는 K200 지수이고,
옵션 행사가격을 결정하기 위하여
다음과 같이 수식이 작성되어 있습니다.
PP = (Math.floor(MarketData1.current/2.5)*2.5);
이때 행사가격(PP)이 260, 265, 270 과 같이 5로 나누었을 때 나머지가 0 인 행사가격과
262.50, 267.50, 272.50 과 같이 5로 나누었을 때 나머지가 2.50 인 행사가격을
구분하고자 합니다.
<2>
예스스팟에서
데이트레이딩이 아닌 포지션매매일 경우
진입횟수를 제한하고자 합니다.
제 생각으로는 Main.GetUserValue 함수를 사용하여
거래횟수를 기억시켜서 사용해야 될 것 같은데,
위의 방법 또는 다른 간단한 방법이 있으면
수식 부탁드립니다. (포지션매매, 진입횟수 3회로 제한)
---------------------------
그럼 오늘도 즐거운 시간되세요~
감사합니다 !!!