커뮤니티

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

프로필 이미지
kosto1
2016-06-17 08:08:36
201
글번호 99193
답변완료
안녕하세요~~~ 수정해 주신 조건 잘 작동합니다~ 감사합니다!!!! 두개를 더 추가해보고자 합니다 1. dayhh 조건에 30일간 최고 거래대금 & 양봉 (o *1.03 < c) & EnvelopeUp (10,10)의 조건을 만족했을때만 dayhh로 인정하고 그때 지표에 따라 진입한다 라는 조건을 추가해보고 싶습니다. 2. NN = 선정된 신고가 때 거래대금의 70%이상 발생한 상태 price1을 터치하는 봉에서 NN이 발생하면 1차진입은 하지 않고, 그 신고가 구간에서는 매수를 하지 않는다 (PRICE1에 오기전에 다른 봉에서 NN이 발생한 것은 상관없이 진입, 1차 진입이후 NN 이 발생하면 2차 3차는 그대로 진입. NN 발생으로 1차진입 하지 않았는데 PRICE1 위로 올라간 후 다시 PRICE1을 터치하면 진입 금지) 라는 조건을 추가해보고 싶습니다. if 문을 넣어서 이리저리 해보는데, 잘안되네요. 항상 감사합니다!!!!!!!!!!! -------------------------------------------------------------------------------------- input : P(120),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000); var : kk(0),V0.5(0),V1(0),V2(0),V3(0); var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0); var : entry(false),Price1(0),Price2(0),Price3(0); dayhh = dayhigh(0); for cnt = 0 to P-1{ if dayhigh(cnt) > dayhh Then dayhh = dayhigh(cnt); } ##### 신고가 조건 ############ if sdate >= 시작날짜 then{ if dayhh > dayhh[1] Then{ Condition1 = true; entry=true; LL = L; } #entry 함수를 넣으면 매수를 안함 # if O*1.03 < C then{ #entry == true; # } # 지표 설정식 ## if condition1 ==true then { #신고가 이후 최저가 if L < LL Then LL = L; #지표# var1 = highest(h,p); var2 = lowest(L,p); if var1[1] < var1 Then kk = (var1+var2)/2; V0.5 = var1-((var1-kk)/5)*1; V1 = var1-((var1-kk)/5)*2; V2 = var1-((var1-kk)/5)*3; V3 = var1-((var1-kk)/5)*4; V4 = var1-((var1-kk)/5)*5; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and condition1 == true and entry == true Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후 최저가에서 폭만큼 상승하면 청산 ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 2 Then exitlong("본절2",atlimit,(Price1+Price2)/2); if MaxEntries == 3 Then exitlong("본절3",atlimit,Price2); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-06-17 12:55:04

안녕하세요 예스스탁입니다. EnvelopeUp (10,10)라고만 하시면 어떤 조건인지 알수가 없습니다. 종가가 EnvelopeUp (10,10)보다 크다라고 지정했습니다. input : P(120),MP(30),Period(10),per(10),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000); var : kk(0),V0.5(0),V1(0),V2(0),V3(0); var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0); var : entry(false),Price1(0),Price2(0),Price3(0); var : MMH(0),Eup(0),Edn(0),nn(0); Array : MM[50](0); if date != date[1] Then{ MM[0] = 0; for cnt = 1 to 49{ MM[cnt] = MM[cnt-1][1]; } } MM[0] = MM[0]+M; dayhh = dayhigh(0); for cnt = 0 to P-1{ if dayhigh(cnt) > dayhh Then dayhh = dayhigh(cnt); } #MP일간 거대래금 최고 MMH = MM[1]; for cnt = 1 to MP{ if MM[cnt] > MMH Then MMH = MM[cnt]; } Eup = EnvelopeUp(Period,per); Edn = EnvelopeUp(Period,per); ##### 신고가 조건 ############ if sdate >= 시작날짜 and MM[MP] > 0 then{ if dayhh > dayhh[1] and MM[0] > MMH and O*1.03 < c and C > Eup Then{ Condition1 = true; entry=true; LL = L; nn = money; } #entry 함수를 넣으면 매수를 안함 # if O*1.03 < C then{ #entry = true; # } # 지표 설정식 ## if condition1 ==true then { #신고가 이후 최저가 if L < LL Then LL = L; #지표# var1 = highest(h,p); var2 = lowest(L,p); if var1[1] < var1 Then kk = (var1+var2)/2; V0.5 = var1-((var1-kk)/5)*1; V1 = var1-((var1-kk)/5)*2; V2 = var1-((var1-kk)/5)*3; V3 = var1-((var1-kk)/5)*4; V4 = var1-((var1-kk)/5)*5; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and condition1 == true and entry == true and Money < NN*0.7 and LL > Price1 Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후 최저가에서 폭만큼 상승하면 청산 ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 2 Then exitlong("본절2",atlimit,(Price1+Price2)/2); if MaxEntries == 3 Then exitlong("본절3",atlimit,Price2); } 즐거운 하루되세요 > kosto1 님이 쓴 글입니다. > 제목 : 시스템식 수정 문의드립니다 > 안녕하세요~~~ 수정해 주신 조건 잘 작동합니다~ 감사합니다!!!! 두개를 더 추가해보고자 합니다 1. dayhh 조건에 30일간 최고 거래대금 & 양봉 (o *1.03 < c) & EnvelopeUp (10,10)의 조건을 만족했을때만 dayhh로 인정하고 그때 지표에 따라 진입한다 라는 조건을 추가해보고 싶습니다. 2. NN = 선정된 신고가 때 거래대금의 70%이상 발생한 상태 price1을 터치하는 봉에서 NN이 발생하면 1차진입은 하지 않고, 그 신고가 구간에서는 매수를 하지 않는다 (PRICE1에 오기전에 다른 봉에서 NN이 발생한 것은 상관없이 진입, 1차 진입이후 NN 이 발생하면 2차 3차는 그대로 진입. NN 발생으로 1차진입 하지 않았는데 PRICE1 위로 올라간 후 다시 PRICE1을 터치하면 진입 금지) 라는 조건을 추가해보고 싶습니다. if 문을 넣어서 이리저리 해보는데, 잘안되네요. 항상 감사합니다!!!!!!!!!!! -------------------------------------------------------------------------------------- input : P(120),시작날짜(20160101),매수1차(1000000),매수2차(1500000),매수3차(2000000); var : kk(0),V0.5(0),V1(0),V2(0),V3(0); var : V4(0),ss(0),s1(0),dayhh(0),cnt(0),ll(0); var : entry(false),Price1(0),Price2(0),Price3(0); dayhh = dayhigh(0); for cnt = 0 to P-1{ if dayhigh(cnt) > dayhh Then dayhh = dayhigh(cnt); } ##### 신고가 조건 ############ if sdate >= 시작날짜 then{ if dayhh > dayhh[1] Then{ Condition1 = true; entry=true; LL = L; } #entry 함수를 넣으면 매수를 안함 # if O*1.03 < C then{ #entry == true; # } # 지표 설정식 ## if condition1 ==true then { #신고가 이후 최저가 if L < LL Then LL = L; #지표# var1 = highest(h,p); var2 = lowest(L,p); if var1[1] < var1 Then kk = (var1+var2)/2; V0.5 = var1-((var1-kk)/5)*1; V1 = var1-((var1-kk)/5)*2; V2 = var1-((var1-kk)/5)*3; V3 = var1-((var1-kk)/5)*4; V4 = var1-((var1-kk)/5)*5; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and condition1 == true and entry == true Then buy("b1",atlimit,Price1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 1 and Price2 > 0 Then buy("b2",atlimit,Price2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and MaxEntries == 2 and Price3 > 0 Then buy("b3",atlimit,Price3,Floor(매수3차/C)); if MarketPosition == 1 Then{ #진입이후 최저가에서 폭만큼 상승하면 청산 ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 2 Then exitlong("본절2",atlimit,(Price1+Price2)/2); if MaxEntries == 3 Then exitlong("본절3",atlimit,Price2); }