커뮤니티

수식 질문드립니다.

프로필 이미지
캣피쉬
2022-02-27 23:13:55
863
글번호 156784
답변완료
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);