커뮤니티

주석요청

프로필 이미지
흰둥이아빠
2018-09-03 14:51:37
162
글번호 121810
답변완료
안녕하세요? 바쁘시겠지만 아래 스크립트 각 주석을 요청드립니다. 언제나 감사드립니다. 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);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-09-06 11:30:06

안녕하세요 예스스탁입니다. 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;# 일봉으로 N일간 고가와 시가의 차이를 저장할 변수(초기값은0) sum2 = 0;# 일봉으로 N일간 시가와 저가의 차이를 저장할 변수(초기값은0) sum3 = 0;# 일봉으로 N일간 시가와 전일종가의 차이의 절대값을 저장할 변수(초기값은0) sum4 = 0;# 일봉으로 N일간 고가와 전일종가의 차이의 절대값을 저장할 변수(초기값은0) sum5 = 0;# 일봉으로 N일간 저가와 전일종가의 차이의 절대값을 저장할 변수(초기값은0) //for루프를 돌며 N일간값 누적 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;//sum1을 N으로 나눠 평균값계산 mav2 = sum2/N;//sum2을 N으로 나눠 평균값계산 mav3 = sum3/N;//sum3을 N으로 나눠 평균값계산 mav4 = sum4/N;//sum4을 N으로 나눠 평균값계산 mav5 = sum5/N;//sum5을 N으로 나눠 평균값계산 value[0] = DayOpen(0)+mav1;#당일시가 + 과거 10일(고가-시가)의 평균 value[1] = DayOpen(0)+mav2; #당일시가 + 과거 10일 (시가-저가)의 평균} value[2] = DayClose(1)+mav3; #전일종가 + 과거 10일 (전영업일 종가-당영업일 시가)의 절대값의 평균 value[3] = DayClose(1)+mav4; #전일종가 + 과거 10일 (전영업일 종가-당영업일 고가)의 절대값의 평균 value[4] = DayClose(1)+mav5; #전일종가 + 과거 10일 (전영업일 종가-당영업일 저가)의 절대값의 평균 var1 = 0; var2 = 0; value1 = 0; value2 = 0; #value[0]~value[4]까지의 값중 for cnt = 0 to 4 { #시초가 보다 위이면서 if value[cnt] > dayopen Then { #시가와 차이값이 가장 작은값을 찾아 value1에 저장 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 { #시가와 차이값이 가장 작은값을 찾아 value2에 저장 if var2 == 0 or (var2 > 0 and abs(value[cnt]-dayopen) < var2) Then { var2 = abs(value[cnt]-dayopen); value2 = value[cnt]; } } } } #value1상향돌파시 매수 if MarketPosition <= 0 and value1 > 0 and crossup(c,value1) Then buy("b",AtMarket); #value2하향이탈시 매도 if MarketPosition <= 0 and value2 > 0 and CrossDown(c,value2) Then sell("s",AtMarket); #매수진입후 진입신호봉의 value2값보다 낮은 시세 발생하면 청산 if MarketPosition == 1 and value2[BarsSinceEntry] > 0 Then ExitLong("bx",AtStop,value2[BarsSinceEntry]); #매도진입후 진입신호봉의 value1값보다 높은 시세 발생하면 청산 if MarketPosition == -1 and value1[BarsSinceEntry] > 0 Then ExitShort("sx",AtStop,value1[BarsSinceEntry]); SetStopEndofday(152500); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 주석요청 > 안녕하세요? 바쁘시겠지만 아래 스크립트 각 주석을 요청드립니다. 언제나 감사드립니다. 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);