Mittwoch, 17. April 2024, 00:40 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.

LoboTrader Männlich

Fortgeschrittener

Registrierungsdatum: 13. Oktober 2012

Beiträge: 118

Wohnort: BW

1

Samstag, 2. Mai 2015, 12:44

Chartaufbau : Übertragung Globaler Variablen und Indikatoren in das Chart ( "Global const/calc " )

Hallo
Problemstellung :

ein Indikator soll im H1 und im H4 geprüft werden und seine Kombination ein Signal generieren . ( An dieser Stelle mein Dank an Wiwu / ASCUNIA für viel tolles Know How ! ) Zur weiteren Entwicklung des HS will ich beide Indikatoren in seperaten Chart darstellen , daher sollte ich beide Indikatoren als "global" und im Bereich "Definitionen" definieren . Das funktioniert bei mir solange , bis ich "Komp(#" in den Code bringe .

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
global const CMPerioden_H1: [CMPerioden_H1:35\fix,2,100,25,75,1,3,I];
global const CMLevel_H1: [CM_Level_H1:0.75\fix,0.5,8,3,6,0.05,1.0426,F];
global const CMPerioden_H4: [CMPerioden_H4:120,120,300,160,250,1,2.8983,I];
global const CMLevel_H4: [CM_Level_H4:10.5,0.5,8,3,6,0.05,1.9898,F];

// Var1 und Var2 nur eingeführt um zu versuchen , mit ´const/calc´und ´global const/calc ´ um das ´Komp´ herum  zu experimentieren
global const Var1: CMPerioden_H4;// reine VariablenÜbergabe wegen s.o. , kein Value add für Code

global calc Var2: Chartmill_Value_Indikator(Var1);// das klappt im Chart 
//global calc Var2: Komp(#Ref(Chartmill_Value_Indikator(Var1), -1)#, #240#) ; // das klappt im Chart nicht

global calc Indi_H4: Var2 ;// der Indi_H4 wird im Chart dargestellt 

//
//
//

global calc Indi_H1: Chartmill_Value_Indikator(CMPerioden_H1);//
global calc trend_H1: Schalter(0,Cross(Indi_H1,CMLevel_H1,1)=1,1,Cross(Indi_H1,Neg(CMLevel_H1),1)=-1,-1);// 
//global calc trend_H4: Schalter(0,Cross(Indi_H4,CMLevel_H4,1)=1,1,Cross(Indi_H4,Neg(CMLevel_H4),1)=-1,-1);


global calc Steigen: If(trend_H1 > 0 , 1 , 0 );//
global calc Fallen: If(trend_H1 < 0 , 1 , 0 );//




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
global const CMPerioden_H1: [CMPerioden_H1:35\fix,2,100,25,75,1,3,I];
global const CMLevel_H1: [CM_Level_H1:0.75\fix,0.5,8,3,6,0.05,1.0426,F];
global const CMPerioden_H4: [CMPerioden_H4:120,120,300,160,250,1,2.8983,I];
global const CMLevel_H4: [CM_Level_H4:10.5,0.5,8,3,6,0.05,1.9898,F];

// Var1 und Var2 nur eingeführt um zu versuchen , mit ´const/calc´und ´global const/calc ´ um das ´Komp´ herum  zu experimentieren 
global const Var1: CMPerioden_H4;// reine VariablenÜbergabe wegen s.o. , kein Value add für Code

//global calc Var2: Chartmill_Value_Indikator(Var1);// das klappt im Chart 
global calc Var2: Komp(#Ref(Chartmill_Value_Indikator(Var1), -1)#, #240#) ; // das klappt im Chart nicht

global calc Indi_H4: Var2 ;// der Indi_H4 wird im Chart dargestellt 

//
//
//

global calc Indi_H1: Chartmill_Value_Indikator(CMPerioden_H1);//
global calc trend_H1: Schalter(0,Cross(Indi_H1,CMLevel_H1,1)=1,1,Cross(Indi_H1,Neg(CMLevel_H1),1)=-1,-1);// 
//global calc trend_H4: Schalter(0,Cross(Indi_H4,CMLevel_H4,1)=1,1,Cross(Indi_H4,Neg(CMLevel_H4),1)=-1,-1);


global calc Steigen: If(trend_H1 > 0 , 1 , 0 );//
global calc Fallen: If(trend_H1 < 0 , 1 , 0 );//






Referenzen :


Komp Problem => Bernd : "Komp ist eigenes Universum"

und

Parameterübergabe an Komp() in Anwenderindikator scheitert => Verwendung von "global" scheint ein Issue in Verbindung mit "Komp(#"

und

Investox Formelsprache
Seite 55 ff


Meine Bitte an Euch :
- was mache ich im Code verkehrt ?
- wo/wie kann ich mich weiter in die INV Formelsprache einarbeiten ?


Vielen Dank
Lobo
Do not trade alone ....

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LoboTrader« (3. Mai 2015, 10:36)


Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

2

Samstag, 2. Mai 2015, 14:06

Nix für ungut, aber...

Bei mir funktioniert das übrigens 1:1 ohne Fehler.

Quellcode

1
2
const cmPerioden4h:[CMPerioden_H4:120,120,300,160,250,1,2.8983,I];
Komp(#Ref(Chartmill_Value_Indikator(cmPerioden4h), -1)#, #240#)



Bisschen wenig Informationen um wirklich qualifiziert helfen zu können.
"Das klappt nicht im Chart" ist keine Fehlermeldung mit der Dir hier irgend jemand helfen kann (außer rumraten), vor allem wenn es eigentlich funktionier vom Coding her.

Wie wäre es mit ner Fehlermeldung, die Investox ausspuckt im Log etc?

by the way: Bei Komp() sollte klar sein, dass man aus einem 1h Chart ein 4h KOMP berechnen kann, umgekehrt aber nicht.
Dein System muss also auf 1h Bars aufgesetzt sein.
Die 1 Stunden Signale musst Du dabei natürlich nicht "KOMP"en, nur die 4 Stunden Signale.
If you think it´s expensive to hire a professional, wait until you hire an amateur.

LoboTrader Männlich

Fortgeschrittener

Registrierungsdatum: 13. Oktober 2012

Beiträge: 118

Wohnort: BW

3

Samstag, 2. Mai 2015, 14:32

Hallo Lenzelott ,


erstmal, Danke

Zitat

Bisschen wenig Informationen um wirklich qualifiziert helfen zu können.

"Das klappt nicht im Chart" ist keine Fehlermeldung mit der Dir hier irgend jemand helfen kann (außer rumraten), vor allem wenn es eigentlich
funktionier vom Coding her.


Das bedaure ich, das Gegenteil war beabsichtigt (drum extra noch bischen Recherche beigefügt und den kompletten Code ) . :huh:

Das der Code funktioniert, dass habe ich so nicht verstanden . Oft schon erlebt , dass Compiler die Syntax mögen und dennoch Zitrone als Ergebnis geliefert wird . Aber mein Verständnis von INV ist noch ziemlich begrenzt .


Die Fehlermeldung =>

Zitat

Berechnung: CHM_H4
Projekt: Cross_GD_4er_Test_MT4_Posting
System: EUR Simple Chartmill
Variable: INDI_H4
Modul: Formelberechnung
Prozedur: Formel-Endberechnung
Vorgang: Parameter-Ermittlung
Titel: EUR/USD_H1
Parameter: VAR2
Meldung: Unverständliche oder ungültige Angaben.
Wenn ich das richtig verstehe, dann ist hier der Fehler das "Unverständliche oder ungültige Angaben" für Var2 ermittelt werden :

Quellcode

1
global calc Var2: Komp(#Ref(Chartmill_Value_Indikator(Var1), -1)#, #240#) ; // das klappt im Chart nicht


Leider erschließt sich mir mit dieser Fehlermeldung nicht wesentlich mehr als vorher . Aber mir fehlt eben auch noch die Erfahrung ...

Nachtrag : Ich ziehe den Indikator aus den Definitionen des HS mit

Quellcode

1
2
#_LoadGlobal Indi_H4#
Indi_H4


in das Chart .

Freundliche Grüße
Lobo

PS.: Es ist ein H1 EURUSD
Do not trade alone ....

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

4

Sonntag, 3. Mai 2015, 02:11

Der Fehler hat nix mit KOMP zu tun sondern damit, dass Du ALLE Calcs und Const "laden" mußt, die für die Berechnung von Nöten sind im Chart.

Also entweder

Quellcode

1
#_LoadDefs#


oder

Quellcode

1
2
3
4
#_LoadGlobal Indi_H4# 
#_LoadGlobal CMPerioden_H4# 
#_LoadGlobal var1# 
#_LoadGlobal var2#

je nachdem welche Verschachtelungstiefe Du da so halt am Ende verwendest
If you think it´s expensive to hire a professional, wait until you hire an amateur.

LoboTrader Männlich

Fortgeschrittener

Registrierungsdatum: 13. Oktober 2012

Beiträge: 118

Wohnort: BW

5

Sonntag, 3. Mai 2015, 10:34

Vielen Dank

Guten Morgen Lenzelott

habe vielen Dank, dass Du Dich nochmal bemüht hast .

Offensichtlich lag es an meinem fehlerhaften Verständnis für den Aufbau des Chart . Ich bin davon ausgegangen, dass die Berechungen im HS einmal durchgeführt und die Ergebnisse dann vom HS exportiert und in das Chart importiert werden .

Aber es ist wohl so, dass im Chart selbstständig berechnet wird . Wenn ich also einen Indikator im Chart darstellen will , dann muss ich in diese Chart-Berechnung alle zugehörigen Variablen (die ich vorher im HS Definitionen angezogen habe) ebenfalls laden .

Wieder etwas gelernt . :)

Einen schönen Restsonntag wünsche ich
Lobo
Do not trade alone ....

Lenzelott Männlich

Experte

Registrierungsdatum: 30. Dezember 2002

Beiträge: 3 050

Wohnort: Giessen

6

Sonntag, 3. Mai 2015, 10:53

Aber es ist wohl so, dass im Chart selbstständig berechnet wird . Wenn ich also einen Indikator im Chart darstellen will , dann muss ich in diese Chart-Berechnung alle zugehörigen Variablen (die ich vorher im HS Definitionen angezogen habe) ebenfalls laden .


Genau so ist es.

ABER in Version 7 gibt´s dafür eine Verbesserung diesbezüglich:


Zitat

Mit dem Schlüsselwort #_SaveGlobals# können Berechnungen im Handelssystem gespeichert und dann ohne Neuberechnung im Chart dargestellt werden.

Das Schlüsselwort wird in den Handelsregeln-Definitionen eingesetzt. Dabei können die gewünschten Variablen angegeben werden (Komma-getrennt). Geben Sie keine Variablen an, werden alle globalen Variablen für die Verwendung im Chart gespeichert.

Beispiel:

Global calc MyRSI: RSI(Close, 10);

#_SaveGlobals MyRSI#

Speichert die Variable „MyRSI“ und deren Berechnungen. In Formeln im Chart kann „MyRSI“ dann ohne Einsatz von #_LoadGlobal# oder #_LoadDefs# eingesetzt werden.


If you think it´s expensive to hire a professional, wait until you hire an amateur.