커뮤니티

수식 작성 부탁드립니다.

프로필 이미지
엠제이
2012-07-06 02:32:15
586
글번호 52639
답변완료
1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
시스템
답변 6
프로필 이미지

예스스탁 예스스탁 답변

2012-07-06 11:09:47

안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
프로필 이미지

엠제이

2012-07-06 12:28:57

빠른 답변 감사드립니다. 추가 문의가 있는데요 1. 기술해주신 식을 보면 두가지 조건에 해당되는 경우에 매수하는 식인데 두번 매수가 되는거 아닌지 궁금합니다. 둘중에 한 조건에 해당되는 경우에만 매수하려고 생각하고 있습니다. buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); #3일선에서 매수 buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); #전봉 몸통 중간값에서 매수 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2012-07-06 13:03:20

안녕하세요 예스스탁입니다. 시스템 트레이딩 설정창에서 피라미딩을 설정하지 않으면 중목으로 신호가 발생하지는 않습니다. 2개 중에 먼저 만족한 진입신호만 발생합니다. 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : 수식 작성 부탁드립니다. > 빠른 답변 감사드립니다. 추가 문의가 있는데요 1. 기술해주신 식을 보면 두가지 조건에 해당되는 경우에 매수하는 식인데 두번 매수가 되는거 아닌지 궁금합니다. 둘중에 한 조건에 해당되는 경우에만 매수하려고 생각하고 있습니다. buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); #3일선에서 매수 buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); #전봉 몸통 중간값에서 매수 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
프로필 이미지

엠제이

2012-07-06 13:13:41

답변 안해 주신게 있어서요 자꾸 부탁을 드리게 되네요. 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 3. 알려주신 검색식을 장 종류후 검색식과 익일 검색식 두개로 나누어 주셨으면 합니다. 장 종료후 검색식과 익일 아침에 검색하는 두식을 검색식으로 만들어 주셨으면 합니다. 장종료후 검색식 - 1) 당일 상한가였거나 2) 당일 종가와 당일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 당일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 당일 일봉 5,10 이평 정배열이며 당일 종가가 당일 일봉 5이평 위에 있어야 함 익일 아침 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 너무 감사드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 시스템 트레이딩 설정창에서 피라미딩을 설정하지 않으면 중목으로 신호가 발생하지는 않습니다. 2개 중에 먼저 만족한 진입신호만 발생합니다. 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : 수식 작성 부탁드립니다. > 빠른 답변 감사드립니다. 추가 문의가 있는데요 1. 기술해주신 식을 보면 두가지 조건에 해당되는 경우에 매수하는 식인데 두번 매수가 되는거 아닌지 궁금합니다. 둘중에 한 조건에 해당되는 경우에만 매수하려고 생각하고 있습니다. buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); #3일선에서 매수 buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); #전봉 몸통 중간값에서 매수 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
프로필 이미지

예스스탁 예스스탁 답변

2012-07-06 13:35:07

안녕하세요 예스스탁입니다. 2. 매수전일의 시가는 dayopen(1)[BarsSinceEntry]입니다. 아래와 같이 작성하시면 매수 후 매수진입일 전일의 시초가를 하향하면 청산합니다. if MarketPosition == 1 Then ExitLong("bx",AtStop,dayopen(1)[BarsSinceEntry]); 3. 당일 장종료후와 익일 아침 장시작전의 수식은 모두 같습니다. 수식은 최근 봉을 현재봉(당일)로 인식하므로 이전에 답변드린 종목검색식은 장중에 사용하시고 아래 답변드린 식으로 당일 장종료후나 익일 장시간전에 사용하시면 됩니다. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } sum1 = 0; for cnt = 0 to P2{ if cnt < P1 Then sum1 = sum1+DayClose(cnt); if cnt < P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh >= 상한가) or (DayClose >= mav1*1.1125) or (DayClose >= dayopen*1.1 and dayhigh <= daylow*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : 수식 작성 부탁드립니다. > 답변 안해 주신게 있어서요 자꾸 부탁을 드리게 되네요. 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 3. 알려주신 검색식을 장 종류후 검색식과 익일 검색식 두개로 나누어 주셨으면 합니다. 장 종료후 검색식과 익일 아침에 검색하는 두식을 검색식으로 만들어 주셨으면 합니다. 장종료후 검색식 - 1) 당일 상한가였거나 2) 당일 종가와 당일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 당일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 당일 일봉 5,10 이평 정배열이며 당일 종가가 당일 일봉 5이평 위에 있어야 함 익일 아침 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 너무 감사드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 시스템 트레이딩 설정창에서 피라미딩을 설정하지 않으면 중목으로 신호가 발생하지는 않습니다. 2개 중에 먼저 만족한 진입신호만 발생합니다. 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : 수식 작성 부탁드립니다. > 빠른 답변 감사드립니다. 추가 문의가 있는데요 1. 기술해주신 식을 보면 두가지 조건에 해당되는 경우에 매수하는 식인데 두번 매수가 되는거 아닌지 궁금합니다. 둘중에 한 조건에 해당되는 경우에만 매수하려고 생각하고 있습니다. buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); #3일선에서 매수 buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); #전봉 몸통 중간값에서 매수 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.
프로필 이미지

엠제이

2012-07-06 13:49:35

친절한 답변 너무 감사드립니다. 즐거운 주말되세요~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 2. 매수전일의 시가는 dayopen(1)[BarsSinceEntry]입니다. 아래와 같이 작성하시면 매수 후 매수진입일 전일의 시초가를 하향하면 청산합니다. if MarketPosition == 1 Then ExitLong("bx",AtStop,dayopen(1)[BarsSinceEntry]); 3. 당일 장종료후와 익일 아침 장시작전의 수식은 모두 같습니다. 수식은 최근 봉을 현재봉(당일)로 인식하므로 이전에 답변드린 종목검색식은 장중에 사용하시고 아래 답변드린 식으로 당일 장종료후나 익일 장시간전에 사용하시면 됩니다. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } sum1 = 0; for cnt = 0 to P2{ if cnt < P1 Then sum1 = sum1+DayClose(cnt); if cnt < P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh >= 상한가) or (DayClose >= mav1*1.1125) or (DayClose >= dayopen*1.1 and dayhigh <= daylow*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : Re : Re : 수식 작성 부탁드립니다. > 답변 안해 주신게 있어서요 자꾸 부탁을 드리게 되네요. 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 3. 알려주신 검색식을 장 종류후 검색식과 익일 검색식 두개로 나누어 주셨으면 합니다. 장 종료후 검색식과 익일 아침에 검색하는 두식을 검색식으로 만들어 주셨으면 합니다. 장종료후 검색식 - 1) 당일 상한가였거나 2) 당일 종가와 당일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 당일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 당일 일봉 5,10 이평 정배열이며 당일 종가가 당일 일봉 5이평 위에 있어야 함 익일 아침 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 너무 감사드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 시스템 트레이딩 설정창에서 피라미딩을 설정하지 않으면 중목으로 신호가 발생하지는 않습니다. 2개 중에 먼저 만족한 진입신호만 발생합니다. 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : Re : Re : 수식 작성 부탁드립니다. > 빠른 답변 감사드립니다. 추가 문의가 있는데요 1. 기술해주신 식을 보면 두가지 조건에 해당되는 경우에 매수하는 식인데 두번 매수가 되는거 아닌지 궁금합니다. 둘중에 한 조건에 해당되는 경우에만 매수하려고 생각하고 있습니다. buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); #3일선에서 매수 buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); #전봉 몸통 중간값에서 매수 2. 매수가 이루어진 경우 매수 전일봉의 시가를 구하고 싶습니다. 상한가 14일날 발생했고 15일날 매수가 되었을때 14일 시가(매수 전일 시가)를 이탈시 전량 청산하는 식을 만들고 싶습니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 시스템 input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) and (mav1 > mav2 and C > mav1) and (dayopen >= dayhigh or dayopen >= DayClose(1)*1.03) Then{ if MarketPosition == 0 then{ buy("b1",atlimit,(DayClose(2)+DayClose(1)+dayopen)/3); buy("b2",atlimit,(DayClose(1)+Dayopen(1))/2); } } if MarketPosition == 1 then{ exitlong("bx1",atlimit,EntryPrice*1.05,"",int(CurrentContracts*0.3),1); exitlong("bx2",atlimit,EntryPrice*1.10,"",int(CurrentContracts*0.3),1); if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-EntryPrice)*0.5); if CrossDown(RSI(9),70) Then ExitLong(); if stime == 144800 and C < ma(C,5) Then ExitLong(); } SetStopLoss(5,PercentStop); 2. input : P1(5),P2(10); var : 상한가(0), UpLimit(0); var : aa(0), bb(0), cc(0), dd(0), ee(0),ff(0); var : sum1(0),mav1(0),cnt(0),sum2(0),mav2(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else UpLimit = (BP[0] * 1.15); if CodeCategory() == 2 then { if date >= 20030721 then { aa = int(UpLimit/100+0.00001)*100; bb = int(UpLimit/100+0.00001)*100; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/10+0.00001)*10; } } Else { aa = int(UpLimit/1000+0.00001)*1000; bb = int(UpLimit/500+0.00001)*500; cc = int(UpLimit/100+0.00001)*100; dd = int(UpLimit/50+0.00001)*50; ee = int(UpLimit/10+0.00001)*10; ff = int(UpLimit/5+0.00001)*5; } if CodeCategory() == 1 || CodeCategory() == 2 then { If BP[0] >= 500000 Then 상한가 = aa; Else If BP[0] >= 100000 Then 상한가 = iff(bb>=500000, aa, bb); Else If BP[0] >= 50000 Then 상한가 = iff(cc>=100000, bb, cc); Else If BP[0] >= 10000 Then 상한가 = iff(dd>=50000, cc, dd); Else If BP[0] >= 5000 Then 상한가 = iff(ee>=10000, dd, ee); Else 상한가 = iff(ff>=5000, ee, ff); } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = ff; } } if date != date[1] Then value1 = 상한가[1]; sum1 = 0; for cnt = 1 to P2{ if cnt <= P1 Then sum1 = sum1+DayClose(cnt); if cnt <= P2 Then sum2 = sum2+DayClose(cnt); } mav1 = sum1/p1; mav2 = sum2/p2; if ((dayhigh(1) >= value1) or (DayClose(1) >= mav1*1.1125) or (DayClose(1) >= dayopen(1)*1.1 and dayhigh(1) <= daylow(1)*1.2)) Then find(1); 즐거운 하루되세요 > 엠제이 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > 1분봉에서 매매할 예정입니다. 매수조건 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 - 당일 시초가 >= 전일 고가 or 당일 시초가 >= 전일 종가 * 1.03 매수 아래 둘중의 하나의 가격으로 매수 - (전전일 종가 + 전일 종가 + 당일 시가)/3의 가격으로 atLimit 매수 - 전일 몸통의 중간값 매수청산 - 1차 5% 수익에 비중 30% 청산 - 2차 10% 수익에 비중 30% 청산 - 2차 10% 수익 청산 후 최고 수익 대비 50% 하락시 전량 청산 - 1분봉 RSI(9) 과열권 이탈시 전량 청산 - 14:48분에 종가가 일봉 5이평선을 이탈시 전량 청산 - 매수가 대비 5% 하락시 StopLoss 검색식 - 1) 전일 상한가였거나 2) 전일 종가와 전일 5일 이평선 이격차이가 112.5% 이상인 경우이거나 3) 전일 장대양봉(시초가와 종가의 차이가 10% 이상)이며 고가와 저가의 폭이 20%를 초과하지 않아야 함 - 전일 일봉 5,10 이평 정배열이며 전일 종가가 전일 일봉 5이평 위에 있어야 함 해당 식에 대한 검색식 부탁드립니다. 감사합니다.