커뮤니티
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를 이용하지 않고
순수하게 일봉차트 하나만 가지고 적용하는 방식으로
부탁드립니다.
항상 감사합니다.^^
다음글
이전글