옵션 다음 만기일까지 남은 잔존일을 계산하는 지표입니다.
Var : Year(0),Month(0),ndate1(0),ndate2(0);
var : cnt(0),count1(0),count2(0);
var : XD1(0),XD2(0),Xdate(0),remain(0);
//날짜에서 연도만 추출해서 YYYY0000으로 만듬
Year = Floor(sDate / 10000)*10000;
//날짜에서 월만 추출해서 MM00으로 만듬
month = Floor(FracPortion(sdate/10000)*100)*100;
#이번달 1일 날짜
ndate1 = year+month+1;
//다음달 1일 날짜 계산
//12월 전이면
if Month+100 <= 1200 Then
{
//이번달 1일 날짜에 월만 1 증가
ndate2 = year+(month+100)+1;
}
Else //12월이면
{
//다음연도 1월 1일로 정함
ndate2 = (year+10000)+100+1;
}
//이번달과 다음달 두번쨰 목요일의 날짜 계산
count1 = 0;
count2 = 0;
for cnt = 0 to 15
{
if dayofweek(ndate1+cnt) == 4 Then
{
count1 = count1+1;
if count1 == 2 Then
{
XD1 = ndate1+cnt;
}
}
if dayofweek(ndate2+cnt) == 4 Then
{
count2 = count2+1;
if count2 == 2 Then
{
XD2 = nDate2+cnt;
}
}
}
//오늘 날짜가 이번달 만기일 전이면 이번달 만기일
if sDate <= XD1 Then
{
Xdate = XD1;
}
Else //오늘 날짜가 이번달 만기일 이후이면 다음달 만기일
{
Xdate = XD2;
}
if Xdate > 0 Then
{
//잔존일 = 만기일의 줄리안데이트와 오늘날짜의 줄리안데이터의 차이값
remain = DateToJulian(Xdate)-DateToJulian(sDate);
Plot1(remain);
}
JavaScript
복사