monthly
만기일까지 남은날짜
뽑아내는 함수 혹시있나요?
만기일 포함해서 만기주 만기전주 10거래일만 매매하려면 어떻게하면 될까요??
들쑥날쑥 구현하기 쉽지않네요 감사합니다.
var : month(0),nday(0),week(0),TL(0);
var : condiw(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
if sDate != sDate[1] Then
{
condiw = 0;
}
#if nday >= 8 and nday <= 14 and week == 4 Then condiw=1;
if nday >= 7 and nday <= 13 and week == 3 Then condiw=1;
else if nday >= 6 and nday <= 12 and week == 2 Then condiw=1;
else if nday >= 5 and nday <= 11 and week == 1 Then condiw=1;
else if nday >= 2 and nday <= 8 and week == 5 Then condiw=1;
else if nday >= 1 and nday <= 7 and week == 4 Then condiw=1;
else if nday >= 1 and nday <= 6 and week == 3 Then condiw=1;
else if nday >= 1 and nday <= 5 and week == 2 Then condiw=1;
else if nday >= 1 and nday <= 4 and week == 1 Then condiw=1;
else if nday >= 1 and nday <= 1 and week == 5 Then condiw=1;
else if nday >= 23 and nday <= 29 and week == 5 Then condiw=1;
else if nday >= 24 and nday <= 30 and week == 1 Then condiw=1;
else if nday >= 25 and nday <= 31 and week == 2 Then condiw=1;
else if nday >= 26 and nday <= 31 and week == 3 Then condiw=1;
else if nday >= 27 and nday <= 31 and week == 4 Then condiw=1;
else if nday >= 28 and nday <= 31 and week == 5 Then condiw=1;
else if nday >= 31 and nday <= 31 and week == 1 Then condiw=1;
Else condiw ==0;
#옵션만기
if nday >= 8 and nday <= 14 and week == 4 and sTime >= 150000 and sTime[1] < 150000 then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,9999999);
TL_SetColor(TL,RED);
}
#선물만기
if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 and sTime >= 150000 and sTime[1] < 150000 then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,9999999);
TL_SetColor(TL,BLUE);
}
Plot1(condiw);
답변 1
예스스탁
예스스탁 답변
2022-02-28 13:41:34
안녕하세요
예스스탁입니다.
랭귀이제 휴일등 정보가 없어 달력상 며칠남았는지로만 계산이 됩니다.
아래식 참고하시기 바랍니다.
옵션만기일기준 달력상 며칠남았는지 계산하게 됩니다.
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);
Year = Floor(sDate / 10000)*10000;
month = Floor(FracPortion(sdate/10000)*100)*100;
ndate1 = year+month+1;
if Month+100 <= 1200 Then
ndate2 = year+(month+100)+1;
Else
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);
}
즐거운 하루되세요
> 캣피쉬 님이 쓴 글입니다.
> 제목 : 수식 질문드립니다.
> monthly
만기일까지 남은날짜
뽑아내는 함수 혹시있나요?
만기일 포함해서 만기주 만기전주 10거래일만 매매하려면 어떻게하면 될까요??
들쑥날쑥 구현하기 쉽지않네요 감사합니다.
var : month(0),nday(0),week(0),TL(0);
var : condiw(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
Week = DayOfWeek(date);
if sDate != sDate[1] Then
{
condiw = 0;
}
#if nday >= 8 and nday <= 14 and week == 4 Then condiw=1;
if nday >= 7 and nday <= 13 and week == 3 Then condiw=1;
else if nday >= 6 and nday <= 12 and week == 2 Then condiw=1;
else if nday >= 5 and nday <= 11 and week == 1 Then condiw=1;
else if nday >= 2 and nday <= 8 and week == 5 Then condiw=1;
else if nday >= 1 and nday <= 7 and week == 4 Then condiw=1;
else if nday >= 1 and nday <= 6 and week == 3 Then condiw=1;
else if nday >= 1 and nday <= 5 and week == 2 Then condiw=1;
else if nday >= 1 and nday <= 4 and week == 1 Then condiw=1;
else if nday >= 1 and nday <= 1 and week == 5 Then condiw=1;
else if nday >= 23 and nday <= 29 and week == 5 Then condiw=1;
else if nday >= 24 and nday <= 30 and week == 1 Then condiw=1;
else if nday >= 25 and nday <= 31 and week == 2 Then condiw=1;
else if nday >= 26 and nday <= 31 and week == 3 Then condiw=1;
else if nday >= 27 and nday <= 31 and week == 4 Then condiw=1;
else if nday >= 28 and nday <= 31 and week == 5 Then condiw=1;
else if nday >= 31 and nday <= 31 and week == 1 Then condiw=1;
Else condiw ==0;
#옵션만기
if nday >= 8 and nday <= 14 and week == 4 and sTime >= 150000 and sTime[1] < 150000 then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,9999999);
TL_SetColor(TL,RED);
}
#선물만기
if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 and sTime >= 150000 and sTime[1] < 150000 then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,9999999);
TL_SetColor(TL,BLUE);
}
Plot1(condiw);