커뮤니티

HMA 관련 시스템 부탁드립니다.

프로필 이미지
일목초인
2010-02-16 18:45:31
1148
글번호 28117
답변완료
다음은 인터넷에서 접한 Hull Moving Average라는 이평선을 지표로 작성해 본 것입니다. Input : Period(20); var : HMA(0); HMA = WMA(2*WMA(C, Period/2)-WMA(C,Period), Sqrt(Period)); Hull Moving Average(=HMA)가 위와 같을 경우 1. 5분봉차트에서 일봉의 HMA선을 CrossUP하면 매수 CrossDown하면 청산하는 식 부탁드립니다. 타종목Data2를 이용하지 않고 순수하게 분봉차트 하나만 가지고 적용하는 방식으로 부탁드립니다. 2. 일봉차트에서 주봉의 HMA선을 CrossUP하면 매수 CrossDown하면 청산하는 식 부탁드립니다. 타종목Data2를 이용하지 않고 순수하게 일봉차트 하나만 가지고 적용하는 방식으로 부탁드립니다. 항상 감사합니다.^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-02-17 10:03:54

안녕하세요 예스스탁입니다. 1. Input : Length(20); Var : Sum1(0), Counter1(0), CSum1(0),Hma(0),cnt(0); Var : Sum2(0), Counter2(0), CSum2(0); Var : Sum3(0), Counter3(0), CSum3(0); Array : daywma1[99](0),daywma2[99](0); var : cnt1(0); array : WC[99](0); if DayOfWeek(date) < DayOfWeek(date)[1] then{ for cnt1 = 1 to 98{ WC[cnt1] = WC[cnt1-1][1]; daywma1[cnt] = daywma1[cnt-1][1]; daywma2[cnt] = daywma2[cnt-1][1]; } } WC[0] = C; Sum1= 0; CSum1 = 0; For counter1 = 0 To Length - 1 Begin Sum1 = Sum1 + wc[counter1] * (Length - counter1); CSum1 = CSum1 + Length - counter1; End; If CSum1 > 0 Then DayWMA1[0] = Sum1 / CSum1; Else DayWMA1[0] = 0; Sum2= 0; CSum2 = 0; For counter2 = 0 To Length/2 - 1 Begin Sum2 = Sum2 + wc[counter2] * (Length/2 - counter2); CSum2 = CSum2 + Length/2 - counter2; End; If CSum2 > 0 Then DayWMA2[0] = Sum2 / CSum2; Else DayWMA2[0] = 0; Sum3= 0; CSum3 = 0; For counter3 = 0 To Sqrt(Length) - 1 Begin Sum3 = Sum3 + (2*daywma2[counter3]-daywma1[counter3]) * (Sqrt(Length) - counter3); CSum3 = CSum3 + Sqrt(Length) - counter3; End; If CSum3 > 0 Then HMa= Sum3 / CSum3; Else HMa = 0; if crossup(c,HMa) Then buy(); if CrossDown(c,HMa) Then sell(); 2. Input : Length(20); Var : Sum1(0), Counter1(0), CSum1(0),Hma(0),cnt(0); Var : Sum2(0), Counter2(0), CSum2(0); Var : Sum3(0), Counter3(0), CSum3(0); Array : weekwma1[99](0),weekwma2[99](0); var : cnt1(0); array : WC[99](0); if dayOfWeek(date) < dayOfWeek(date)[1] then{ for cnt1 = 1 to 98{ WC[cnt1] = WC[cnt1-1][1]; weekwma1[cnt1] = weekwma1[cnt1-1][1]; weekwma2[cnt1] = weekwma2[cnt1-1][1]; } } WC[0] = C; Sum1= 0; CSum1 = 0; Sum2= 0; CSum2 = 0; if wc[Length] > 0 Then{ For counter1 = 0 To Length - 1 Begin Sum1 = Sum1 + wc[counter1] * (Length - counter1); CSum1 = CSum1 + Length - counter1; End; } If CSum1 > 0 Then weekWMA1[0] = Sum1 / CSum1; Else weekWMA1[0] = 0; if wc[Length] > 0 Then{ For counter2 = 0 To Length/2 - 1 Begin Sum2 = Sum2 + wc[counter2] * (Length/2 - counter2); CSum2 = CSum2 + Length/2 - counter2; End; } If CSum2 > 0 Then weekWMA2[0] = Sum2 / CSum2; Else weekWMA2[0] = 0; Sum3= 0; CSum3 = 0; if weekwma1[Length] > 0 then{ For counter3 = 0 To Sqrt(Length) - 1 Begin Sum3 = Sum3 + (2*weekwma2[counter3]-weekwma1[counter3]) * (Sqrt(Length) - counter3); CSum3 = CSum3 + Sqrt(Length) - counter3; End; } If CSum3 > 0 Then HMa= Sum3 / CSum3; Else HMa = 0; if crossup(c,HMa) Then buy(); if CrossDown(c,HMa) Then sell(); 즐거운 하루되세요 > 일목초인 님이 쓴 글입니다. > 제목 : HMA 관련 시스템 부탁드립니다. > 다음은 인터넷에서 접한 Hull Moving Average라는 이평선을 지표로 작성해 본 것입니다. Input : Period(20); var : HMA(0); HMA = WMA(2*WMA(C, Period/2)-WMA(C,Period), Sqrt(Period)); Hull Moving Average(=HMA)가 위와 같을 경우 1. 5분봉차트에서 일봉의 HMA선을 CrossUP하면 매수 CrossDown하면 청산하는 식 부탁드립니다. 타종목Data2를 이용하지 않고 순수하게 분봉차트 하나만 가지고 적용하는 방식으로 부탁드립니다. 2. 일봉차트에서 주봉의 HMA선을 CrossUP하면 매수 CrossDown하면 청산하는 식 부탁드립니다. 타종목Data2를 이용하지 않고 순수하게 일봉차트 하나만 가지고 적용하는 방식으로 부탁드립니다. 항상 감사합니다.^^