커뮤니티

문의드립니다.

프로필 이미지
잡다백수
2018-03-20 10:25:00
163
글번호 117534
답변완료
매번 감사합니다. 1. 기타 코딩 변환 부탁드립니다. Inputs: Price((H+L)/2), Type(“BP”), N(0), Period(20), delta1(.1); Vars: c0(1), c1(0), b0(1), b1(0), b2(0), a1(0), a2(0), alpha(0), beta1(0), gamma1(0), Filt(0); If Type = “EMA” Then Begin If CurrentBar <= N then Filt = Price; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/ Period); b0 = alpha; a1 = 1 - alpha; End; If Type = “SMA” Then Begin If CurrentBar <= N then Filt = Price; c1 = 1 / N; b0 = 1 / N; a1 = 1; End; If Type = “Gauss” Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “Butter” Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha / 4; b1 = 2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “Smooth” Then Begin c0 = 1 / 4; b1 = 2; b2 = 1; End; If Type = “HP” Then Begin If CurrentBar <= N then Filt = 0; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/ Period); c0 = 1 - alpha / 2; b1 = -1; a1 = 1 - alpha; End; If Type = “2PHP” Then Begin If CurrentBar <= N then Filt = 0; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = (1 - alpha / 2)*(1 - alpha / 2); b1 = -2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “BP” Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 - alpha) / 2; b2 = -1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If Type = “BS” Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 + alpha) / 2; b1 = -2*beta1; b2 = 1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If CurrentBar > N Then Begin Filt = c0*(b0*price + b1*Price[1] + b2*Price[2]) + a1*Filt[1] + a2*Filt[2] - c1*Price[N]; Plot1(Filt, “Swiss”); End;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-03-21 09:46:29

안녕하세요 예스스탁입니다. Inputs : N(0),Period(20),delta1(0.1),Type(1); #Type : ema(1), sma(2),Gauss(3),Butter(4),Smooth(5),HP(6),2PHP(7),BP(8),BS(9) Vars: Price(0), c0(1),c1(0),b0(1),b1(0),b2(0),a1(0),a2(0),alpha(0),beta1(0),gamma1(0),Filt(0); Price = (H+L)/2; If Type == 1 Then Begin If CurrentBar <= N then Filt = Price; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period); b0 = alpha; a1 = 1 - alpha; End; If Type == 2 Then Begin If CurrentBar <= N then Filt = Price; c1 = 1 / N; b0 = 1 / N; a1 = 1; End; If Type == 3 Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type == 4 Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha / 4; b1 = 2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type == 5 Then Begin c0 = 1 / 4; b1 = 2; b2 = 1; End; If Type == 6 Then Begin If CurrentBar <= N then Filt = 0; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/Period); c0 = 1 - alpha / 2; b1 = -1; a1 = 1 - alpha; End; If Type == 7 Then Begin If CurrentBar <= N then Filt = 0; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = (1 - alpha / 2)*(1 - alpha / 2); b1 = -2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type == 8 Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 - alpha) / 2; b2 = -1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If Type == 9 Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 + alpha) / 2; b1 = -2*beta1; b2 = 1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If CurrentBar > N Then Begin Filt = c0*(b0*price + b1*Price[1] + b2*Price[2]) + a1*Filt[1] +a2*Filt[2] - c1*Price[N]; Plot1(Filt, "Swiss"); End; 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 문의드립니다. > 매번 감사합니다. 1. 기타 코딩 변환 부탁드립니다. Inputs: Price((H+L)/2), Type(“BP”), N(0), Period(20), delta1(.1); Vars: c0(1), c1(0), b0(1), b1(0), b2(0), a1(0), a2(0), alpha(0), beta1(0), gamma1(0), Filt(0); If Type = “EMA” Then Begin If CurrentBar <= N then Filt = Price; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/ Period); b0 = alpha; a1 = 1 - alpha; End; If Type = “SMA” Then Begin If CurrentBar <= N then Filt = Price; c1 = 1 / N; b0 = 1 / N; a1 = 1; End; If Type = “Gauss” Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “Butter” Then Begin If CurrentBar <= N then Filt = Price; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = alpha*alpha / 4; b1 = 2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “Smooth” Then Begin c0 = 1 / 4; b1 = 2; b2 = 1; End; If Type = “HP” Then Begin If CurrentBar <= N then Filt = 0; alpha = (Cosine(360/Period) + Sine(360/Period) - 1) / Cosine(360/ Period); c0 = 1 - alpha / 2; b1 = -1; a1 = 1 - alpha; End; If Type = “2PHP” Then Begin If CurrentBar <= N then Filt = 0; beta1 = 2.415*(1 - Cosine(360 / Period)); alpha = -beta1 + SquareRoot(beta1*beta1 + 2*beta1); c0 = (1 - alpha / 2)*(1 - alpha / 2); b1 = -2; b2 = 1; a1 = 2*(1 - alpha); a2 = -(1 - alpha)*(1 - alpha); End; If Type = “BP” Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 - alpha) / 2; b2 = -1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If Type = “BS” Then Begin If CurrentBar <= N then Filt = Price; beta1 = Cosine(360 / Period); gamma1 = 1 / Cosine(720*delta1 / Period); alpha = gamma1 - SquareRoot(gamma1*gamma1 - 1); c0 = (1 + alpha) / 2; b1 = -2*beta1; b2 = 1; a1 = beta1*(1 + alpha); a2 = -alpha; End; If CurrentBar > N Then Begin Filt = c0*(b0*price + b1*Price[1] + b2*Price[2]) + a1*Filt[1] + a2*Filt[2] - c1*Price[N]; Plot1(Filt, “Swiss”); End;