커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2018-08-31 15:27:53
136
글번호 121787
답변완료
안녕하세요? 함수요청드립니다. A = 당일시가 + {당일제외 과거 10일 (고가-시가)의 평균} B = 당일시가 + {당일제외 과거 10일 (시가-저가)의 평균} C = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 시가)의 절대값의 평균} D = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 고가)의 절대값의 평균} E = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 저가)의 절대값의 평균} 당일 시가 발생시 A,B,C,D,E 값이 도출되면 매수: A~E 사이에 시가에 제일 가까운 값보다 작은 값 터치시 익봉 시가에 진입 매도: A~E 사이에 시가에 제일 가까운 값보다 큰 값 터치시 익봉 시가에 진입 손절: 매수가 아랫 가격, 매도가 아랫가격 당일 종가 강제청산 가령, A =100 B = 90 C = 80 D = 70 E = 60 이고 당일 시가가 77이라면 현재가가 90터치시 익봉 시가에 매도 신호 70터치시 익봉 시가에 매수 신호 발생, 매도진입시 손절은 100에, 매수진입시 손절은 60입니다. 손절조건이 만족하지 않을 시 당일 종가에 강제 청산하고자합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-08-31 16:35:24

안녕하세요 예스스탁입니다. input : N(10); var : cnt(0); var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0); Array : value[5](0); if bdate != bdate[1] then { sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; for cnt = 1 to N { sum1 = sum1 + (DayHigh(cnt)-DayOpen(cnt)); sum2 = sum2 + (DayOpen(cnt)-DayLow(cnt)); sum3 = sum3 + abs(DayOpen(cnt)-DayClose(cnt+1)); sum4 = sum4 + abs(DayHigh(cnt)-DayClose(cnt+1)); sum5 = sum5 + abs(DayLow(cnt)-DayClose(cnt+1)); } mav1 = sum1/N; mav2 = sum2/N; mav3 = sum3/N; mav4 = sum4/N; mav5 = sum5/N; value[0] = DayOpen(0)+mav1; value[1] = DayOpen(0)+mav2; value[2] = DayClose(1)+mav3; value[3] = DayClose(1)+mav4; value[4] = DayClose(1)+mav5; var1 = 0; var2 = 0; value1 = 0; value2 = 0; for cnt = 0 to 4 { if value[cnt] > dayopen Then { if var1 == 0 or (var1 > 0 and abs(value[cnt]-dayopen) < var1) Then { var1 = abs(value[cnt]-dayopen); value1 = value[cnt]; } } if value[cnt] < dayopen Then { if var2 == 0 or (var2 > 0 and abs(value[cnt]-dayopen) < var2) Then { var2 = abs(value[cnt]-dayopen); value2 = value[cnt]; } } } } if MarketPosition <= 0 and value1 > 0 and crossup(c,value1) Then buy("b",AtMarket); if MarketPosition <= 0 and value2 > 0 and CrossDown(c,value2) Then sell("s",AtMarket); if MarketPosition == 1 and value2[BarsSinceEntry] > 0 Then ExitLong("bx",AtStop,value2[BarsSinceEntry]); if MarketPosition == -1 and value1[BarsSinceEntry] > 0 Then ExitShort("sx",AtStop,value1[BarsSinceEntry]); SetStopEndofday(152500); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 함수요청드립니다. A = 당일시가 + {당일제외 과거 10일 (고가-시가)의 평균} B = 당일시가 + {당일제외 과거 10일 (시가-저가)의 평균} C = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 시가)의 절대값의 평균} D = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 고가)의 절대값의 평균} E = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 저가)의 절대값의 평균} 당일 시가 발생시 A,B,C,D,E 값이 도출되면 매수: A~E 사이에 시가에 제일 가까운 값보다 작은 값 터치시 익봉 시가에 진입 매도: A~E 사이에 시가에 제일 가까운 값보다 큰 값 터치시 익봉 시가에 진입 손절: 매수가 아랫 가격, 매도가 아랫가격 당일 종가 강제청산 가령, A =100 B = 90 C = 80 D = 70 E = 60 이고 당일 시가가 77이라면 현재가가 90터치시 익봉 시가에 매도 신호 70터치시 익봉 시가에 매수 신호 발생, 매도진입시 손절은 100에, 매수진입시 손절은 60입니다. 손절조건이 만족하지 않을 시 당일 종가에 강제 청산하고자합니다.