Autor Thema: Wir lernen MQL4  (Gelesen 7256 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

  • Gehört zum Inventar
  • ***
    • Beiträge: 1084
    • Karma: +430/-4
    • Mitglied seit:
      31 Dec 2008
  • Broker: RBS

  • Stop
Antw:Wir lernen MQL4
« Antwort #30 am: Juni 05, 2011, 16:43:12 pm »
Ist durchaus für den einen oder anderen User von Nutzen, sofern er der englischen Sprache mächtig ist.
Pokerregel: "Auch bei dem Anschein eines sicheren Gewinnes, muss man ablassen können."

  • Gelegenheitsschreiber
  • *
    • Beiträge: 40
    • Karma: +11/-0
    • Mitglied seit:
      28 Jun 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #31 am: Oktober 10, 2011, 11:38:42 am »
Hallo,
das ist ein sehr interessanter Thread, der am Leben erhalten werden sollte. Vielen Dank an nightyhawk.
Zu den Schleifen habe ich eine Frage. Die Schleife liest die Indexe von rechts nach links mit i++ oder von links nach rechts mit i--. Welche Gründe, Vor- oder Nachteile hat das? Und welche Art der Schleife sollte man sinnvoller Weise für weche Aufgaben auswählen?
Gruss
Reiner

  • Vielschreiber
  • *
    • Beiträge: 488
    • Karma: +92/-5
    • Mitglied seit:
      08 Dec 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #32 am: Oktober 10, 2011, 12:03:55 pm »
Auch von mir ein Danke. Wollte mnich schon länger mal mit grundlegenden Fragen des Codens mit MQL beschäftigen und da sieht wie ein guter Einstieg aus

  • Tastaturflitzer
  • ***
    • Beiträge: 238
    • Karma: +54/-12
    • Mitglied seit:
      26 Mar 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #33 am: Oktober 10, 2011, 12:15:53 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
Hallo,
das ist ein sehr interessanter Thread, der am Leben erhalten werden sollte. Vielen Dank an nightyhawk.
Zu den Schleifen habe ich eine Frage. Die Schleife liest die Indexe von rechts nach links mit i++ oder von links nach rechts mit i--. Welche Gründe, Vor- oder Nachteile hat das? Und welche Art der Schleife sollte man sinnvoller Weise für weche Aufgaben auswählen?
Gruss
Reiner

Ich würde mir einfach konsequenterweise immer angewöhnen, mit den historisch am ältesten Daten anfangen zu rechnen.

"Links" und "rechts" ist hier wohl eine falsche Wortwahl.

Dass man bei manchen Indikatoren von den aktuellen Kursen rückwärtsgehend in die Historie dessen Wert berechnen kann, ist eher die Ausnahme, als die Regel.



Wenn man auf die Daten wie dem Close in Metatrader zugreifen möchte, stellt Index 0 den jüngsten aktuellen  Kurs dar.


i++ erhöht die (eine) Laufvariable und i-- verringert die Variable um 1

Wenn man also mit den historisch ältesten Daten beginnen möchte, fängt man mit einem HOHEN Index an, und verringert ihn während der Berechnung solange, bis er Null ist und Du beim aktuellen Kurs angekommen bist.
die Schleife mit i-- wäre also eigentlich zu bevorzugen..


:-)

  • Global Moderator
  • Ist Forum süchtig
  • *
  • *
  • *
    • Beiträge: 1718
    • Karma: +422/-6
    • Mitglied seit:
      11 Aug 2009
  • Broker: IGMarkets

  • Mars Defense Car Chaos Get Groovy BallsPC Motorrad-Trauma
    Bloons Tower Defense
  • Stop
Re: Wir lernen MQL4
« Antwort #34 am: Oktober 10, 2011, 12:45:41 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
Hallo,
das ist ein sehr interessanter Thread, der am Leben erhalten werden sollte. Vielen Dank an nightyhawk.
Zu den Schleifen habe ich eine Frage. Die Schleife liest die Indexe von rechts nach links mit i++ oder von links nach rechts mit i--. Welche Gründe, Vor- oder Nachteile hat das? Und welche Art der Schleife sollte man sinnvoller Weise für weche Aufgaben auswählen?
Wie @Covolt schon anmerkte, kann man die Ausdrücke "rechts" und "links" nur bedingt gelten lassen, da sie ja direkt mit der Art und Weise zu tun haben, wie MQL4 Chartwerte speichert....

Grundsätzlich und für die meisten Aufgaben ist es unrelevant, ob man eine Schleife aufwärts oder abwärts laufen lässt. Ich glaube der Standard ist sowieso, Schleifen immer aufwärts laufen zu lassen:
Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
for (int i=0; i<10; i++)

Jetzt machen wir mal ein Experiment und schauen uns einen kleinen Beispielcode an. In diesem existieren 10 Werte in einem Behälter, die wir löschen wollen. Dazu haben wir die (fiktive) Funktion entferneElementAnStelle, welche ein Index bekommt und den Wert an diese Stelle in unserem Datencontainer entfernt. Die anderen Werten sollen dann automatisch an die entfernte Position nachrücken, um keinen leeren Speicher vorzuhalten.
Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
for (int i=0; i<10; i++)
{
  entferneElementAnStelle(i);
}
Der geneigte, mitdenkende Leser erkennt den Fehler in obiger Anweisung. Ausgehend von unserem Datencontainer, passiert im ersten Aufruf folgendes (wir löschen das Element an Stelle 0) und alle Elemente rücken nach - das erste Element ist jetzt also "B":
A B C D E F G H I J --> B C D E F G H I J

Im nächsten Schleifendurchlauf wird das Element an Stelle 1 gelöscht:
B C D E F G H I J --> B D E F G H I J

Dann an Stelle 2
B D E F G H I J --> B D F G H I J

Stelle 3
B D F G H I J --> B D F H I J

Stelle 4
B D F H I J --> B D F H J

Nun versuchen wir mal weisungsgemäß an Stelle 5 zu löschen:
B D F H J und stellen fest: UPS, es gibt gar keine Stelle 5 mehr.... ergo, die Schleife ist ungünstig konzipiert. Versuchen wir doch mal die Schleife umzudrehen.

Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
for (int i=9; i>=0; i--)
{
  entferneElementAnStelle(i);
}
Im ersten Durchlauf wird das Element an Stelle 10 (i=9) entfernt, da hinter Stelle 10 nichts mehr kommt, gibt es in diesem Fall auch kein Nachrücken:
A B C D E F G H I J --> A B C D E F G H I

Danach an Stelle 9:
A B C D E F G H I --> A B C D E F G H

Und so weiter, bis wir an Stelle 1 (i=0) angekommen sind:
A --> Menge ist leer --> Ziel erreicht!
Chleudere den Purchen zu Poden!

  • Gelegenheitsschreiber
  • *
    • Beiträge: 40
    • Karma: +11/-0
    • Mitglied seit:
      28 Jun 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #35 am: Oktober 10, 2011, 14:11:17 pm »
Code: Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
int start()
  {
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastMA,0,MA_Mode,Price_Mode,i)-iMA(NULL,0,SlowMA,0,MA_Mode,Price_Mode,i);

Danke für die schnellen Antworten.
Ganz habe ich es noch nicht verstenden. Zum Beispiel hier beim MACD wird doch beim Einfügen des Indikators am aktuellen Bar angefangen und nach "links" i++ aufwärts berechnet? :S:

  • Global Moderator
  • Ist Forum süchtig
  • *
  • *
  • *
    • Beiträge: 1718
    • Karma: +422/-6
    • Mitglied seit:
      11 Aug 2009
  • Broker: IGMarkets

  • Mars Defense Car Chaos Get Groovy BallsPC Motorrad-Trauma
    Bloons Tower Defense
  • Stop
Re: Wir lernen MQL4
« Antwort #36 am: Oktober 10, 2011, 14:30:17 pm »
Korrekt.... aufwärts bezieht sich auf die i-Werte, die werden nämlich größer.... nach links stimmt in diesem Fall aber nur, weil Metaquotes definiert hat, dass der aktuelle Bar den Index 0 bekommt.

Alternativ hätte man auch sagen können, Index 0 ist der älteste verfügbare Bar. Dann wäre Aufwärts identisch mit nach Rechts ;)
Chleudere den Purchen zu Poden!

  • Gelegenheitsschreiber
  • *
    • Beiträge: 40
    • Karma: +11/-0
    • Mitglied seit:
      28 Jun 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #37 am: Oktober 10, 2011, 14:53:45 pm »
Danke nochmal. Meine ursprünglich Frage bezog sich auf Schleifen in Indikatoren, bei denen i der Kerzenindex ist, also 0- aktuelle Kerze, i[Bars] älteste Kerze im Chartbild (so wie oben im MACD). Wann verwendet man sinnvollerweise while oder for to, wann berechnet man aufwärts, wann abwärts. Ich habe dazu bisher im Netz nicht finden können.

  • Global Moderator
  • Ist Forum süchtig
  • *
  • *
  • *
    • Beiträge: 1718
    • Karma: +422/-6
    • Mitglied seit:
      11 Aug 2009
  • Broker: IGMarkets

  • Mars Defense Car Chaos Get Groovy BallsPC Motorrad-Trauma
    Bloons Tower Defense
  • Stop
Re: Wir lernen MQL4
« Antwort #38 am: Oktober 10, 2011, 14:58:08 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
Wann verwendet man sinnvollerweise while oder for to

Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen

Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
wann berechnet man aufwärts, wann abwärts


Quote:
Grundsätzlich und für die meisten Aufgaben ist es unrelevant, ob man eine Schleife aufwärts oder abwärts laufen lässt. Ich glaube der Standard ist sowieso, Schleifen immer aufwärts laufen zu lassen:
Chleudere den Purchen zu Poden!

  • Tastaturflitzer
  • ***
    • Beiträge: 238
    • Karma: +54/-12
    • Mitglied seit:
      26 Mar 2010

  • Stop
Re: Wir lernen MQL4
« Antwort #39 am: Oktober 10, 2011, 15:26:31 pm »
Es ist Dir nicht erlaubt Links zu betrachten. Registrieren oder Einloggen
Danke nochmal. Meine ursprünglich Frage bezog sich auf Schleifen in Indikatoren, bei denen i der Kerzenindex ist, also 0- aktuelle Kerze, i[Bars] älteste Kerze im Chartbild (so wie oben im MACD). Wann verwendet man sinnvollerweise while oder for to, wann berechnet man aufwärts, wann abwärts. Ich habe dazu bisher im Netz nicht finden können.

Die For-Schleife ist dann sinnvoll, wenn Du vorher schon genau weißt, wie oft Du etwas machen möchtest.
Die While-Schleife, da sie jedesmal prüft, ob irgendeine Bedingung noch erfüllt ist, natürlich dann, wenn die Anzahl der Durchläufe erst innerhalb der Schleife endgültig feststeht.
die Abbruchbedingung also innerhalb der Schleife entsteht.

ich würde mich nicht so am MACD orientieren. Eher an der Umsetzung vom Momentum oder anderen.
Ich bekomme jedenfalls immer Knoten im Kopf und möchte mit dem ÄLTESTEN Kurs beginnen und berechnen.
Ich laufe doch auch vorwärts auf der Straße, und nicht rückwärts !
Einfach, weil es mir am logischsten erscheint und am praktikabelsten ist  (meine Augen sind vorn und nicht hinten)



 

Ähnliche Themen

  Betreff / Begonnen von Antworten Letzter Beitrag
0 Antworten
589 Aufrufe
Letzter Beitrag November 15, 2008, 22:47:16 pm
von Gregor
15 Antworten
4225 Aufrufe
Letzter Beitrag Juni 19, 2011, 00:43:25 am
von Egetuerk
17 Antworten
3906 Aufrufe
Letzter Beitrag Juni 30, 2011, 14:07:38 pm
von Andreas
2 Antworten
1811 Aufrufe
Letzter Beitrag Juli 25, 2010, 01:17:32 am
von Divecall
1 Antworten
882 Aufrufe
Letzter Beitrag Mai 08, 2011, 07:46:48 am
von fxdaytrader
5 Antworten
561 Aufrufe
Letzter Beitrag Juli 02, 2011, 11:56:41 am
von ekenom
36 Antworten
1417 Aufrufe
Letzter Beitrag April 25, 2012, 06:59:57 am
von Der-Sucher
12 Antworten
536 Aufrufe
Letzter Beitrag März 27, 2012, 22:51:25 pm
von NastyCem


ChartTec´s World Topsites