Donnerstag, 18. April 2024, 02:51 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

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.

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

1

Dienstag, 1. Oktober 2013, 00:33

Zeitraum für TestErg() einschränken

Hallo,
Ich möchte den Zeitraum für die Bestimmung eines Testergebnisses einschränken. Also z. B. das HS hat einen Zeitraum vom 1.1. 2000 bis heute. Über den gesamten Zeitraum war z. B. der Drawdown der KK 1000. Nun möchte ich aber im Testergebnis hart ausgewiesen haben, wie der DD der KK vom 1.1. 2011 bis 31.12.2011 war (also dort z. B. nur 700). Wie kann ich diese zeitliche Einschränkung vornehmen (im VB code)?

Quellcode

1
Ergebnis=TestErg("MaxUnderwaterDrawdown")

Danke und Grüße
-dubi

Investox

Administrator

Registrierungsdatum: 31. August 2002

Beiträge: 5 680

2

Dienstag, 1. Oktober 2013, 18:38

Hallo,

das TestErg() liefert ja nur einen Zahlenwert, da kann zeitlich nichts beschränken. Es ist in einem solchen Falle also notwendig, die Berechnung neu zu erstellen. In diesem Fall (Maximaler Drawdown des Zeitraumes 1.1.2001 bis vor 1.1.2002) geht dies z.B. wie folgt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
option explicit 
dim i
dim Kapital, RelevanteZeit, HHVWert, MaxDD
const Startwert = -9999999999999
MaxDD=0
HHVWert=Startwert
  '  Den Schalter zwischen den beiden gewünschten Daten auf "1" stellen:
if scriptberechneformel("Schalter(0, DateMark(1,1,2001,0,0), 1, DateMark(1,1,2002,0,0), 0)", RelevanteZeit) then
	GetKapitalkurve Kapital
	for i=1 to ubound(Kapital)
		if Kapital(i)<>Novalue then 'Prüfen!!
			if RelevanteZeit(i)>0 then
				if Kapital(i) > HHVWert then
					HHVWert = Kapital(i)
				end if
				if Kapital(i) - HHVWert < MaxDD then
					MaxDD = Kapital(i) - HHVWert
				end if
			end if	
		end if
	next
end if
if HHVWert > Startwert then			
	Ergebnis =  MaxDD
else
	Ergebnis = "K/A"
end if

dubi

Profi

Registrierungsdatum: 1. September 2002

Beiträge: 331

3

Dienstag, 1. Oktober 2013, 23:12

Wow - Danke Herr Knöpfel!

Das war *etwas* komplizierter als ich mir das - als VBS Anfänger - vorgestellt habe :huh:
Herzlichen Dank -
es funktioniert prima und gibt good food for thought....


Grüße
-dubi