- Katılım
- 23 Eki 2020
- Mesajlar
- 1,828
Seeing the flurry of interest in Spyros and others' ideas, I put up this expert. Its just a tad different to the original idea. Kudos to Spyros and raftsp. My humble suggestion would be to please test it after deleting a certain portion of the data, and then add each day's data one by one. That should give you a fair idea as to how the signals are generated. Cool |
|
ZigZig Fixed 3% perc:=3; tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); tr:=If( (C-tr)*100/tr>= perc ,tr,0); tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr); pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); pk:=If((C-pk)*100/pk <=-perc , pk, 0); pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1, If(tr<>Ref(tr,-1), 1, 0)); res:=If(res=0,ValueWhen(1,res<>0,res),res); res |
|
ZigZig Fixed 5% perc:=5; tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); tr:=If( (C-tr)*100/tr>= perc ,tr,0); tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr); pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); pk:=If((C-pk)*100/pk <=-perc , pk, 0); pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1, If(tr<>Ref(tr,-1), 1, 0)); res:=If(res=0,ValueWhen(1,res<>0,res),res); res |
|
ZigZig Fixed 10% perc:=10; tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); tr:=If( (C-tr)*100/tr>= perc ,tr,0); tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr); pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); pk:=If((C-pk)*100/pk <=-perc , pk, 0); pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1, If(tr<>Ref(tr,-1), 1, 0)); res:=If(res=0,ValueWhen(1,res<>0,res),res); res |
|
ZigZig Fixed 15% perc:=15; tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); tr:=If( (C-tr)*100/tr>= perc ,tr,0); tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr); pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); pk:=If((C-pk)*100/pk <=-perc , pk, 0); pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1, If(tr<>Ref(tr,-1), 1, 0)); res:=If(res=0,ValueWhen(1,res<>0,res),res); res |
|
ZigZig Fixed 20% perc:=20; tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); tr:=If( (C-tr)*100/tr>= perc ,tr,0); tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr); pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1)); pk:=If((C-pk)*100/pk <=-perc , pk, 0); pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1, If(tr<>Ref(tr,-1), 1, 0)); res:=If(res=0,ValueWhen(1,res<>0,res),res); res |
|
ZigZig Fixed Fml( "ZigZig Fixed 3%" ) + Fml( "ZigZig Fixed 5%" ) + Fml( "ZigZig Fixed 5%" ) + Fml( "ZigZig Fixed 10%" ) + Fml( "ZigZig Fixed 15%" ) + Fml( "ZigZig Fixed 20%" ) |
Zig Zag Fixed All
perc:=Input("percent",1,100,10);
tr:=ValueWhen(1,Zig(C,perc,%)>Ref(Zig(C,perc,%),-1) AND
Ref(Zig(C,perc,%),-1)<Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1));
tr:=If( (C-tr)*100/tr>= perc ,tr,0);
tr:=If( tr=0, ValueWhen(1,tr<>0,tr), tr);
pk:=ValueWhen(1,Zig(C,perc,%)<Ref(Zig(C,perc,%),-1) AND
Ref(Zig(C,perc,%),-1)>Ref(Zig(C,perc,%),-2),Ref(Zig(C,perc,%),-1));
pk:=If((C-pk)*100/pk <=-perc , pk, 0);
pk:=If( pk=0, ValueWhen(1,pk<>0,pk), pk); res:=If(pk<>Ref(pk,-1), -1,
If(tr<>Ref(tr,-1), 1, 0));
res:=If(res=0,ValueWhen(1,res<>0,res),res);
res
Source / From: |