커뮤니티

시스템식 수정 문의드립니다

프로필 이미지
kosto1
2016-06-07 19:30:04
117
글번호 98759
답변완료
안녕하세요~~~ 신고가 조건과 매수전 조건을 추가 하고 싶어서 문의드립니다!! 항상 감사합니다!!! 현재 아래의 시스템식을 15분봉 상에서 적용중입니다 1. 신고가 조건 추가 ㄱ. 15분 봉상 고가가 15분 봉상의 엔벨로프 20,20의 상단을 넘었던 적이 있고 ㄴ. a = 15분봉상 지난 500봉의 최대거래량 a 돌파 & 15분 봉이 o*1.06 < c ㄱ&ㄴ의 조건 만족시 신고가 조건 만족으로 매수준비 2. 매수전 조건 추가 (현재 이평선 조건에) ㄱ. 조건 - 현재 매수구간에서 -6%이상의 음봉 매수전 발생 = 매수금지 (다음 신고가 조건 만족전까지) 1차매수 이후 발생 = 추매는 그대로, 매도폭은 50% ㄴ. 현재매수구간에서 조건 - a = 15분봉상 지난 500봉의 최대거래량 a*0.6 의 거래량 돌파 & 15분봉 o*1.06> c 발생 매수전 = 매수금지 (다음 신고가 조건 만족전까지) 1차매수 이후 발생 = 추매는 그대로, 매도폭은 50% 다음 신고가가 발생되면 2의 조건들은 리셋 위와 같습니다. 모자라는 부분 알려주시면 바로 보충하겠습니다!! --------------------------------------------------- input : P(20),시작날짜(20160108),매수1차(1000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0),maxdiff(0),Lv(0),sum(0),mav(0),cnt(0),Hv(0),entry(false); var : dayhh(0); sum = 0; dayhh = dayhigh(0); for cnt = 0 to P-1{ sum = sum+DayClose(cnt); if dayhigh(cnt) > dayhh Then dayhh = dayhigh(cnt); } mav = sum/P; ######## 매수전 조건 ############## if sdate >= 시작날짜 then{ if crossup(L,mav) Then{ T = 1; diff = 0; maxdiff = 0; Condition1 = false; entry = false; } if CrossDown(H,mav) Then{ T = -1; Condition1 = false; entry = false; } ##### 신고가 조건 ############ if dayhh > dayhh[1] Then{ Condition1 = true; entry = true; Hv = H; Lv = L; } ######### 폭설정 조건 ############### if T == 1 and Condition1 == true Then{ if H > Hv Then Hv = H; if L < Lv Then Lv = L; diff = Hv-Lv; if diff > maxdiff Then maxdiff = diff; Price1 = Hv-maxdiff*1; Price2 = Hv-maxdiff*2; Price3 = Hv-maxdiff*3; } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and Condition1 == true and entry == true and L > mav and Hv >= Price1*1.025 Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2[BarsSinceEntry+1] > 0 Then buy("b2",atlimit,Price2[BarsSinceEntry+1],Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3[BarsSinceEntry+1] > 0 Then buy("b3",atlimit,Price3[BarsSinceEntry+1],Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후로 한번도 선 아래로 내려가지 않은경우 #진입이후 최저가에서 폭만큼 상승하면 청산 if countif(L<mav,BarsSinceEntry) == 0 Then ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]); #진입이후로 20선 아래로 한번이상 내려간 경우 #진입이후 최저가에서 폭의 절반만큼 상승하면 청산 if countif(L<mav,BarsSinceEntry) >= 1 Then ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]*0.5); #일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%) ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]*0.75); if MaxEntries == 2 Then exitlong("본절2",atlimit,(Price1[BarsSinceEntry+1]+Price2[BarsSinceEntry+1])/2); if MaxEntries == 3 Then exitlong("본절3",atlimit,Price2[BarsSinceEntry+1]); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-06-08 10:23:51

> kosto1 님이 쓴 글입니다. > 제목 : 시스템식 수정 문의드립니다 > 안녕하세요~~~ 신고가 조건과 매수전 조건을 추가 하고 싶어서 문의드립니다!! 항상 감사합니다!!! 현재 아래의 시스템식을 15분봉 상에서 적용중입니다 1. 신고가 조건 추가 ㄱ. 15분 봉상 고가가 15분 봉상의 엔벨로프 20,20의 상단을 넘었던 적이 있고 ㄴ. a = 15분봉상 지난 500봉의 최대거래량 a 돌파 & 15분 봉이 o*1.06 < c ㄱ&ㄴ의 조건 만족시 신고가 조건 만족으로 매수준비 2. 매수전 조건 추가 (현재 이평선 조건에) ㄱ. 조건 - 현재 매수구간에서 -6%이상의 음봉 매수전 발생 = 매수금지 (다음 신고가 조건 만족전까지) 1차매수 이후 발생 = 추매는 그대로, 매도폭은 50% ㄴ. 현재매수구간에서 조건 - a = 15분봉상 지난 500봉의 최대거래량 a*0.6 의 거래량 돌파 & 15분봉 o*1.06> c 발생 매수전 = 매수금지 (다음 신고가 조건 만족전까지) 1차매수 이후 발생 = 추매는 그대로, 매도폭은 50% 다음 신고가가 발생되면 2의 조건들은 리셋 위와 같습니다. 모자라는 부분 알려주시면 바로 보충하겠습니다!! --------------------------------------------------- input : P(20),시작날짜(20160108),매수1차(1000000),매수2차(1500000),매수3차(2000000); var : T(0),HH(0),Price1(0),Price2(0),Price3(0),diff(0),maxdiff(0),Lv(0),sum(0),mav(0),cnt(0),Hv(0),entry(false); var : dayhh(0); sum = 0; dayhh = dayhigh(0); for cnt = 0 to P-1{ sum = sum+DayClose(cnt); if dayhigh(cnt) > dayhh Then dayhh = dayhigh(cnt); } mav = sum/P; ######## 매수전 조건 ############## if sdate >= 시작날짜 then{ if crossup(L,mav) Then{ T = 1; diff = 0; maxdiff = 0; Condition1 = false; entry = false; } if CrossDown(H,mav) Then{ T = -1; Condition1 = false; entry = false; } ##### 신고가 조건 ############ if dayhh > dayhh[1] Then{ Condition1 = true; entry = true; Hv = H; Lv = L; } ######### 폭설정 조건 ############### if T == 1 and Condition1 == true Then{ if H > Hv Then Hv = H; if L < Lv Then Lv = L; diff = Hv-Lv; if diff > maxdiff Then maxdiff = diff; Price1 = Hv-maxdiff*1; Price2 = Hv-maxdiff*2; Price3 = Hv-maxdiff*3; } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and Condition1 == true and entry == true and L > mav and Hv >= Price1*1.025 Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2[BarsSinceEntry+1] > 0 Then buy("b2",atlimit,Price2[BarsSinceEntry+1],Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3[BarsSinceEntry+1] > 0 Then buy("b3",atlimit,Price3[BarsSinceEntry+1],Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후로 한번도 선 아래로 내려가지 않은경우 #진입이후 최저가에서 폭만큼 상승하면 청산 if countif(L<mav,BarsSinceEntry) == 0 Then ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]); #진입이후로 20선 아래로 한번이상 내려간 경우 #진입이후 최저가에서 폭의 절반만큼 상승하면 청산 if countif(L<mav,BarsSinceEntry) >= 1 Then ExitLong("bx2",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]*0.5); #일괄매도 = 현재 20일 신고가 이후 최저가 + 최대폭(75%) ExitLong("일괄매도",atlimit,lowest(L,BarsSinceEntry)+maxdiff[BarsSinceEntry+1]*0.75); if MaxEntries == 2 Then exitlong("본절2",atlimit,(Price1[BarsSinceEntry+1]+Price2[BarsSinceEntry+1])/2); if MaxEntries == 3 Then exitlong("본절3",atlimit,Price2[BarsSinceEntry+1]); } }