커뮤니티

시스템식좀 부탁드리겠습니다

프로필 이미지
동작맨
2019-03-05 08:51:53
225
글번호 126703
답변완료
1.상하한가 30%이후 기준으로 (일봉상) 거래대금 500억 이상의 상한가 출현시 상한가 당일과 그이후 n 일간의 날짜, 종목명,시,고,저,종,거래대금,5이평,10이평,20이평,60이평,120이평,시가비,고가비,저가비,종가비,5이평이격,10이평이격,20이평이격,60이평이격,120이평이격값 을 엑셀로출력하고싶습니다 상한가이후의 N일까지 (N은 외부변수로 빼주세요) 그리고 중요한건, 상한가날은 상한가라는 엑셀파일로 따로, 상한가 다음날은 상한가1, 그다음날은 상한가2 이런식으로 자료가 따로 엑셀파일로 생성되게 부탁드리겠습니다 2.전일종가대비 당일 고가가 15%이상, 거래대금이 500억이상인 종목의 날짜, 종목명, 시.고.저.종.거래대금.5이평.10이평.20이평.60이평.120이평시가비.고가비.저가비.종가비.5이평이격.10이평이격.20이평이격.60이평이격.120이평이격값을 엑셀로 출력하고싶습니다 여기에서 고가와 거래대금의 기준은 외부변수로 빼서 조정가능하게 부탁드리겠습니다 항상고맙습니다 수고하세요^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-03-06 13:33:18

안녕하세요 예스스탁입니다. 1 input : N(10); var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); var : mm(0),dd(0),UD(0),filename(""); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } var1 = ma(C,5); var2 = ma(C,10); var3 = ma(C,20); var4 = ma(C,60); var5 = ma(C,120); var6 = (C-O)/O*100; var7 = (C-H)/H*100; var8 = (C-L)/L*100; var9 = (C-C[1])/C[1]*100; var10 = Disparity(5); var11 = Disparity(10); var12 = Disparity(20); var13 = Disparity(60); var14 = Disparity(120); if bdate != bdate[1] Then dd = dd +1; if M >= 50000000000 and H >= 상한가 Then { UD = dd; } if UD > 0 and DD >= UD and DD <= UD+N Then { filename = "상한가"+NumToStr(DD-UD,0)+".csv"; Print(filename, "날짜,%.f,종목명,%s,시,%.f,고,%.f,저,%.f,종,%.f,거래대금,%.f,5이평,%.f,10이평,%.f,20이평,%.f,60이평,%.f,120이평,%.f,시가비,%.2f,고가비,%.2f,저가비,%.2f,종가비,%.2f,5이격,%.2f,10이격,%.2f,20이격,%.2f,60이격,%.2f,120이격,%.2f", sdate,SymbolName,O,H,L,C,m,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10,var11,var12,var13,var14); } 2 input : per(15),mm(50000000000); var : dd(0),UD(0),filename(""); var1 = ma(C,5); var2 = ma(C,10); var3 = ma(C,20); var4 = ma(C,60); var5 = ma(C,120); var6 = (C-O)/O*100; var7 = (C-H)/H*100; var8 = (C-L)/L*100; var9 = (C-C[1])/C[1]*100; var10 = Disparity(5); var11 = Disparity(10); var12 = Disparity(20); var13 = Disparity(60); var14 = Disparity(120); if H >= C[1]*(1+Per/100) and M >= mm Then { Print("date.csv", "날짜,%.f,종목명,%s,시,%.f,고,%.f,저,%.f,종,%.f,거래대금,%.f,5이평,%.f,10이평,%.f,20이평,%.f,60이평,%.f,120이평,%.f,시가비,%.2f,고가비,%.2f,저가비,%.2f,종가비,%.2f,5이격,%.2f,10이격,%.2f,20이격,%.2f,60이격,%.2f,120이격,%.2f", sdate,SymbolName,O,H,L,C,m,var1,var2,var3,var4,var5,var6,var7,var8,var9,var10,var11,var12,var13,var14); } 즐거운 하루되세요 > 동작맨 님이 쓴 글입니다. > 제목 : 시스템식좀 부탁드리겠습니다 > 1.상하한가 30%이후 기준으로 (일봉상) 거래대금 500억 이상의 상한가 출현시 상한가 당일과 그이후 n 일간의 날짜, 종목명,시,고,저,종,거래대금,5이평,10이평,20이평,60이평,120이평,시가비,고가비,저가비,종가비,5이평이격,10이평이격,20이평이격,60이평이격,120이평이격값 을 엑셀로출력하고싶습니다 상한가이후의 N일까지 (N은 외부변수로 빼주세요) 그리고 중요한건, 상한가날은 상한가라는 엑셀파일로 따로, 상한가 다음날은 상한가1, 그다음날은 상한가2 이런식으로 자료가 따로 엑셀파일로 생성되게 부탁드리겠습니다 2.전일종가대비 당일 고가가 15%이상, 거래대금이 500억이상인 종목의 날짜, 종목명, 시.고.저.종.거래대금.5이평.10이평.20이평.60이평.120이평시가비.고가비.저가비.종가비.5이평이격.10이평이격.20이평이격.60이평이격.120이평이격값을 엑셀로 출력하고싶습니다 여기에서 고가와 거래대금의 기준은 외부변수로 빼서 조정가능하게 부탁드리겠습니다 항상고맙습니다 수고하세요^^