커뮤니티

엑셀로 출력할수있게 부탁드립니다

프로필 이미지
동작맨
2018-08-20 01:10:31
138
글번호 121437
답변완료
1.상하한가 30%이후 기준으로 (일봉상) 거래대금 500억 이상의 상한가 출현시 상한가 당일의 시.고.저.종.거래대금.5.10.20.60.120이평값과 상한가이후의 N일까지 (N은 외부변수로 빼주세요) 시.고.저.종.거래대금.5.10.20.60.120이평값을 엑셀로 출력할수 있게 만들어주세요 (거래대금은 꼭 일봉상 완성된봉의 거래대금이 출력될수 있도록 부탁드립니다) 2.위에 조건에서 N일까지가 아니라 일봉상 종가가 20이평아래로 떨어질때까지 엑셀로 출력 하도록 만들어주세요 항상 고맙습니다 수고하세요!
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-08-20 14:24:11

안녕하세요 예스스탁입니다. 일봉차트에 적용하시면 됩니다. 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); 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); 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 Print("data.csv",",시,%.f,고,%.f,저,%.f,종,%.f,대금,%.f,ma5,%.f,ma10,%.f,ma20,%.f,ma60,%.f,ma120,%.f", O,H,L,C,m,var1,var2,var3,var4,var5); 2 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); 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); if bdate != bdate[1] Then dd = dd +1; if M >= 50000000000 and H >= 상한가 Then { UD = dd; } if dd > UD and C < var3 Then UD = 0; if UD > 0 and DD >= UD Then Print("data.csv",",시,%.f,고,%.f,저,%.f,종,%.f,대금,%.f,ma5,%.f,ma10,%.f,ma20,%.f,ma60,%.f,ma120,%.f", O,H,L,C,m,var1,var2,var3,var4,var5); 즐거운 하루되세요 > 동작맨 님이 쓴 글입니다. > 제목 : 엑셀로 출력할수있게 부탁드립니다 > 1.상하한가 30%이후 기준으로 (일봉상) 거래대금 500억 이상의 상한가 출현시 상한가 당일의 시.고.저.종.거래대금.5.10.20.60.120이평값과 상한가이후의 N일까지 (N은 외부변수로 빼주세요) 시.고.저.종.거래대금.5.10.20.60.120이평값을 엑셀로 출력할수 있게 만들어주세요 (거래대금은 꼭 일봉상 완성된봉의 거래대금이 출력될수 있도록 부탁드립니다) 2.위에 조건에서 N일까지가 아니라 일봉상 종가가 20이평아래로 떨어질때까지 엑셀로 출력 하도록 만들어주세요 항상 고맙습니다 수고하세요!