커뮤니티

문의

프로필 이미지
목마와숙녀
2020-12-23 09:45:53
571
글번호 144877
답변완료
아래는 만기일 기준으로 날짜를 리턴하는 수식입니다. 같은 방식으로 매월 말일 기준으로 리턴하는 수식을 부탁드립니다. remain 0 이면 2020 12 31 remain 1 이면 2020 12 30 remain 2 이면 2020 12 29 remain 3 이면 2020 12 28 remain 4 이면 2020 12 27 remain 5 이면 2020 12 26 remain 6 이면 2020 12 25 remain 7 이면 2020 12 24 . . . ******************************************************************************* 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); } if remain == 1 or remain == 0 then { 진입청산 수식 }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-12-23 14:00:08

안녕하세요 예스스탁입니다. var : cnt(0),D0(0),D1(0),D2(0),D3(0),Lastday(0),remain(0); if Bdate != Bdate[1] Then { D0 = Floor(bDate/100)*100; For cnt = 1 to 31 { D1 = D0+cnt; D2 = DateToJulian(D1); D3 = Floor(JulianToDate(D2)/100)*100; if D0 == D3 Then Lastday = D1; } } if Lastday > 0 Then { remain = DateToJulian(Lastday)-DateToJulian(sDate); Plot1(remain); } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 문의 > 아래는 만기일 기준으로 날짜를 리턴하는 수식입니다. 같은 방식으로 매월 말일 기준으로 리턴하는 수식을 부탁드립니다. remain 0 이면 2020 12 31 remain 1 이면 2020 12 30 remain 2 이면 2020 12 29 remain 3 이면 2020 12 28 remain 4 이면 2020 12 27 remain 5 이면 2020 12 26 remain 6 이면 2020 12 25 remain 7 이면 2020 12 24 . . . ******************************************************************************* 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); } if remain == 1 or remain == 0 then { 진입청산 수식 }