![]() |
|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
![]() |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
![]()
Danke Traderdoc. Der Grund warum ich die Abfrage gerne auf 1 Mal je Bar begrenzen will ist, ich habe gelesen dass die iCustom Abfrage ein ziemlicher Ressourcenfresser ist. Ich denke es macht Sinn die Abfrage der 3 Indikatoren dann gebündelt in die if Abfrage zu integrieren um nur 1 Mal abgefragt zu werden.
|
|
|||
![]()
Moin, Moin,
probier mal das: datetime BarTime = 0; double ValueLastClose; void OncePerBar() { if (BarTime < Time[0]) { // neue Kerze BarTime = Time[0]; // open time neue Kerze DataLastClose(); } } void DataLastClose() { ValueLastClose = Close[current+1]; } |
|
|||
![]()
@RetepM, Ok und worin siehst Du jetzt den Vorteil, außer dem längeren Code?
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]() Zitat:
pro chart sind das extra 50kb arbeitsspeicher, es waren zu beginn noch viel mehr, aber ich schaffte es den externen newsindikator, welcher wiederum die aktuelle newsliste als xml datei von ff.com fetched, zu bereinigen und zu reduzieren. |
|
|||
![]() Zitat:
![]() |
|
|||
![]()
@pischinger: Über effiziente Programmierung hatten wir ja auch schon grob in der ff gesprochen. Ohne die dort genannten Hinweise wäre ich auch nie auf den Gedanken gekommen. Es ist ja auch schwer vorstellbar dass eine so einfache Abfrage den PC in Anbetracht der aktuellen Rechenleistung einbremsen kann.
Aber ihr hattet natürlich vollkommen Recht, warum soll ein Wert teilweise bis zu 100 Mal in der Sekunde abgefragt und verarbeitet werden wenn man diesen nur 1 Mal benötigt. Für mich macht das noch weniger Sinn, da ich ausschließlich auf Renkobasierten Charts arbeite und mich die Werte immer nur beim Wechsel eines Bricks interessieren. |
|
|||
![]()
Was mir zu dem Thema noch einfällt:
Wenn man über "everytick" Ordertriggers auslöst, macht es richtig Sinn, zuerst mit einem "Gibt es die Order schon" anzufangen. Das hat bei mir die Performance, auch in Backtests drastisch! erhöht. |
|
|||
![]()
Es ergibt alles Sinn, Programmteile nur dann aufzurufen, wenn sie auch wirklich benötigt werden.
Die einfachste Variante hatte ich hier weiter unten gepostet. Man muß sich nur im Vorfeld genau überlegen, wann eben welche Funktion benötigt werden. Übrigens die iCustom()-Funktion benötigt deshalb so viel Speicher und Zeit, weil jedesmal beim Aufrufen aus dem EA heraus, dieser Indikator geladen, vollständig!! berechnet und wieder entladen werden wird. Das kostet halt Performance. Im Notfall könnte man den entscheidenden Teil des Indiaktorcodes in den EA integrieren. Aber auf jeder neuen Kerze abfragen hilft schon beträchtlich. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
![]() Zitat:
dann den newsindicator die pfade verändert und nun "saugt" er sich die news-xml-datei lokal rein, weniger speicher, performance gut, durch code bereinigung von anfangs 125kb auf 50kb arbeitsspeicherbedarf pro chart gedrückt. wenn ich zeit habe integriere ich den gesamten news indi noch in meinen ea, der ist aber so komplex da er sehr viele time import functions, win* dlls, grabweb routinen verwendet, das braucht zeit... |
|
|||
![]()
nachweis bitte
|
![]() |
Lesezeichen |
Stichworte |
icustom, icustom abfrage, icustom wert, mql4, programmierung, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|