커뮤니티

지수갭4(data1 옵션사용)

프로필 이미지
목마와숙녀
2021-12-16 11:40:16
769
글번호 154449
답변완료
아래식은 data1에 선물을 사용할 때 수식입니다. data1을 옵션을 사용하면 지수갭 산출을 위해서 data2는 kospi200지수를 data3에 국내선물을 배치해야 합니다. 위 내용에 따른 수식 변경을 요청드립니다. *************************************************************************** input:만기기준일(0); 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); } input: 지수갭1(10),지수갭2(-10); var : MM(0,Data2),nday(0,Data2),week(0,data2); var : X(False,Data2),cond(False,Data2); var : DD(0,Data2),C2(0,Data2); mm = data2(int(date/100)-int(date/10000)*100); nday = data2(date - int(date/100)*100); Week = data2(DayOfWeek(date)); #옵션만기일 if (nday >= 8 and nday <= 14 and week == 4) then X = true; Else X = False; if data2(bdate != Bdate[1]) Then { if X == false and X[1] == true Then { C2 = 0; cond = true; dd = 0; } if cond ==true Then dd = dd+1; } #만기다음날 Data2 종가 if cond == true and dd == 1 Then C2 = data2(C); if remain == 만기기준일 then { if dd > 1 and C2 > 0 and 지수갭1 > Data2(Opend(0)-C2) and Data2(Opend(0)-C2) > 지수갭2 and c > dayopen + 0.05 Then Buy(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-12-14 10:11:40

안녕하세요 예스스탁입니다. input:만기기준일(0); Var : Year(0,Data3),Month(0,Data3),ndate1(0,Data3),ndate2(0,Data3); var : cnt(0,Data3),count1(0,Data3),count2(0,Data3); var : XD1(0,Data3),XD2(0,Data3),Xdate(0,Data3),remain(0,Data3); Year = data3(Floor(sDate / 10000)*10000); month = data3(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 data3(sDate <= XD1) Then { Xdate = XD1; } Else { Xdate = XD2; } if Xdate > 0 Then { remain = DateToJulian(Xdate)-DateToJulian(sDate); } input: 지수갭1(10),지수갭2(-10); var : MM(0,Data2),nday(0,Data2),week(0,data2); var : X(False,Data2),cond(False,Data2); var : DD(0,Data2),C2(0,Data2); mm = data2(int(date/100)-int(date/10000)*100); nday = data2(date - int(date/100)*100); Week = data2(DayOfWeek(date)); #옵션만기일 if (nday >= 8 and nday <= 14 and week == 4) then X = true; Else X = False; if data2(bdate != Bdate[1]) Then { if X == false and X[1] == true Then { C2 = 0; cond = true; dd = 0; } if cond ==true Then dd = dd+1; } #만기다음날 Data2 종가 if cond == true and dd == 1 Then C2 = data2(C); if remain == 만기기준일 then { if dd > 1 and C2 > 0 and 지수갭1 > Data2(Opend(0)-C2) and Data2(Opend(0)-C2) > 지수갭2 and c > dayopen + 0.05 Then Buy(); } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 문의 > 아래식은 data1에 선물을 사용할 때 수식입니다. data1을 옵션을 사용하면 지수갭 산출을 위해서 data2는 kospi200지수를 data3에 국내선물을 배치해야 합니다. 위 내용에 따른 수식 변경을 요청드립니다. *************************************************************************** input:만기기준일(0); 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); } input: 지수갭1(10),지수갭2(-10); var : MM(0,Data2),nday(0,Data2),week(0,data2); var : X(False,Data2),cond(False,Data2); var : DD(0,Data2),C2(0,Data2); mm = data2(int(date/100)-int(date/10000)*100); nday = data2(date - int(date/100)*100); Week = data2(DayOfWeek(date)); #옵션만기일 if (nday >= 8 and nday <= 14 and week == 4) then X = true; Else X = False; if data2(bdate != Bdate[1]) Then { if X == false and X[1] == true Then { C2 = 0; cond = true; dd = 0; } if cond ==true Then dd = dd+1; } #만기다음날 Data2 종가 if cond == true and dd == 1 Then C2 = data2(C); if remain == 만기기준일 then { if dd > 1 and C2 > 0 and 지수갭1 > Data2(Opend(0)-C2) and Data2(Opend(0)-C2) > 지수갭2 and c > dayopen + 0.05 Then Buy(); }