Metastock: Fehlermeldung beim Systemtest
Ich möchte einen Systemtest machen, aber es erscheint immer "period out of valid range in blabla function".
Der Indikator selbst wird aber angezeigt, und ich habe die maximale Zahl in den chart geladen. Was kann ich tun?
redsnapper
Geschrieben von Gast (nicht überprüft)
am
Könntest Du nähere Angaben machen? Welcher Indikator, welches Instrument, vielleicht ein Bild hier reinstellen. Die Meldung habe ich noch nie gesehen (das heisst aber nicht viel), vielleicht kann man das ja nachvollziehen.
Mit freundlichen Grüßen
Bernd Kürbs
Hallo Bernd,
Bilder rein stellen tu ich nicht mehr, weil das die Ladezeit der Seite zu sehr beeinträchtigt. ;)
Geplant hatte ich auf einen NQ 5min chart laufen zu lassen, aber die Meldung kriege ich auch für daily charts.
System
Enter long:
Cross(opt1,ForecastOsc(CLOSE,opt3))
Enter short:
Cross(ForecastOsc(CLOSE,opt3),opt2)
opt1: 5-21 step: 1
opt2: 1-15 step: 1
opt3: -15 -1 step: 1
Indikator
Forecast osc:
Pds:=Input("Time Periods",1,1000,5);
Fld:=Input("Price Field 1=C 2=O 3=H 4=L",1,4,1);
PFld:=If(Fld=1,C,If(Fld=2,O,If(Fld=3,H,L)));
Sig:=Input("Signal MA Periods",1,200,3);
ForO:=((Pfld-(Ref(LinearReg(Pfld,Pds),-1)+
Ref(LinRegSlope(Pfld,Pds),-1)))*100)/Pfld;
ForO;
Mov(ForO,Sig,E);
{end}
Fehlermeldung
"The selected test was not completed becasuse the enter long formula terminated
with the following error message:
Period out of valid range in Forecastosc() function"
Ich habe es nicht ausprobiert, aber versuche es mal mit ForecastOsc(opt3, Close)).
Der ForeCastOscillator will als erstes Argument die Time Periods, hier hast du den Closewert eingegeben.
Viel Erfolg
Bernd Kürbs
Das war es leider nicht. Für opt3 kam dann "constant variable expected", was eher für das CLOSE sprechen würde.
Ich schau mal weiter.
Vielen Dank!
Da hast du Recht, der Funktionsaufruf für den Systemtester unterscheidet sich in seinen Parametern vom Indikator. Der Funktionsaufruf will das Array und die Perioden haben, Close und opt3 sind ok. Beim Anschauen Deiner OPT-Parameter ist mir aufgefallen, dass Du die Werte für opt3 von -15 bis +1 laufen lassen willst: Schreibfehler?
Ein negativer Wert für eine Zeitperiode macht eigentlich keinen Sinn und auch wenn Du in Deinem Funktionscode die REF Funktion verwendest, scheint mir der Aufruf des (eingebauten) ForecastOsc hier einen positiven Wert zu erwarten. Ich habe das gerade ausprobiert, wenn ich negative Werte für opt3 einsetze erhalte ich keine Ergebnisse, aber auch nicht Deine Fehlermeldung. Welche Version verwendest Du (ich habe MS 7.21)?
Zudem habe ich erst Ergebnisse bekommen, nachdem ich folgende Änderungen gemacht habe: Ich habe den Test auf den SP500 gemacht, mit 5min Daten. Die Bedingung Cross(opt1,ForecastOsc(CLOSE,opt3)) habe ich geändert in Cross(-opt1*0.1,ForecastOsc(CLOSE,opt3)) und den Wertebereich für opt1: 1-5 Schritt 1. Analog bei EnterShort.
Grund: der Forecastosc bewegt sich für den SP500 hauptsächlich zwischen +0.5 und -0.5, Werte zwischen 5 und 21 werden überhaupt nicht erreicht, also gibt es auch kein Signal.
Viel Erfolg
Bernd Kürbs
Hallo,
mit der Fehlermeldung kann ich leider (?) auch nicht dienen, die Exploration kann allerdings keine Ergebnisse liefern, die Tücke liegt wohl im Detail.
Du rufst in der Exploration eine Standardfunktion von MS auf, den Forcast Oscillator forecastosc( DATA ARRAY, PERIODS ) und nicht die Eigenkreation Deines Forecast Osc auf.
Bei einer Exploration könntest Du also z.B. in diese Richtung testen:
Cross(Mov(ForecastOsc(CLOSE,opt1),opt3,S),ForecastOsc(CLOSE,opt1))
Gruss
Bernd,
ich bin dann Deinem Tipp gefolgt, und da ging es plötzlich. Im NQ 5min werden auch nur Werte von -1 bis +1 erreicht, bzw. die anderen sind Einzelerscheinungen. Der Fehler war wohl die negativen Werte für opt3.
Metatrader,
Dein Ansatz funktioniert auch, ich habe nur nicht verstanden, warum ich mit dem Test den Standard "Forecast Oscillator" aufrufe, da mein Indikator ja "Forecast Osc" heißt. Oder wird der Name von MS automatisch ergänzt?
Die Tests selbst waren dann ganz vielversprechend, aber es werden sehr viele Gewinne wieder abgegeben. Ich werde mal weiter sehen in der Richtung, nicht cross mit dem MA zu nehmen, sondern das zurück kreuzen aus den Extrembereichen des Indikators. Z.B. enter long, wenn forecast osc 1. Weiß jemand, wie dafür die genaue Formel aussehen könnte?
Die nächsten Schritte wären dann, die periods für den Indikator zu optimieren, und das statische cross Level, was bei jeder Aktie/Future/Zeitrahmen zu variieren scheint. Im Moment nutze ich den Indikator mit 34 Periods, was noch am universellsten aussieht.
Vielen Dank Euch!
redsnapper
Hallo redsnapper,
Deine Formel muss mit Fml ("Forecast osc") angesprochen werden. Allerdings ist dann eine Optimierung der Parameter im Systemtester nicht mehr möglich.
Eine Optimierung ist nur möglich wenn die gesamte Formel in den Systemtester kopiert wird.
MLing72