Jump to content
Tom Next - Daytrading Community

Recommended Posts

Posted

Hey Leute,

 

ich bin noch nicht raus. Ich bin gerade nur ziemlich eingespannt. Aber ich komme auf jeden Fall zurück. Und noch etwas sehr erfreuliches, daß was ihr hier mit mir und den anderen vollzieht ist Training aller erster Sahne. Ich glaube da hat wirklich jeder Anfänger etwas davon.

 

Vielen Dank für Eure Mühe.

 

Grüsse Jörg

Posted
So jetzt bitte sagt mir was genau macht dieser folgene Code?(schaut euch diesen code genau an.)

Einen kleinen Fehler habe ich auch eingebaut. Findet ihn.

(erst dann gehts weiter!)

double TakeProfit = 50;

if(Bars<100)
 {
  Print("bars less than 100");
  return(0);  
 }
  if(TakeProfit>50)
 {
  Print("TakeProfit grösse wie 50");
 }
else {
return(0);
Print("ist mir zu klein der tp");
}

 

Also mal mit meinen Worten ausgedrückt:

Es passiert folgendes - es wird überprüft ob die Anzahl der Bars kleiner als 100 sind - falls ja schreibt er "bars less then 100", wenn nicht dann wird diese Funktion abgebrochen.

 

Dann wir überprüft ob die Variable TakeProfit größer als 50 ist - falls ja schreibt er "TakeProfit grösse wie 50" wenn nicht geht es weiter zur else-Anweisung und dort wird die Funktion abgebrochen (das ist der Fehler). Die Print - Anweisung wird es also nie geben!!!

 

Und wie schon bemerkt konnte ich nur anhand des tp erkennen das die else - Anweisung auf die zweite if - Anweisung bezogen war.

 

 

Ich hoffe ich liege richtig

Grüsse Jörg

Posted
kleines Beispiel warum man IMMER (vor allem als Anfänger) diese Klammern verwenden sollte:

 

Beispiel wir schreiben eine kleine if Anweisung:

if(fehler == true)
 return(0);

Sprich wenn die boolsche Variable (eine Variable die true oder false sein kann) "fehler" wahr ist, brechen wir das Programm ab.

 

Nach ein paar Tagen testen denken wir uns "Wir sollten nicht nur abbrechen, sondern dem User auch sagen das ein Problem vorliegt". Also ändern wir den Code auf:

if(fehler == true)
 Alert("Irgendwas ist schief gelaufen");
 return(0);

 

Und jetzt die Preisfrage: Was ist bei dieser Änderung wirklich schief gelaufen, und warum sitzt der Entwickler jetzt weitere 3 Stunden und wundert sich warum der EA plötzlich seltsam reagiert? :top: (zugegeben, ist schon eher eine fortgeschrittene Frage, aber es macht auch für Anfänger Sinn sich darüber gedanken zu machen, bevor man die Lösung erfährt ;)

 

Zur Preisfrage - Das Problem an der Änderung die {} wurden vergessen. Das heißt das Programm wird abgearbeitet und die If - Anweisung wird ausgeführt aber wenn "fehler == true" dann wird eine Alarmmeldung ausgegeben "Irgendwas ist schief gelaufen" und anschließend wird ja weiter gearbeitet und das Programm??? abgebrochen, weil return(0) einen Abbruch der Funktion (ist doch gar kein Teil der Funktion da die {} vergessen wurden, ist.

 

Falls die Fehler nicht gleich true ist wird das Programm auch abgebrochen, da das ja die nächste Programmzeile ist. Oder liege ich da falsch?

 

Gruss

Jörg

Posted

so... und weiter gehts.....

 

also wenn die beiden IF Anweisungen durchbrochen wurden :top:

kommt

MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);
MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

 

hier finden wir unsere Variablen wieder

Welche?

1. unsere Internen Variablen die nur in der start() Funktion funktionieren.

2. unsere globalen Variablen die im ganzen Code funktionieren(egal ob man ihnen ein Wert zuweist oder ihn abruft)

zu 2. sind diese Variablen auch gleichzeitig durch das "extern" im Parameterfenster unseres experts sicht und veränderbar.

 

Was fällt uns noch auf zu 1. auf? Die(Variablen) bekommen einen Wert zugewiesen(=).

und

zu 2.? Diese Varbiablen haben einen Wert der abgerufen und benutzt wird.

 

 

fortsetzung folgt...

Posted
Also mal mit meinen Worten ausgedrückt:

Es passiert folgendes - es wird überprüft ob die Anzahl der Bars kleiner als 100 sind - falls ja schreibt er "bars less then 100", wenn nicht dann wird diese Funktion abgebrochen.

 

Vorsicht: nicht alles was von {} umgeben ist, ist eine Funktion ;). Im Allgemeinen definieren { } nur einen gemeinsamen Codeblock.

Bsp if:

Normalerweise bezieht sich if nur auf die nächste "Zeile"/Anweisung/Block, umschließt man die Anweisungen nach dem if mit { ... }, so gilt dieser gesamte Codeblock als "eine" Codezeile bzw. eben Codeblock.

 

Wann immer also eigentlich etwas nur für eine Zeile gilt, kann man diesen Geltungsbereich durch {...} auf den gesamten, von den Klammern eingeschlossenen, Codeteil ausweiten.

 

hmm ich hoff mein gequassel hat jetzt niemanden mehr verwirrt als vorher ;)

 

Was ich eigentlich gemeint hab: Gratuliere, beide Fehler gefunden :top:

Posted
1. unsere Internen Variablen die nur in der start() Funktion funktionieren.

 

kleine Ergänzung (Mythos will auch groß mitreden :top: ):

wie man hier auch schön sieht, muss der Wert, der einer Variable zugewiesen wird, keine beim programmieren reingeschriebene Zahl sein (wie beim initialisieren int pommes=1;), sondern kann auch der Rückgabewert eine Funktion sein, das passiert sogar meistens:

a= b+c;

selbst hier wird der Variablen a, der Wert zugewiesen, den die "Plusfunktion" zurückliefert.

 

In MQL geht das leider nicht, aber zB in C++ könnte man selber Operatoren wie "+" definieren, dann würde "a + b" plötzlich bedeuten was man will :top: aber das ist eine andere Geschichte ;)

Posted

Danke Mythos :top: ,

und in unseren Fall ist es...

=iMACD()

i steht für Indikator

MACD ist der Name des Indikators

(WICHTIG nur Standart Indikatoren von MT4 denn

für eigen programmierte Indikatoren benutzt man eine andere Funktion)

 

Nur mal so nebenbei...

gute MQL4 Programmierer habe ich festgestellt benutzten Anfangsbuchstaben als Kennzeichnung ihres codes.

indicator mit i z.b. iMyAverage.mq4 oder i-MyAverage.mq4

expert mit e z.b. eMyAverage.mq4 oder e-MyAverage.mq4

script mit s z.b. sMyAverage.mq4 oder s-MyAverage.mq4

include mit b z.b. bMyAverage.mq4 oder b-MyAverage.mq4

 

iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

dieser Abruf des Indikators(z.b. MACD) arbeitet auch so ähnlich wie eine Funktion er gibt einen Wert zurück und möchte in () die Parameter haben.

das was dieser Indikator zurückgibt er in unsere Variable vor dem =

und was sich in Klammer () befindetsind die Parameter

 

Da ein Indikator von kein bis 100... Parameter haben kann werden die Parameter des Indikators in der Mitte der () angegeben

also gibt es am Anfang sogenannte feste Parameter und am Ende feste Parameter und dazwischen die Parameter des indikators in Reihenfolge.

festen Parameter sind bei jedem Indikator GLEICH!

 

feste Parameter am Anfang sind ZWEI

und am Ende der Klammer () EIN

 

Jetzt fang ich aber an zu Schwitzen garnet so einfach zu Erklären :top: :top:

 

bei den ZWEI festen Parametern am Anfang sehen wir (NULL, 0,

und am Ende sehen wir den festen Parameter 0);

 

NULL oder 0 ist gleich "0" also egal ob hier NULL oder 0 schreibt.

NULL ist ebend nur ein Static String mit dem Wert 0.

 

0 oder NULL bedeutet für MQL4 als Parameter default benutzten.

 

da der erste Wert das Symbol angibt wird bei 0 das Symbol wo der Code(expert,script...) geladen wurde(z.b. Chartfenster EURUSD) benutzt.

man kann aber auch direkt den Symbol Namen angeben als string.

z.b. iMACD("GBUSD",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); oder iMACD("EURUSD",0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

 

der ZWEITE Parameter gibt den Timframe an auch hier gilt wenn 0 oder NULL benutzte default(Chartfenster wo der script geladen wurde).

hier kann man aber auch die Minuten des Timeframe angeben oder den static string

z.b. iMACD("GBUSD",60,12,26,9,PRICE_CLOSE,MODE_MAIN,0); oder iMACD(NULL,1440,12,26,9,PRICE_CLOSE,MODE_MAIN,0);

 

die 60 sind 60 Mintuten Timeframe.(H1)

die 1440 sind 1440 Minuten(Tages Chart)

 

hier gibt es feste Werte entweder als Zahl oder in Minute als static string:

"PERIOD_M1" 1 minute.

"PERIOD_M5" 5 minutes.

"PERIOD_M15" 15 minutes.

"PERIOD_M30" 30 minutes.

"PERIOD_H1" 1 hour.

"PERIOD_H4" 4 hour.

"PERIOD_D1" Daily.

"PERIOD_W1" Weekly.

"PERIOD_MN1" Monthly.

Ein Beispiel läd den Indikator vom Chart 60 Minuten(H1)

z.b. iMACD(0,60,12,26,9,PRICE_CLOSE,MODE_MAIN,0); das gleiche wie iMACD(NULL,"PERIOD_H1",12,26,9,PRICE_CLOSE,MODE_MAIN,0);

 

so und jetzt noch das Ende der festen Parameter EINER

0); gibt die BAR an wobei 0 die aktuelle BAR ist und z.b 1 die vorherige BAR

und 2 die zweite BAR Rückwärts... usw. vom Timeframe.

 

zum Beispiel:

iMACD(NULL,"PERIOD_H1",12,26,9,PRICE_CLOSE,MODE_MAIN,0); gibt den Indikator Wert von der aktuellen BAR

iMACD(NULL,"60,12,26,9,PRICE_CLOSE,MODE_MAIN,5); gibt den Indikator Wert von der BAR vor 5 Stunden

iMACD(0,"PERIOD_H1",12,26,9,PRICE_CLOSE,MODE_MAIN,12); gibt den Indikator Wert von der BAR vor 12 Stunden

 

und alles was sich zwischen diesen festen Parametern befindet sind die eigentlichen Indikator Parameter also

12,26,9,PRICE_CLOSE,MODE_MAIN, ist der MACD und sollte klar sein.

(den das sind die Parameter die man manuell auch einstellen müsste).

 

MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);

hier bekommt unsere Variable MaPrevious den "iMA"(Indikator Moving Average) Wert von der vorherigen BAR des Timeframes

auch hier gilt wieder das selbe wobei "MATrendPeriod" den Wert für den Moving Averange gibt in Reihenfolge(wie beim manuellen laden des Indikators ins das Chartfenster)

 

:top:

Ich hoffe ihr versteht was ich da geschrieben habe.... :top:

 

Einfach mal Experimentieren.

und wenn ihr einen Fehler(z.b. die Anzahl am Ende von den festen Parametern sind 2! ) findet oder Ergänzungen...

Einfach schreiben

Danke

  • Upvote 1
Posted

WOW :top:

 

Ich habe mir das ganze jetzt 3x langsam und aufmerksam durchgelesen. Ich glaube ich brauche noch 3x bis ich es annähernd verstanden habe.

 

Mal noch zwei Fragen zwischendurch:

1. Welche Standardindikatoren kennt mt4?

2. Im MetaEditor werden für verschiedene Anweisungen und Wörter unterschiedliche Farben verwendet - was bedeuten diese?

 

Vielen Dank für Eure Hilfe

Gruss Jörg

 

:top:

Posted
Mal noch zwei Fragen zwischendurch:

1. Welche Standardindikatoren kennt mt4?

Die gesamte Liste, mit Beschreibung findest du in der MT-Hilfe (Im MetaEditor unten in der "Symbolleiste" auf den Reiter Hilfe, und dort "Technical Indicators"

 

2. Im MetaEditor werden für verschiedene Anweisungen und Wörter unterschiedliche Farben verwendet - was bedeuten diese?

Dieses SyntaxHighlighting hat mit dem programmieren selber nichts zu tun, es ist nur als Hilfe für den Programmierer gedacht um beim coden/lesen eine bessere Struktur im Code zu haben und sich leichter zurechtzufinden (Kommentare sind "blasser", Datentypen, Build-in Functions, Konstante hab je eigene Farben...)

Posted
Nur mal so nebenbei...

gute MQL4 Programmierer habe ich festgestellt benutzten Anfangsbuchstaben als Kennzeichnung ihres codes.

indicator mit i z.b. iMyAverage.mq4 oder i-MyAverage.mq4

expert mit e z.b. eMyAverage.mq4 oder e-MyAverage.mq4

script mit s z.b. sMyAverage.mq4 oder s-MyAverage.mq4

include mit b z.b. bMyAverage.mq4 oder b-MyAverage.mq4

Gute Idee, sollt ich auch anfangen ;)

 

hier gibt es feste Werte entweder als Zahl oder in Minute als static string:

"PERIOD_M1" 1 minute.

 

Ein Beispiel läd den Indikator vom Chart 60 Minuten(H1)

z.b. iMACD(0,60,12,26,9,PRICE_CLOSE,MODE_MAIN,0); das gleiche wie iMACD(NULL,"PERIOD_H1",12,26,9,PRICE_CLOSE,MODE_MAIN,0);

 

sicher? :top: die ganzen PERIOD_... sind IMO vordefinierte Konstanten (so wie PRICE_CLOSE, MODE_SPREAD etc...)

(die wichtigsten vordefinierten Konstanten (ich glaub sogar alle) findet man auch wieder in der Hilfe unter "Standard constants"). Sprich wenn man PERIOD_M1 schreibt, steht effektiv für den Compiler eine 1 an der Stelle.

Posted

@ FinGeR @ Mythos @ Krümel @all

 

Wollen wir uns gleich auf einen Standard einigen?

Bei dem "Drive", den wir hier in den letzten Wochen verzeichnen, ist abzusehen, dass sich früher oder später mehr Leute zu dem Thema MT4/ entwicklung EA etc melden. Ich denke darunter werden auch Programmierer sein. Wir haben mit Alex das Thema schon mal im Kleinen durchexerziert und alle fanden es sinnvoll, eine Kennzeichnungeinzuführen.

Sollten sich später weitere Entwickler melden, die bei dem einen oder anderen Projekt mitwirken wollen, dann könnten die diese Standards gleich übernehmen.

 

Mit ein wenig Glück könnten wir das mittelfristig dann als generellen Standard durchsetzen? Was meint ihr dazu?

Posted
@ FinGeR @ Mythos @ Krümel @all

 

Wollen wir uns gleich auf einen Standard einigen?

Bei dem "Drive", den wir hier in den letzten Wochen verzeichnen, ist abzusehen, dass sich früher oder später mehr Leute zu dem Thema MT4/ entwicklung EA etc melden. Ich denke darunter werden auch Programmierer sein. Wir haben mit Alex das Thema schon mal im Kleinen durchexerziert und alle fanden es sinnvoll, eine Kennzeichnungeinzuführen.

Sollten sich später weitere Entwickler melden, die bei dem einen oder anderen Projekt mitwirken wollen, dann könnten die diese Standards gleich übernehmen.

 

Mit ein wenig Glück könnten wir das mittelfristig dann als generellen Standard durchsetzen? Was meint ihr dazu?

Dafür!

Man könnte auch gleich eine kleine Codingconvetion für die Variablen/Funktions/Konstantennamen etc einführen... sowas macht den Code wesentlich lesbarer.

Posted
sicher? hmmmm.gif die ganzen PERIOD_... sind IMO vordefinierte Konstanten (so wie PRICE_CLOSE, MODE_SPREAD etc...)

(die wichtigsten vordefinierten Konstanten (ich glaub sogar alle) findet man auch wieder in der Hilfe unter "Standard constants"). Sprich wenn man PERIOD_M1 schreibt, steht effektiv für den Compiler eine 1 an der Stelle.

 

habe ich einwenig komisch erklärt :top:

an der 2. Stelle in der Klammer folgt der Timeframe in Minute

  • 0 oder NULL (es wird der vom Chart benutzt wo eure code gelade wurde)
  • 1 oder PERIOD_M1
  • 5 oder PERIOD_M5
  • 15 oder PERIOD_M15
  • 30 oder PERIOD_M30 (es wird TF 30 Minuten benutzt egal wo ihr den code geladen habt)
  • 60 oder PERIOD_H1
  • 240 oder PERIOD_H4
  • 1440 oder PERIOD_D1
  • 10080 oder PERIOD_W1
  • 43200 oder PERIOD_MN1

also

wenn ihr euren code(expert,script...) z.b. in das Chartfenster EURUSD M5 läd

könnt ihr trozdem die Indikatordaten abrufen von z.b. GBUSD M30

Posted
Dafür!

Man könnte auch gleich eine kleine Codingconvetion für die Variablen/Funktions/Konstantennamen etc einführen... sowas macht den Code wesentlich lesbarer.

 

 

Ich frag mal anders herum - gibt es Gegenstimmen? Wenn nicht, könnte jemand von den Codern eine Liste (Entwurf/ Diskussionsgrundlage) der Themen + Vorschläge erstellen, um die es da geht.

Posted (edited)
Die gesamte Liste, mit Beschreibung findest du in der MT-Hilfe (Im MetaEditor unten in der "Symbolleiste" auf den Reiter Hilfe, und dort "Technical Indicators"

 

Weil es mich interessiert hat hier mal die Liste der Technical Indicators von MT4:

  • iAC
  • iAD
  • iAlligator
  • iADX
  • iATR
  • iAO
  • iBearsPower
  • iBands
  • iBandsOnArray
  • iBullsPower
  • iCCI
  • iCCIOnArray
  • iCustom
  • iDeMarker
  • iEnvelopes
  • iEnvelopesOnArray
  • iForce
  • iFractals
  • iGator
  • iIchimoku
  • iBWMFI
  • iMomentum
  • iMomentumOnArray
  • iMFI
  • iMA
  • iMAOnArray
  • iOsMA
  • iMACD
  • iOBV
  • iSAR
  • iRSI
  • iRSIOnArray
  • iRVI
  • iStdDev
  • iStdDevOnArray
  • iStochastic
  • iWPR

In der Hilfe von MetaEditor sind alle noch einmal beschrieben.

 

Gruss Jörg

:top:

Edited by whipsaw
list tag hinzugefügt
Posted

Yeah, das schaut doch nett aus.

Darf ich das in die Knowledgebase kopieren.

 

Wenn ja, wäre es supertoll, wenn Du noch kurz ein paar Stichpunkte zu schreiben könntest. Wenn nicht, passts auch.

 

Besten Dank Alex!!!

Posted

ja klar

 

Die Animation zeigt

wie man den Wert des Indikators MACD in MQL4 ermittelt

und erklärt die einzelnen Parameter im Vergleich mit dem normalen Ausführen dieses Indikators im Chartfenster.

Posted

In dem Zusammenhang ist auch ganz interessant:

 

Der angewandte Preis kann folgende Eingaben haben

- PRICE_CLOSE

- PRICE_OPEN

- PRICE_HIGH

- PRICE_LOW

- PRICE_MEDIAN zur Erklärung (high+low)/2.

- PRICE_TYPICAL zur Erklärung (high+low+close)/3.

- PRICE_WEIGHTED zur Erklärung (high+low+close+close)/4

 

Der Mode-Wert kann folgende Eingaben haben

- MODE_MAIN zur Erklärung Base indicator line.

- MODE_SIGNAL zur Erklärung Signal line.

 

Sollte das nicht korrekt sein oder andere Eingaben zulässig bitte um Berichtigung.

 

Grüsse

Jörg

Posted
Der Mode-Wert kann folgende Eingaben haben

- MODE_MAIN zur Erklärung Base indicator line.

- MODE_SIGNAL zur Erklärung Signal line.

 

Hier hängt es davon ab, welchen Standard-Indikator man verwendet. iMA (also ein Moving Average) kann zB folgende Mode-Werte haben:

 

MODE_SMA - Simple moving average,

MODE_EMA - Exponential moving average,

MODE_SMMA - Smoothed moving average,

MODE_LWMA - Linear weighted moving average

 

Welche Mode-Werte verwendet werden sieht man jeweils in der entsprechenden Hilfe.

 

MfG

  • 3 weeks later...
Posted

Kleiner Tipp von meiner Seite: Bevor man anfängt, alles selber zu bauen, erstmal schauen, ob es das nicht schon gibt. Dazu von mir zwei in meinen Augen sehr wertvolle Links:

 

1.) In der MQL Code Base findet man Indikatoren, EAs und verschiedene Tools wie bspw. den "SL-per-Maus-Verschieber" o.ä.

Link: http://codebase.mql4.com/

 

2.) Für die, die ihre Tradingregeln kennen, aber (noch) nicht wissen, wie man das als Handelssystem in MQL programmiert, ist der MT4 EA Builder hilfreich.

Link: http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/index.html

 

Beide Seiten eignen sich erstmal, um einen funktionierenden Quellcode zu bekommen, den man dann manuell seinen Bedürfnissen anpassen kann. Dabei aber bitte stets eventuelle Copyrights im Auge haben und ggf. im Quellcode belassen.

 

Viel Spaß beim Basteln und nie vergessen: 90% der Fehler sitzen vor dem Bildschirm :cold:.

  • 1 month later...
Posted

Habt Ihr euch schon auf einen Standard geeinigt?

 

Ich bringe in den Variablenname auch noch den Variblentyp mit rein und ob sie global oder lokal sind.

Dies sieht dann z.B. so aus:

 

Li_Counter -> L =lokal, i =integer

Gb_Marker -> G =global, b =bool

usw.

 

So sehe ich in einem umfangreicheren Programm sofort, welchem Typ die Variable entspricht, ohne jedesmal nach oben zu scrollen.

Ist vieleicht ganz interessant, wenn mehrere Personen an einem Projekt arbeiten und könnte auch zur besseren Lesbarkeit beitragen.

  • 1 month later...
Posted (edited)

Ich habe jetzt das kleine Beispiel von FinGeR (Addieren von zwei Zahlen) kompiliert und in einen Chart geschoben.

Der Text im Chart erscheint, aber die Alert und Print Anweisungen werden nicht ausgeführt und

der Text im Chart wird auch nicht gelöscht, was ja nach der Berechnung (Addition der beiden mitgegebenen Parameter)

passieren soll. Es scheint, als ob die start-Funktion nicht ausgeführt wird, aber im Chart tickt es.

Ich habe zwar eine 30 Tage Testversion das Metatraders, die schon älter als 30 Tage ist, aber im Chart tickt es, wie gesagt, noch.

 

Die Frage, woran kann das liegen ist aber zweitrangig. Meine eigentlichen Fragen:

 

1. Warum steht die Funktion

 

double AddiereFürMich(int a, int b)
    {
      return(a+b);
          }

 

nicht innerhalb der Start-Funktion

2. warum steht sie nicht wenigstens vor der deinit-Funktion?

 

3. Warum muß überhaupt eine Variable x definiert werden, die den Wert von einer Funktion erhält? Könnte man nicht

statt

 

double x = AddiereFьrMich(a, b);

 

gleich die Addiere-Funktion

 

double AddiereFürMich(int a, int b)
    {
      return(a+b);
          }

schreiben und das, direkt in der Printanweisung benutzen?

 

Ich anwtorte mal mir mal selbst, weil man dabei am meisten lernt, - mit der Bitte um Berichtigung.

 

zu1. Die Addieremich Funktion steht nicht in der Startfunktion, weil nicht eine Funktion innerhalb einer anderen stehen kann.

Die Antwort glaube ich mir eigentlich selbst nicht.

 

zu2. Vor oder nach der deinit - habe keine eigene Antwort.

 

zu3. Der Rückgabewert einer Funktion kann nicht direkt in einer Printanweisung benutzt werden, deshalb der Umweg über eine Variable x

 

4. Ich glaube, ich habe das mit dem return(0) am ende der Startfunktion noch nicht verstanden. Wenn void start() bedeutet, die Funktion gibt

NIX zurück, warum soll sie dann doch "0" zurückgeben.

 

5. Und an wen gibt eine Funktion überhaupt etwas zurück? oder was heißt eigentlich "zurückgeben".

 

zu4. Habe keine eigene Anwort

zu5. Sie gibt nicht automatisch etwas zurück, deshalb ist die Frage "an wen" falsch gestellt. Es ist einfach das Ergebnis und wenn man z.B. durch

eine Variable darauf zurückgreift, erhält die Variable das, was in den Klammern nach "return" steht. Wenn aber eine Funktion nicht wirklich etwas ausrechnet

und auch sonst kein ein "Ergebnis" hat, welches man im Programm weiterverwenden möchte, beendet man sie mit return(0).

 

Liege ich mit meinen Antorten wenigstens auf dem richtigen Weg?

Meine Fragen zu dem MACD-EA kommen dann später, nachdem ich das verstanden habe.

Edited by mh21

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...