|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Gar keinen.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
eine if-Abfrage braucht natürlich auch Rechenleistung, bei einer Einzelnen ist diese aber verschwindend gering.
Wenn Dein EA aber mal grösser wird, und Du 50 if-Abfragen pro Tick hast, Du den EA vielleicht noch in mehreren Chars laufen lässt und dann noch Wirtschaftszahlen kommen, so dass sehr viele Tick pro Sekunde kommen, dann kann Dein PC schonmal hinterherhinken. Deshalb ist es sinnvoll, alles was auch OnTimer() oder OnChartEvent() laufen kann, dort auszuführen. Z.B. ist es Unsinn die Daten vergangener Kerzen bei jedem Tick abzufragen. |
|
|||
Was mir zu diesem Thema seit längerem durch den Kopf geht und auch zum Thema passt, wo liegen eigentlich die Grenzen von dem was son Computer binnen einen Ticks berechnen kann?
Wie du eben sagtest wenn man einen großen EA hat mit vielen if Abfragen und Berechnungen ist das dann überhaupt zu schaffen pro Tick? Der Großteil meines EAs ist so aufgebaut das ich jeder Handlung eine Uhrzeit davorschiebe. Also beginnt praktisch jede OnTick Zeile mit if(„Uhrzeit“==Uhrzeit) Und dann kommen eben die entsprechend auszuführenden Handlungen da rein. Aber ich Frage mich halt, wieviele Berechnung wohl binnen eines Ticks möglich sind, immerhin sind das teilweise ja mehrere die Sekunde. Manchmal denke ich wenn ich jetzt noch paar Zeilen schreibe schafft er das vielleicht nicht mehr alles zu berechnen... Ist da was dran, oder sind diese Bedenken unbegründet? |
|
|||
Völlig unbegründet.
Wenn eine Handlung tickgesteuert sein muss, dann ist das so. Klar kann man auch den Timer von der Frequenz in den Millisekundenbereich runterschrauben, aber auch die Timerausführung kostet Kapazität und Rechenleistung. Und ich denke nicht, dass Du in naher Zukunft einen EA schreiben wirst, bei dem der Prozessor in die Knie geht. Also, bleib entspannt, poste hier und dann wird man weitersehen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo Leute, ich brauche nochmal euren Rat.
Undzwar geht es nochmal um das Thema "viele if Abfragen in einem EA". Du Doc sagtest ja das meine Bedenken vorerst unbegründet sind, ich möchte aber für meinen Fall nochmal genau nachfragen. Ich bin grade dabei die LotSize Berechnung umzusetzen, und verfolge dabei das Prinzip, ist ein Kontostand X erreicht = Y LotSize. Da ich ohne Rückschritte arbeite, also ausschließlich mit LotSize Erhöhungen arbeite, bin ich nun dabei sehr viele if Abfragen zu schreiben, um einen langen Weg von LotSize 10 bis LotSize 200 abzudecken. In der Praxis sieht das folgendermaßen aus: Code:
if(t==0) { LotSize(); LongOrder1=OrderSend(NULL,OP_BUYSTOP,LotSize,KaufPreis,NULL,VerkaufPreis,0,"DAX_H1_StrategieLong",MagicNummer,0,clrGreenYellow); ShortOrder1=OrderSend(NULL,OP_SELLSTOP,LotSize,VerkaufPreis,NULL,KaufPreis,0,"DAX_H1_StrategieShort",MagicNummer,0,clrRed); { if((LongOrder1>0)&&(ShortOrder1>0)) { TradeActionVierZehnUhr++; } } } double LotSize() { if(KontoHoch<8250) { LotSize=10.0; } if(KontoHoch>=8250&&KontoHoch<9000) { LotSize=11.0; } if(KontoHoch>=9000&&KontoHoch<9750) { LotSize=12.0; } if(KontoHoch>=9750&&KontoHoch<10500) { LotSize=13.0; } if(KontoHoch>=10500&&KontoHoch<11250) { LotSize=14.0; } if(KontoHoch>=11250&&KontoHoch<12000) { LotSize=15.0; } usw usw usw } Ich könnte natürlich den Code von Zeit zu Zeit anpassen, allerdings würde ich es lieber einmal komplett machen, um dann erstmal ruhe zu haben wenn der EA ohne mein raufschauen läuft. Seht ihr in der schieren Menge an if Abfragen ein Problem? MfG Lampe |
|
|||
Statt der if-Abfragen könnte man auch eine for-Schleife benutzen:
Code:
void LotSize() { int start = 8250; int step = 750; if (KontoHoch < start) LotSize = 10.0; for (int i = 0; i <= 10; i++) { if (KontoHoch >= i*step+start && KontoHoch < (i+1)*step+start) { LotSize = 10.0+i+1; break; } } }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
kleine Aufgabe zum Frühstück ..))
hier das Ganze als Funktion: PHP-Code:
|
|
|||
Zitat:
Was ist, wenn das Konto bzw. die Equity (jenachdem worauf er sich beziehen will) grösser als 16000 ist ? |
|
|||
Die 10 ist hier als exemplarisches Beispiel gewählt, da kann auch 1000 stehen.
Wenn die entsprechende KontoHoch-Range erreicht wurde, wird eh aus der Schleife gesprungen. Und mittels while-Schleife geht das auch. Wie immer führen viele Wege nach Rom. Nun hat er zwei Schulbeispiele, wie man viele if-Abfragen umschrieben kann. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ja... Also erstmal danke an euch beide, für die Hilfe!
Ich steige leider bei beiden Varianten nicht durch. Bei Doc´s Variante muss ich mich wohl mit den * auseinandersetzen, was wie ich rausgefunden habe Pointer sind. Das erste Utube Video dazu brachte leider noch nicht den gewünschten Durchblick. Bei Adlerauges Variante muss ich mich auch erstmal durchkämpfen. Ich melde mich wieder. MfG Lampe |
Lesezeichen |
Stichworte |
hilfe, lernen, mql4, mql4 aufbau, mql4 hilfe, mql4 lernen, programmierung, programmierung metatrader, programmierung mql4, starthilfe |
|
|