Lieber Besucher, herzlich willkommen bei: INVESTOX-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Gerasan
unregistriert
Zitat
Wenn Ihr euch meine kurze Beschreibung in einem Wiki zu diesem Indikator ein wenig könnt ihr erkennen, dass sich die Perioden stets überlappen, jedoch eine Periode (Training und anschließende Prognose) stets fix sind. Und dieses gilt sowohl für den Backtest als auch für das reale Trading.
Es funktioniert einfach auf der Grundlage, dass es einen festen Starttermin gibt. Unter der Annahme dieses festen Starttermins teile ich die Perioden für das Training und für die Prognose auf die gesamte Laufzeit auf. Durch diese Aufteilung ist sichergestellt, dass auch beim realen Trading die eingestellte Angabe für Testperioden berücksichtigt wird. Rein technisch wird der Indikator während dieser Perioden zwar neue trainiert, faktisch sollten aber die Ergebnisse zu sein, als würden alle zusammengehörenden Prognosen aus dem gleichen SVM berechnet. Dies ist möglich, da der Algorithmus deterministisch arbeitet.
Ein Manko meiner Vorgehensweise liegt darin, dass ich die Maschine mehr als nötig rechnen lasse.
Wenn Ihr das ganze nachvollziehen möchte bitte ich euch im Debug-Modus die Eingabedaten für den Test und für die Prognose zu betrachten. Ihr könnt dann feststellen, dass im Falle des Parameters Testperioden > 1 auch im realen Trading immer wieder mehr als ein Prognose wird in den Datenreihen auftaucht.
Gerasan
unregistriert
Gerasan
unregistriert
Zitat
Solnge das nicht geht, muß man beim Realtrading nur mit Testperioden = 1 arbeiten. Entsprechend auch das "Experiment"-Backtest müsste man sinnvollerweise auch mit der Einstellung Testperioden=1 machen.
sven
unregistriert
Gerasan
unregistriert
Quellcode |
|
1 2 |
#_LoadGlobal signal# RefVar(signal, -Mod(BarsSince(#_HS_Zeitraum KS#, 1), 5)) |
Gerasan
unregistriert
Quellcode |
|
1 |
global calc Wiederholungen: INT(BarsSince(#_HS_Zeitraum KS#, 1)/5); |
Gerasan
unregistriert
Gerasan
unregistriert
Quellcode |
|
1 |
global calc Wiederholungen: INT(BarsSince(#_HS_Zeitraum KS#, 1)/5); |
Quellcode |
|
1 2 3 4 5 6 7 8 |
Dim Zeiger as String Dim Wiederholungen( ) as Single Zeiger = Parameter(3) Wiederholungen = cDaten(Zeiger) ... 'nun kannst Du auf die Werte des Array Wiederholungen zugreifen. Dim Letzter_Wert_Wiederholungen as Integer Letzter_Wert_Wiederholungen = Wiederholungen(1233) 'z.B. |
Gerasan
unregistriert
Quellcode |
|
1 2 3 |
'Datenreihe die für Punkt P0 verwendet werden soll Dim ZeigerAufP0Daten As String = Parameter(1) Dim P0Daten(cDaten.UpperBound(ZeigerAufP0Daten) - 1) As Single |
Quellcode |
|
1 2 3 4 |
If cDaten.CopySingleFeldToAddress(ZeigerAufP0Daten, P0Daten(0), UBound(P0Daten) + 1) = False Then Calculate = ErrNoData Exit Function End If |
Quellcode |
|
1 2 3 4 5 6 7 8 |
''''''' Den Start- und Endindex für die Berechnung suchen: StartI = LBound(CloseDaten) EndI = UBound(CloseDaten) If SetzeGrenzen(P0Daten, StartI, EndI) <> True Then Calculate = ErrNoData Exit Function End If |
Gerasan
unregistriert
Quellcode |
|
1 |
INT(Perioden seit Startpunkt)/Testperioden); |