Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 317
Gesamt: 317
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree2Likes
  • 2 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 22.12.15
Mitglied
 
Registriert seit: Nov 2014
Beiträge: 31
Bucardo befindet sich auf einem aufstrebenden Ast
Standard Variablen-Inhalt nach MT4 Neustart

Hallo zusammen,
Ich habe ein Problem mit einem meiner EAs bei dem ich nicht weiter komme.

Der EA verwaltet meine laufenden Trades und schließt bei Erreichen eines bestimmten Kurszieles (das ich extern eingebe) 50% der Position. Das funktioniert bisher sehr gut. Wenn es jedoch zu einem Neustart des Metatraders kommt (Stromausfall, etc), beginnt der EA von vorne und schließt wieder 50% der Position, usw. Diese Funktion soll aber pro Trade natürlich nur einmal durchgeführt werden.
Bisher habe ich mit Schaltern aus 'static bool' Variablen gearbeitet, die dafür sorgen, dass eine Funktion nur einmal ausgeführt wird. Also z.B.

static bool flag = true

if(Kursziel erreicht && flag == true)
{Aktion;
flag = false;}

Inzwischen bin ich auf der Suche nach einer Lösung bei den globalen Variablen gelandet (GV), komme dort aber nicht weiter. Ich habe es so verstanden, dass die GV nur Zahlenwerte im Sinne einer 'double'-Variablen annehmen können. Ich suche aber etwas in der Art wie:

(extern?) GlobalVariableSet(flag,true)

if(Kursziel erreicht && flag == true)
{Aktion;
GlobalVariableSet(flag,true) ;}

D.h. ich möchte dem EA mitteilen, dass er die Teilschließung nur einmal pro Trade vornehmen soll, egal wir oft der MT4 neu gestartet wird. Wenn ich den EA später für einen neuen Trade einsetze, soll er natürlich wieder eine Teilschließung vornehmen.

Ich hoffe mein Problem ist deutlich geworden und ihr habt eine Idee wie man das lösen könnte.

Danke & Gruß
Bucardo
  #2 (permalink)  
Alt 22.12.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Anstatt

Code:
if(Kursziel erreicht && flag == true) {
   //Aktion;
   flag = false;
}
dann

Code:
if(Kursziel erreicht && GlobalVariableGet(Variablenname) == 1) {
   //Aktion;
   GlobalVariableSet(Variablenname, 0);
}
Und dann klappt das auch.

traderdoc
Bucardo and asfranz like this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 23.12.15
Mitglied
 
Registriert seit: Nov 2014
Beiträge: 31
Bucardo befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc, danke für die schnelle Antwort.

Mit deiner Hilfe konnte ich das Problem lösen. Leider ist jetzt ein neues aufgetaucht.

Ich habe den EA zum Managen meiner Positionen auf mehreren verschiedenen Symbolen laufen. Wenn ich die Globalen Variablen nutze, schaltet der EA nach der 1. Teilschließung auch alle anderen EA in den Standby.
Gibt es dazu auch eine elegante Lösung?

VG Bucardo

Geändert von Bucardo (23.12.15 um 17:33 Uhr)
  #4 (permalink)  
Alt 23.12.15
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

In diesem Falle muß die Variable Variablenname bei der Deklaration z.B. so lauten:

string Variablenname = Symbol() + "_irgendwas";

Das Symbol() steht als Funktionsaufruf des Chartsymbols.
Das _ nehme ich immer, um das Symbol vom restlichen Text zu trennen, um eine bessere Übersichtlichkeit zu erreichen.
Dann nimmt der EA, z.B. auf dem USDJPY-Chart, bei dem Aufruf von
GlobalVariableGet(Variablenname) nur den Wert, der auch von der EA-Instanz generiert wurde, die sich auf dem USDJPY-Chart befindet.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, variable, variable neustart, variablen, variablen neustart

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------