Dienstag, 16. April 2024, 09:36 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

1

Dienstag, 2. September 2014, 16:30

Dezimalzahl in Binärzahl wandeln und Stelle bestimmen

Hallo,

Wozu?
Ich suche eine Lösung für folgendes Problem. Für eine Intermarket-Untersuchung habe ich viele Kurszeitreihen und möchte ermitteln welche Zeitreihe oder auch Kombination am besten funktioniert.

Idee:
-hierfür einen Robustheitstest zu starten, der alle Möglichkeiten systematisch durchprobiert, um so das beste Ergebnis für das HS zu ermiiteln
-bei z.B. 3 Zeitreihen gibt es 2^3=8 Kombinationsmöglichkeiten, d.h. Robustheitstest von 0,1,2,3,4,5,6 bis 7, wie folgt:
DZ| 2^2 2^1 2^0
0|0 0 0
1|0 0 1
2|0 1 0
3|0 1 1
4|1 0 0
5|1 0 1
6|1 1 0
7|1 1 1

//PseudoCode
global Calc sum:
if(isTrueWennEine'1'inSpalte2^2(DZ), kursreihe1, 0) +
if(isTrueWennEine'1'inSpalte2^1(DZ), kursreihe2, 0) +
if(isTrueWennEine'1'inSpalte2^0(DZ), kursreihe3, 0);

Wie kann man diese Berechung, isTrueWennEine'1'inSpalte2^0() bzw. isTrueWennEine'1'inSpalte2^1() am besten in der Investoxsprache durchführen?
Hat das vielleicht schon jemand mal probiert?
Danke.

Viele Grüße,
Sten

PS:
Das ist ein Codemuster was man für die verschiedensten Analysen immer wieder verwenden kann, z.B. man möchte ein MasterNN erstellen aus vielen einzel NN-Signalen. Auch hier triff das gleiche Problem auf, welche NN-Signale liefern in der Kombination das beste Ergebnis.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sten« (2. September 2014, 16:38)


Bernd

Experte

Registrierungsdatum: 5. Juni 2005

Beiträge: 4 070

Wohnort: Iringsweg

2

Sonntag, 7. September 2014, 18:33

Hi Sten

Binär durchtesten ist jetzt nicht so schwer in der Investox Sprache, und man muss auch nix von Dezimal nach Binär umwandeln.

Wenn ich es recht verstanden habe, hast Du also eine Zahl zwischen 0 bis 7 in einem global calc Vektor in Deinem Beispiel aus der Addition der Binär Trigger und Power-Multiplikation und möchtest wissen, wie jede einzene Zeitreihe abschneidet?

Natürlich kannst Du nun jede Kombination durchtesten, aber je mehr Zeitreihen dazukommen, desto länger wird die Rechenzeit. Ich rechne daher jede Zeitreihe (entsprechend dem gesetzten Bit) einzeln durch im Robtest und addiere die n Kombinationen, welche die beste meiner Lieblingszahlen (ist bei mir das MAR Ratio) gebracht haben. So komme ich auch bei grösseren Daten-Beständen und der Aus-Multiplikation mit vielen Kombinationen sehr bald zu einem Ergebnis.

Ich mache ein einfaches Beispiel mit einer Datenreihe, die nicht 8 Kombinationen entsprechend den Zahlen von 0 bis 7 testen soll wie bei Dir im Eingangs-Posting, sondern sagen wir die Zahlen von 0 bis 12, wobei mit der Kombination 0 kein Ergebnis zu Stande kommen würde, und wir uns diesen Test schon mal sparen.

Ich habe also 12 Kombinationen zu testen und möchte am Ende ein kombiniertes Ergebnis weiterverwenden. Da die Zahl 12 gerade die Moante des Jahres sind und sich so eine Zeitreihe gut erzeugen lässt als Beispiel, mache ich es mal so:

Quellcode

1
2
3
global calc Monatsmatrix:		[Monatsmatrix:128.0,1|2|4|8|16|32|64|128|256|512|1024|2048];  // Monate einzeln durchtesten, die besten addieren und dann mit jener Zahl weiterarbeiten:
global calc Monat:					DatePart(m);
global calc Handelsmonat:	And( Monatsmatrix, Power( 2, Monat-1))=Power( 2, Monat-1);


Sagen wir, dass der Robtest nun zeigt, dass die Monate 3, 4 und 7 das beste Ergebniss erbringen (MAR Ratio, meine Zahl wie oben erklärt), so würde ich nun die Variable Monatsmatrix auskommentieren und eine neue stattdessen als Addition hinschreiben:
global calc Monatsmatrix: 76; // (=4+8+64)

Das selbe Prinzip könntest Du nun auf die Addition / Stellenmultiplikation der binären Ergebnisse Deiner Zeitreihen anwenden und die besten Kombinationen sehr schnell rausfiltern, statt's *alle* möglichen Kombinationen durchzuprobieren. Das wird Dir Äonen von Rechenstunden sparen und am Ende rechnest Du mit der Indikatoren-Kombination weiter, die das beste [MAR-Ratio,Trefferquote,was auch immer Dir wichtig ist] hat.

Viel Erfolg!


PS: im Beispiel würde die Variable Handelsmonat weiterverwendet und ins Setup einfliessen mit dem simplen Ausdruck "AND Handelsmonat"
Gruss
Bernd

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Bernd« (7. September 2014, 18:51)


sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

3

Freitag, 12. September 2014, 23:13

Hallo Bernd,

Danke für Deinen Vorschlag.

Viele Grüße,
Sten