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)
-   -   Strategische Frage zum Sichern von Einstellungen (http://www.expert-advisor.com/forum/showthread.php?t=6687)

AVT 15.06.20 12:06

Strategische Frage zum Sichern von Einstellungen
 
Die Werte, die ein Indikator benutzt, werden bei mir auf 2 Arten gesichert:
1. CVS Datei (alle Werte, auch graphische Einstellungen)
2. Globalvariablen (nur die "Rechenwerte")

Die gesicherten Werte lassen sich ja vom Benutzer ändern, sowohl die in der CVS Datei (wenn man weiß wie sie heißt und welcher Wert was ist) als auch die Globalvariablen.
Nun stellt sich die Frage der Reihenfolge, in der sie eingelesen werden sollen. Globalvariablen sind schnell mal geändert, insofern tendiere ich eher dazu, die CVS Werte über die Globalvariablen zu stellen (also später einzulesen und damit bei abweichenden Werten den Vorrang zu geben).

Wäre nett, wenn Ihr dazu Kommentare hättet. Danke. AVT

Indikator-Trading 16.06.20 09:37

Der Inhalt der Daten für die jeweiligen Indikatoren in der CSV-Datei ist aber nicht identisch mit denen aus den globalen Variablen, oder?
Wenn das alles nur für nicht und nicht für die Nutzung anderer angedacht ist, dann würde ich der CSV-Datei dem Vorzug geben. Diese geht zumindest beim Absturz vom MT nicht verloren.
Gruß Timo

traderdoc 16.06.20 11:51

Nun ja, beim Begriff globale Variable kommt immer so einiges
durcheinander. Es gibt die globalen Variablen, die über
GlobalVariableSet() gebildet werden und die welche außerhalb aller
Funktionen definiert werden.
Letztere sind beim Absturz tatsächlich gelöscht.
Erstere bleiben unangetastet für 4 Wochen erhalten.

Schneller ist sicherlich der Zugriff auf Erstere als auf
gespeicherte via csv-Datei.

traderdoc

Ca$hDigger 16.06.20 12:56

Ich würde was das Sichern von Einstellungen angeht alles über die CSV machen da das als Einziges persitent ist.

GlobalVariableSet() eher für Kommunikation zwischen Charts/EAs/...

AVT 16.06.20 16:36

:) Ich danke Euch allen für Eure Kommentare. :)

@traderdoc: entschuldige die etwas ungenaue Beschreibung, bei den Globalvariablen handelt es sich tatsächlich um GlobalVariableSet() Variablen.

Und diese können natürlich von jedem Programm/EA, der den Namen der Variablen kennt, benutzt/ausgelesen werden. Wenn man aber mal im Terminal unter Extras - Globale Variablen aufruft, dann kann man dort auf Klick den Wert einfach ändern. Dumm, wenn ein anderes Programm diese benutzen will und nun plötzlich der Wert ein anderer ist.

@Ca$hDigger: das stimmt, noch dazu (fällt mir grade ein) lassen diese Datein auch einfacher archivieren :)

Ich werde jetzt so verfahren, daß zwar in OnInit die GlobalVariableGet() zuerst abgefragt wird, aber danach werden - falls vorhanden, die CVS Daten geholt (das sind schließlich diejenigen, die allein durch Benutzereinstellungen im Programm geändert werden können - abgesehen von einem schnellen Hack der CVS-Datei :D).
AVT

traderdoc 16.06.20 18:27

Also, wenn man korrekterweise den Globalen Variablen eineindeutige Namen vergibt, kann so etwas nicht passieren.
Das Benutzen der csv-Dateien zwecks Einlesen oder Speichern der Daten kann unter zeitlich kritischen Momenten manchmal fehlschlagen. Der Zugriff auf die Globalen Variablen ist da erstens schneller und programmtechnisch weniger aufwändiger.

Aber es kommt immer genau darauf an, was man tun möchte.

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:44 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