Dienstag, 16. April 2024, 19:02 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

RalfW

unregistriert

1

Sonntag, 12. Februar 2012, 18:27

Indikator in Abhängigkeit des Titelnamens erstellen

Hallo zusammen,

dies ist mein erster Forenbeitrag, deshalb erstmal ein ganz herzliches Hallo an alle Forenmitglieder, Herrn Knöpfel und seine Kollegen!

Und nun zu meinem Thema:
Ich möchte gerne die CFTC Daten (als Indikatoren) in Abhängigkeit des aktuell ausgewählten Titels anzeigen.

Beispiel:
Der aktuell ausgewählte Titel ist der Öl-Future (CL) oder der entsprechende Öl-ETF (USO). In diesem Fall möchte ich gerne folgende CFTC Daten als Indikator anzeigen
- Indikator 1 = Nettopositionen der Commercials (entspicht L&P Datenreihen: "CrudeOil Commercial Long" minus "CrudeOil Commercial Short")
- Indikator 2 = Nettopositionen der Non Comercials (entspicht L&P Datenreihen: "CrudeOil NonCommercial Long" minus "CrudeOil NonCommercialShort")

Problem:
Wie kann ich im Formeleditor auf den Namen des aktuell ausgewählten Titels zugreifen um die obigen Berechnungen für die beiden Indikatoren zu erstellen?

Bin bei meiner Suche im Forum nur auf die Möglichkeit gestoßen, den Titelnamen in einem Java Script zu benutzen. Java Script möchte ich aber gerne wegen meinen nicht so tollen Programmierkenntnissen vermeiden.

Ich hoffe dass es eine direkte Möglichkeit gibt.

Viele Grüße
RalfW

pit2

unregistriert

2

Sonntag, 12. Februar 2012, 19:27

Hallo,

hab nur eine Idee für einen workaround:

1) 2 Berechnungstitel (Indi1 & Indi2) für jeden Future erstellen, den du darstellen möchtest, bestehend aus den COT Daten Berechnungen wie von dir angegeben (muss man nur einmal machen, aktualisiert sich dann von alleine)
2) Neues Projekt erstellen wo du alle gewünschten Berechnungstitel (und zwar Indi1) ganz normal dem Projekt zufügst. Die Berechnungstitel stehen jetzt in deiner Titelliste.
3) Chart>>Layoutmodus>>Titellayout selektieren. Du hast nun die Berechnungstitel als Basistitel, darunter ordnest du die echten Basiswerte (also deine Futures) und Indi 2 an. IVX speichert nun für jeden Titel ein eigenes Layout ab, so wie du es zuletzt verlassen hast.
4) Voila auf dem Chart siehst du Basisfuture, Indi1 und Indi2

Du musst dann nur im weiteren dran denken, daß soweit es IVX betrifft, der Berechnungstitel Indi1 dein Basistitel ist, wenn du jetzt zum Beispiel anfängst Handelssysteme zu bauen laufen die auf Indi1, nicht auf den Future. Aber für die Chartdarstellung sollte das so gehen.

Vielleicht denkst du in die Richtung mal weiter, das kann man bestimmt noch eleganter lösen.

LG

Pit

pit2

unregistriert

3

Sonntag, 12. Februar 2012, 19:47

Je nachdem was du vorhast, kann es auch sinnvoller zu sein die Futures als Basistitel zu laden und dann wieder Titellayout zu wählen und statt Berechnungstitel zu erzeugen, die Berechnungen für jeden Titel direkt in den entsprechenden Teilcharts über dem Basistitel einzufügen.

Nur hast du dann für den Future dein Titellayout schon verbraten, m.W. hat jeder Titel nur ein Titellayout.

Wie gesagt, kommt drauf an was du sonst noch so mit dem Titel vorhast.

Gruss

Pit

RalfW

unregistriert

4

Sonntag, 12. Februar 2012, 19:51

Hallo Pit2,

über die Funktionalität Berchnungstitel habe ich auch schon nachgedacht. Allerdings gibt es ja das gleiche Problem: wie erstelle ich einen BT mit der Formel Ind1 = Datenreihe1 - Dtaenreihe2, wobei die Datenreihen für jeden Fututre unterschiedlich sind.

Aber du hast mich auf eine andere gute Idee gebracht. Über Titellayout kann ich ja über Formel-Einfügen für jeden Future und ETF die Formeln individuell eingeben und ich hätte das gewünschte Ergebnis. Nur ist das bei 50-60 Titeln halt etwas aufwändig.

Auf jeden Fall vielen Dank für deinen Tip, als work around könnte ich das mit dem Titel-Layout so hinbekommen.

Vielleicht kennt dennoch jemand eine Funktionalität, mit der ich auf besagten Titelnamen zugreifen kann.

Viele Grüße
RalfW

pit2

unregistriert

5

Sonntag, 12. Februar 2012, 20:02

Du musst natürlich für jeden Future einen Berechnungstitel erzeugen, das ist klar, aber das machst einmal und gut. Nicht so elegant, ist mir schon klar.

Zugriff auf einen bestimmte Datenreihe variabel in Abhängigkeit von aktuellen Basistitel, gibt es meines Wissens in den Bordmitteln nicht. Woher soll das Programm wissen, welche COT Titelreihe zu welchem Basisfuture gehört? Das sind einfach zwei komplett unabhängige Datenreihen, die durch eine Berechnung nicht miteinander zu verknüpfen sind.

Was du willst kann man in Excel über Referenzfunktionen lösen, aber auch nur wenn die Namenskonvention 100% stringent durchgehalten wird, das kannste dann natürlich auch in IVX extern programmieren. Wenn du das nicht willst, ist das obige wahrscheinlich deine beste Chance.

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

6

Sonntag, 12. Februar 2012, 20:12

Also zwei kurze Anmerkungen von mir dazu:

1. um zu prüfen ob ein bestimtmer Titel gerade im HS verwendet wird oder im Chart angezeigt gibt´s die Funktion

Quellcode

1
IstBasis(#"TitelName"#)


2. Leider wirst du imho nicht umhinkommen eine größere IF(...) Verschaltelungsschleife dafür zu basteln in Kombination mit Istbasis().
If you think it´s expensive to hire a professional, wait until you hire an amateur.

RalfW

unregistriert

7

Sonntag, 12. Februar 2012, 20:44

Hallo Lenzelott, hallo pit2

@Pit2:
du hast natürlich Recht damit, dass ich ein größeres If ... then .. else verschachteln muss, besser wäre natürlich ein case Statement wie in anderen Sprachen.

@Lenzelott:
Das ist denke die Funktion, die ich gesucht habe. Über die bin ich auch bei meiner Suche schon mal gestolpert, aber ich habe die Beschreibung beim ersten Lesen falsch interpretiert.

So sollte es funktionieren:
IF(IstBasis(#Future1#), Close(CommercialFuture1_Long) - Close(CommercialFuture1_Short),

IF(IstBasis(#Future2#), Close(CommercialFuture2_Long) - Close(CommercialFuture2_Short), ...)))
... das werde ich morgen ausprobieren.
Vielen Dank für Eure Tips und beste Grüße aus Bad Nauheim!!!
RalfW

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

8

Mittwoch, 15. Februar 2012, 00:09

besser wäre natürlich ein case Statement wie in anderen Sprachen.

Wenn Du nur 3 oder 4 Futures hast, die Du so beobachten willst, geht das noch.
aber irgendwann wird´s echt unübersichtlich, mit den ganzen Klammern und verschachtleten if´s, das stimmt unbesehen.

Wenn Du das in VB Script machst, sollte das ganze evtl etwas eleganter gehen.
Ohne jetzt sehr genau drüber nachgedacht zu haben würde ich sagen, müsste man sich eine Textdatei anlegen, mit folgender Struktur:

Future1, CommercialFuture1_Long, CommercialFuture1_Short
Future2, CommercialFuture2_Long, CommercialFuture2_Short
Future3, CommercialFuture3_Long, CommercialFuture3_Short
...

Die Textdatei liest man mit einem VB Script beim Start ins GlobalData.
Und dann programmiert man einen Indikator, der durch die einzelnen "Zeilen" im GlobalData loopt und wenn er den aktuellen Titel dort findet mittels der beiden anderen Felder
Close(..)-close(...) zurück gibt.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

RalfW

unregistriert

9

Mittwoch, 15. Februar 2012, 08:29

Hallo Lenzelott,

ich denke auch, dass ich um die Progammierung in VB Script nict drum herum komme, wenn ich das ordentlich lösen will.
Zurzeit versuche ich den oben beschriebenen Work Around. Wenn ich dann mal ein wenig Zeit habe, werde ich mich in die Progammierung mit VB Script einarbeiten und das außerhalb Investox programmieren.

Viele Grüße
Ralf