Hallo,
>>Bei den „alten NN“ ist das ja auch machbar.
Ich nehme an, Sie meinen ein "Prognoseziel" (einen Output hat ja auch NeuroProg)? Die "alten NN" werden "überwacht" trainiert, benötigen also ein Prognoseziel. Die Neuronale Prognose wird dagegen unüberwacht mit Gen.Algorithmen trainiert, dabei gibt es kein Prognoseziel. Relevant sind hier die Testergebnisse des Handelssystems, die als Maßstab für die Beurteilung der Fitness (des HS, in dem das NN eingesetzt wird) verwendet werden.
Mit Hilfe eines passenden Anwender-Testergebnisses ist es aber auch möglich, dem HS ein Progoseziel für das NN vorgeben: Dazu muss das Testergebnis einfach den Fehler des NN-Outputs im Vergleich zum gewünschten Prognoseziel berechnen. Bei der Optimierung wird dann dieses Testergebnis als (einziges) Optimierungskriterium mit Einstellung "Minimieren" gewählt. Das Testergebnis kann wie folgt aussehen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
option explicit
dim Mini, Maxi, i, Fehler,n
dim NNOutput, Prognoseziel, Startdatum, Enddatum, Datumsfeld
Startdatum=cdbl(TestErg("SystemStart"))
Enddatum=cdbl(TestErg("SystemEnde"))
Getdatum Datumsfeld
scriptberechneformel "NN", NNOutput ' NN=Global Calc der NeuroProg-Berechnung
scriptberechneformel "Output", Prognoseziel ' Output=Global Calc des gewünschten Outputs
Mini=ErsteDatenperiode(NNOutput)
Maxi=LetzteDatenperiode(NNOutput)
for i=Mini to Maxi
if Datumsfeld(i)>=Startdatum AND Datumsfeld(i)<=Enddatum then
if Prognoseziel(i)<>Novalue then
Fehler=Fehler+abs(NNOutput(i)-Prognoseziel(i))^2 'quadratische Abweichung
n=n+1
end if
end if
next
if n>0 then
Ergebnis = sqr(Fehler/n) 'Durchschnittliche Abweichung als Ergebnis
else
Ergebnis = "K/A"
end if
|
Das Testergebnis sowie ein Beispielprojekt steht in der Database zur Verfügung:
http://www.investoxforum.de/index.php?pa…BData&dataID=92
Viele Grüße
Andreas Knöpfel