커뮤니티

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

프로필 이미지
kosto1
2016-06-27 17:42:41
190
글번호 99533
답변완료
수정중
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2016-06-27 16:52:57

안녕하세요 예스스탁입니다. 1. 수식에서 데이터는 완성된 봉의 값만 사용이 가능합니다. 미완성봉의 값을 기준으로 신호를 내게 작성할수 없습니다. 그러므로 당일 매수후 당일 저가를 기준으로 당일에 신호가 발생하게는 식을 작성할수가 없습니다. 2 02-3453-1060으로 전화주시기 바랍니다. 즐거운 하루되세요 > kosto1 님이 쓴 글입니다. > 제목 : 시스템식 수정 문의드립니다 > (시스템식 붙여넣기를 안했네요. 수정했습니다 ^^;) 안녕하세요. 수정해주신 시스템식을 가지고 잘 검증해보고 있습니다 항상 감사합니다. 2가지 문의사항이 있어서 게시물을 올립니다. 1. 최저가 대비 폭만큼 상승을 했는데 매도가 안나오는 경우가 종종 있습니다. 그림의 종목은 대주산업입니다. 당일 매수신호 후 당일 매도신호가 나오는 경우에 발생하는 것 같습니다. 당일 매수가 되었어도 당일 저점 대비 폭 만큼 상승하면 당일에 매도가 되게끔 처리하려면 무엇을 수정해야 할지 모르겠습니다 2. 폭만큼 반등이 나온 종목을 추가 매매하는 경우. 조건문하고 수식을 넣고 해보는데 원하는 방식이 안나와서 문의드립니다. ㄱ. 1차 매매때 저점대비 폭이 나온 지점의 저점 저장 = FL ( 최저점 A 이후 폭이 나와서 B에 매도 했으니 FL = A) 폭은 SS ㄴ. FL - 폭*1 만큼 하락하면 1차 매수 ㄷ. FL - 폭*2 만큼 하락하면 2차 매수 ㄹ. FL - 폭*3 만큼 하락하면 3차 매수 ㅁ. 청산은 매수후 저점 + 폭 만큼 상승하면 일괄청산 ㅂ. FL이 V4 이하라면 LV1에서 1차매수 (추매, 청산은 기존의 조건과 동일) ㅅ. FL이 V4이하에서는 매수후 매도 한번 하면 매매 종료 ㅇ. 신고가 돌파하면 모든 조건 리셋후 처음부터 매매다시 시작 모자란 부분 알려주시면 바로 보충하겠습니다! 감사합니다!!!! 아래는 시스템식 입니다. ----------------------------------------------------------------------------- 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),V4(0), LV1(0),LV2(0),LV3(0); var : 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),P1cond(false),ii(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] Then{ Condition1 = true; entry = true; LL = L; nn = money; P1cond = true; ii = index; } # 지표 설정식 ## 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; LV1 = var1-((var1-kk)/5)*7; LV2 = var1-((var1-kk)/5)*8; LV3 = var1-((var1-kk)/5)*9; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; if index> ii and L <= price1 Then P1cond = false; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and condition1 == true and entry == true and P1cond == 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,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 3 Then exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss); }
프로필 이미지

예스스탁 예스스탁 답변

2016-06-28 15:42:39

안녕하세요 예스스탁입니다. 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),V4(0), LV1(0),LV2(0),LV3(0); var : 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),P1cond(false),ii(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] Then{ Condition1 = true; entry = true; LL = L; nn = money; P1cond = true; ii = index; } # 지표 설정식 ## 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; LV1 = var1-((var1-kk)/5)*7; LV2 = var1-((var1-kk)/5)*8; LV3 = var1-((var1-kk)/5)*9; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; if index> ii and L <= price1 Then P1cond = false; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if TotalTrades == 0 and MarketPosition == 0 and condition1 == true and entry == true and P1cond == true Then buy("b1",atlimit,Price1,Floor(매수1차/C)); if MarketPosition == 1 and IsEntryName("b1") == true then{ #가격이 하락해 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 TotalTrades >= 1 then{ if MarketPosition == 0 and BarsSinceExit(1) >= 1 Then buy("bb1",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*1,Floor(매수1차/C)); #가격이 하락해 2차매수가격 이하이면 매수 if MarketPosition == 1 and IsEntryName("bb1") == true and MaxEntries == 1 and Price2 > 0 Then buy("bb2",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*2,Floor(매수2차/C)); #가격이 하락해 3차매수가격 이하이면 매수 if MarketPosition == 1 and IsEntryName("bb1") == true and MaxEntries == 2 and Price3 > 0 Then buy("bb3",atlimit,lowest(L,BarsSinceEntry(1))[BarsSinceExit(1)]-ss*3,Floor(매수3차/C)); } if MarketPosition == 1 Then{ #진입이후 최저가에서 폭만큼 상승하면 청산 ExitLong("bx1",atlimit,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 2 Then exitlong("본절2",atlimit,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 3 Then exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss); } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 수정 문의드립니다 > 안녕하세요 예스스탁입니다. 1. 수식에서 데이터는 완성된 봉의 값만 사용이 가능합니다. 미완성봉의 값을 기준으로 신호를 내게 작성할수 없습니다. 그러므로 당일 매수후 당일 저가를 기준으로 당일에 신호가 발생하게는 식을 작성할수가 없습니다. 2 02-3453-1060으로 전화주시기 바랍니다. 즐거운 하루되세요 > kosto1 님이 쓴 글입니다. > 제목 : 시스템식 수정 문의드립니다 > (시스템식 붙여넣기를 안했네요. 수정했습니다 ^^;) 안녕하세요. 수정해주신 시스템식을 가지고 잘 검증해보고 있습니다 항상 감사합니다. 2가지 문의사항이 있어서 게시물을 올립니다. 1. 최저가 대비 폭만큼 상승을 했는데 매도가 안나오는 경우가 종종 있습니다. 그림의 종목은 대주산업입니다. 당일 매수신호 후 당일 매도신호가 나오는 경우에 발생하는 것 같습니다. 당일 매수가 되었어도 당일 저점 대비 폭 만큼 상승하면 당일에 매도가 되게끔 처리하려면 무엇을 수정해야 할지 모르겠습니다 2. 폭만큼 반등이 나온 종목을 추가 매매하는 경우. 조건문하고 수식을 넣고 해보는데 원하는 방식이 안나와서 문의드립니다. ㄱ. 1차 매매때 저점대비 폭이 나온 지점의 저점 저장 = FL ( 최저점 A 이후 폭이 나와서 B에 매도 했으니 FL = A) 폭은 SS ㄴ. FL - 폭*1 만큼 하락하면 1차 매수 ㄷ. FL - 폭*2 만큼 하락하면 2차 매수 ㄹ. FL - 폭*3 만큼 하락하면 3차 매수 ㅁ. 청산은 매수후 저점 + 폭 만큼 상승하면 일괄청산 ㅂ. FL이 V4 이하라면 LV1에서 1차매수 (추매, 청산은 기존의 조건과 동일) ㅅ. FL이 V4이하에서는 매수후 매도 한번 하면 매매 종료 ㅇ. 신고가 돌파하면 모든 조건 리셋후 처음부터 매매다시 시작 모자란 부분 알려주시면 바로 보충하겠습니다! 감사합니다!!!! 아래는 시스템식 입니다. ----------------------------------------------------------------------------- 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),V4(0), LV1(0),LV2(0),LV3(0); var : 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),P1cond(false),ii(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] Then{ Condition1 = true; entry = true; LL = L; nn = money; P1cond = true; ii = index; } # 지표 설정식 ## 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; LV1 = var1-((var1-kk)/5)*7; LV2 = var1-((var1-kk)/5)*8; LV3 = var1-((var1-kk)/5)*9; #매도폭 ss = v2-v3 ; Price1 = v2; Price2 = v3; Price3 = v4; if index> ii and L <= price1 Then P1cond = false; } } if MarketPosition == 1 Then entry = false; #가격이 하락해 1차매수가격 이하이면 매수 if MarketPosition == 0 and condition1 == true and entry == true and P1cond == 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,lowest(L,BarsSinceEntry)+ss); if MaxEntries == 3 Then exitlong("본절3",atlimit,lowest(L,BarsSinceEntry)+ss); }