Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   VPS Entlastung und Energiesparen (http://www.expert-advisor.com/forum/showthread.php?t=4414)

Raul0 18.08.15 06:56

VPS Entlastung und Energiesparen
 
Hallo,

der EA durchläuft bei jedem Tick die Funktionen. Oft ist das nicht nötig, vorallem dann, wenn SL und TP fest mit der Order stehen.

Den EA optimieren, was wirklich benötigt wird

Hier kann Energie und Rechenleistung gespart werden. Mit einer einfachen Sleep() Funktion, welche nach Orderabgabe den EA nur z.B. aller 1 Minute, oder 5 Minuten durchlaufen läßt.
Wurde die Order geschlossen und befindet sich der EA auf der Suche nach neuen Möglichkeiten, so kann die Sleep() Funktion deaktiviert oder verringert werden.

Somit ist eine Energieoptimierung machbar, wenn es nicht um jeden Tick geht.

BlackPearl 05.09.15 23:29

Zitat:

Zitat von Raul0 (Beitrag 30823)
Hallo,

der EA durchläuft bei jedem Tick die Funktionen. Oft ist das nicht nötig, vorallem dann, wenn SL und TP fest mit der Order stehen.

Den EA optimieren, was wirklich benötigt wird

Hier kann Energie und Rechenleistung gespart werden. Mit einer einfachen Sleep() Funktion, welche nach Orderabgabe den EA nur z.B. aller 1 Minute, oder 5 Minuten durchlaufen läßt.
Wurde die Order geschlossen und befindet sich der EA auf der Suche nach neuen Möglichkeiten, so kann die Sleep() Funktion deaktiviert oder verringert werden.

Somit ist eine Energieoptimierung machbar, wenn es nicht um jeden Tick geht.

Alternativ nur jeden xten Tick rechnen. In Zeiten hoher Volatilität ist das je nach Handelsstrategie evtl. besser als eine feste Zeit zu warten.

Raul0 07.10.15 18:08

Zitat:

Alternativ nur jeden xten Tick rechnen.
Hättest Du dafür ein Codebeispiel?


Um das Thema fortzuführen habe ich ein Beispiel angelegt.
Es nützt etwas, wenn der Kurs von einem möglichen Orderziel eine höhere Entfernung aufweist und es keinen Sinn macht eine hohe Abtastung des Marktes vorzunehmen.

PHP-Code:

   int Barzahl_M1;//zu den globalen Variablen
   
   //Vergleich aktuelle Barsanzahl auf M1 Basis mit Variable Barzahl_M1
   
if( Bars(NULL,PERIOD_M1) > Barzahl_M1 ) {

      
//Beispiel mit gleitendem Durchschnitt
      
double MA200 iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,0);

   
//Entfernungsbedingungen mit entsprechender Wartezeit, hier wird die Variable Barzahl_M1 gesetzt
   //Da der Abstand drunter oder drüber sein kann, wird beides berücksichtigt
   
if( Close[0] >= MA200+150 || Close[0] <= MA200-150 Barzahl_M1 Bars(NULL,PERIOD_M1) + 15;//MA200+-150 Punkte hier ist der Abstand definiert, Durchlauf aller 15 Minuten
   
if( Close[0] < MA200+150 || Close[0] > MA200-150 Barzahl_M1 Bars(NULL,PERIOD_M1) - 2;//Durchlauf normal pro Tick, Verzögerungsfunktion ist unwirksam
   


Es können noch Zwischenstufen der Verzögerung definiert werden.

Bobs 08.10.15 07:23

Vielleicht, die Nutzung EventSetTimer() wird sicherer sein.

traderdoc 08.10.15 19:30

Zitat:

Zitat von Bobs (Beitrag 31257)
Vielleicht, die Nutzung EventSetTimer() wird sicherer sein.

Falls fixe Zeiten gelten sollen, ist das definitiv die bessere Lösung!

Bei einer Anzahl Ticks, läßt man einfach einen Zähler laufen:

Code:

int Count = 0;
void OnTick() {
  Count++;
  if (Count < 10) return;
  ...
  Count = 0;
}

traderdoc

yytrader 08.10.15 20:46

Hallo,

ich finde die EventTime Idee sehr gut, ich verwende auch einen Timer für meinen EA.
Ich scanne alle verfügbaren Symbole, das hat zu einer sehr hohen Last geführt.

Was allerdings am meisten gebracht hat, war das komplette Umstricken des EA.
Er hat verschiedene Einstiegskriterien, die alle erfüllt sein müssen.
Hierzu berechne ich pro Symbol die verschiedenen Kriterien in Reihenfolge der aufsteigenden Last, so kann ich sofort abbrechen, wenn ein Kriterium nicht erfüllt ist.
So konnte ich die Last stark senden, vielleicht hilft dir eine ähnliches Vorgehen.


Gruß

yytrader

Raul0 16.03.16 00:00

Weiter mit dem Beitrag zum sparen von Rechenleistung und Energie
 
Weiter mit dem Beitrag zum sparen von Rechenleistung und Energie. Diesmal geht es mit dem Metatrader selbst weiter.

Rechenleistung wurde auf dem VPS sichtlich gespart durch zwei Punkte:

- Symbole ausblenden. Rechte Maustaste auf Symbol welches nicht verwendet wird und "Verbergen". Hintergrund: Der MT holt permanent Daten von aktiven Symbolen ein und speichert diese.

- Marktübersicht bei verlassen des VPS wieder deaktivieren mit Strg+M, oder das dritte Symbol in der Menüleiste.

BlackPearl 16.03.16 08:43

In den Optionen habe ich auch die News abgeschaltet und alle akustischen Signale. Das ist ja kein Glücksspielautomat. Leider gibt es etliche EA, die die Einstellung nicht abfragen und trotzdem Lärm machen, wie im Kindergarten an der Triangel oder am einarmig Banditen : Bing, Bing, Bing.
Zum Glück auf VPS und dadurch verschont davon.
Ich denke am meisten bringt das schon beschriebene Abschalten unnötiger Symbole, kostet auch Bandbreite, die in Zeiten höherer Volatilität gebraucht wird.

pischinger 16.03.16 13:52

sinn macht auch alle iCustoms komplett in den ea zu integrieren, da via iCustom der gesamte code geladen wird!

des weiteren, wenn indikatoren/template angezeigt werden sollen, diese mittels button am chart immer aus und einschalten, da gerade alle chart graphik elemente viel speicher und rechenleistung brauchen.

wird der/das/die terminal(s) nicht gebraucht, immer auf minimieren, rechts oben pfeil nach unten klicken, das entlädt alle grafischen elemente aus dem speicher, welche bei maximieren des mt4 wieder geladen werden...zuerst beim aktiven chart und bei allen weiteren

Ca$hDigger 18.03.16 12:00

Zitat:

Zitat von yytrader (Beitrag 31263)
so kann ich sofort abbrechen, wenn ein Kriterium nicht erfüllt ist.

Wie setzt man so einen Abbruch Programmtechnisch um? Mit goto oder schleife+break?

Gruß


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:57 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum