두 가지입니다.
하나는
input : alpha(0.07), len(12)
Var7 = 0
If len = 0 Then
Var1 = (high + low)/2
Else Var1 = (high + low)/2 - mov((high + low)/2, len, s)
End If
Var2 = (Var1 + 2*var1(1) + 2*var1(2) + Var1(3))/6
Var3 = ((1 - 0.5 * alpha)^2)*(Var2 - 2*var2(1) + Var2(2)) + 2*(1 - alpha)*var3(1) - ((1 - alpha)^2)*var3(2)
If currentbar < 7 Then Var3= (Var1 - 2*var1(1) + Var1(2))/4
Var4 = (0.0962*var3 + 0.5769*var3(2) - 0.5769*var3(4) - 0.0962*var3(6))*(0.5 + 0.8*var7(1))
Var5 = Var3(3)
If Var4 <> 0 And Var4(1) <> 0 Then Var6 = (Var5/var4 - Var5(1)/var4(1))/(1 + Var5*var5(1)/(Var4*var4(1)))
If Var6 < 0 Then Var6 = Var6(1)
If Var6 > 1.1 Then Var6 = 1.1
Var8=0
Var9=0
For i = 0 To 40
Var8 = Var9 + Var6
If Var8 >= 6.28318 And Var9 < 6.28318 Then Var10 = i + 1
Var9 = Var8
Next
Var7 = 0.2*var10 + 0.8*var7(1)
Call ploti1("period",Var7)
다른 하나는
input : len(10)
Var1 = (high + low) / 2
Var2 = hhv(1, Var1, len)
Var3 = llv(1, Var1, len)
If Var2-var3=0 Then Var2=var3+0.001
Var4 = 0.5*2*((Var1 - Var3)/(Var2 - Var3) - 0.5) + 0.5*var4(1)
If Var4 > 0.999 Then Var4 = 0.999
If Var4 < -0.999 Then Var4 = -0.999
Var5 = 0.5*log((1+var4)/(1-Var4)) + 0.5 * Var5(1)
Call ploti1("fisher", Var5)
Call ploti2("signal", Var5(1))
입니다.
답변 1
예스스탁
예스스탁 답변
2021-03-18 10:29:27
안녕하세요
예스스탁입니다.
1
input : alpha(0.07), len(12);
var : i(0);
Var7 = 0;
If len == 0 Then
Var1 = (high + low)/2;
Else
Var1 = (high + low)/2 - ma((high + low)/2, len);
if CurrentBar >= 1 Then
{
Var2 = (Var1 + 2*var1[1] + 2*var1[2] + Var1[3])/6;
Var3 = ((1 - 0.5 * alpha)^2)*(Var2 - 2*var2[1] + Var2[2]) + 2*(1 - alpha)*var3[1] - ((1 - alpha)^2)*var3[2];
If currentbar < 7 Then Var3 = (Var1 - 2*var1[1] + Var1[2])/4;
Var4 = (0.0962*var3 + 0.5769*var3[2] - 0.5769*var3[4] - 0.0962*var3[6])*(0.5 + 0.8*var7[1]);
Var5 = Var3[3];
If Var4 <> 0 And Var4[1] <> 0 Then
Var6 = (Var5/var4 - Var5[1]/var4[1])/(1 + Var5*var5[1]/(Var4*var4[1]));
If Var6 < 0 Then Var6 = Var6[1];
If Var6 > 1.1 Then Var6 = 1.1;
Var8=0;
Var9=0;
For i = 0 To 40
{
Var8 = Var9 + Var6;
If Var8 >= 6.28318 And Var9 < 6.28318 Then
Var10 = i + 1;
Var9 = Var8;
}
Var7 = 0.2*var10 + 0.8*var7[1];
plot1(Var7,"period");
}
2
input : len(10);
Var1 = (high + low) / 2;
Var2 = Highest(Var1, len);
Var3 = Lowest(Var1, len);
If Var2-var3==0 Then
Var2=var3+0.001;
if CurrentBar >= 1 Then
{
Var4 = 0.5*2*((Var1 - Var3)/(Var2 - Var3) - 0.5) + 0.5*var4[1];
If Var4 > 0.999 Then Var4 = 0.999;
If Var4 < -0.999 Then Var4 = -0.999;
Var5 = 0.5*log((1+var4)/(1-Var4)) + 0.5 * Var5[1];
plot1(Var5,"fisher");
plot2(Var5[1],"signal");
}
즐거운 하루되세요
> thecool 님이 쓴 글입니다.
> 제목 : 대신증권 사이보스 수식 예스수식으로 변환 부탁드립니다.
> 두 가지입니다.
하나는
input : alpha(0.07), len(12)
Var7 = 0
If len = 0 Then
Var1 = (high + low)/2
Else Var1 = (high + low)/2 - mov((high + low)/2, len, s)
End If
Var2 = (Var1 + 2*var1(1) + 2*var1(2) + Var1(3))/6
Var3 = ((1 - 0.5 * alpha)^2)*(Var2 - 2*var2(1) + Var2(2)) + 2*(1 - alpha)*var3(1) - ((1 - alpha)^2)*var3(2)
If currentbar < 7 Then Var3= (Var1 - 2*var1(1) + Var1(2))/4
Var4 = (0.0962*var3 + 0.5769*var3(2) - 0.5769*var3(4) - 0.0962*var3(6))*(0.5 + 0.8*var7(1))
Var5 = Var3(3)
If Var4 <> 0 And Var4(1) <> 0 Then Var6 = (Var5/var4 - Var5(1)/var4(1))/(1 + Var5*var5(1)/(Var4*var4(1)))
If Var6 < 0 Then Var6 = Var6(1)
If Var6 > 1.1 Then Var6 = 1.1
Var8=0
Var9=0
For i = 0 To 40
Var8 = Var9 + Var6
If Var8 >= 6.28318 And Var9 < 6.28318 Then Var10 = i + 1
Var9 = Var8
Next
Var7 = 0.2*var10 + 0.8*var7(1)
Call ploti1("period",Var7)
다른 하나는
input : len(10)
Var1 = (high + low) / 2
Var2 = hhv(1, Var1, len)
Var3 = llv(1, Var1, len)
If Var2-var3=0 Then Var2=var3+0.001
Var4 = 0.5*2*((Var1 - Var3)/(Var2 - Var3) - 0.5) + 0.5*var4(1)
If Var4 > 0.999 Then Var4 = 0.999
If Var4 < -0.999 Then Var4 = -0.999
Var5 = 0.5*log((1+var4)/(1-Var4)) + 0.5 * Var5(1)
Call ploti1("fisher", Var5)
Call ploti2("signal", Var5(1))
입니다.