Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3628
Beiträge: 35749
Benutzer: 5.757
Aktive Benutzer: 627
Links: 80
Wir begrüßen unseren neuesten Benutzer: bayusuta
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- bayusuta
vor 16 Stunden
- LukasS
vor 2 Tagen
- Piz_Buin
vor 2 Tagen
- ThisIsSef
vor 2 Tagen
- ASZSpeedy

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 60
Gesamt: 62
Team: 0
Team:  
Benutzer:  Stier
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 15.06.16
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 46
marquez befindet sich auf einem aufstrebenden Ast
Question DLL Werte behalten

Hi,

ich habe mal wieder eine Frage an die programmier Profis hier.

Und zwar habe ich im moment eine kleine Herausforderung:

Ich habe eine DLL in C++ erstellt, die ein Array enthält, was maximal 256 Werte aufnehmen kann (default Wert: 0).

Code:
long ChartId[255] = { 0 };

Jetzt wollte ich es so gestalten, dass ein Indikator von seinem Chart die ChartID ins Array beginnend mit Index 0 reinschreibt. Im nächsten Chart dann entsprechend Index 1 die Chart ID usw.

Dabei stoße ich auf folgendes Problem:
Wenn ich den Indikator nur in ein Chart hineinlade, den Wert schreiben lasse, und danach die Timeframe wechsel, initialisiert mir der Indikator alles komplett neu, also auch die DLL.

Habe ich jedoch den gleichen Indikator bereits in mehrere Charts geladen, und wechsel ich die Timeframe in irgend einem Chart, wirkt sich der re-init auf die DLL nicht mehr aus.

zum Verständnis für was es sein soll:

Ich erhalte per httprequest Rückgabewerte die ich zum späteren Zeitpunkt für eine Weiterverarbeitung innerhalb des MQL Codes benötige. Da der Indikator nun beim Timeframe wechsel, soweit mir bekannt ist, immer alles Values neu initialisiert, wollte ich dies anhand der DLL umgehen und die Werte dort zwischenspeichern um sie hinterher wieder auslesen zu können.


Hat irgend wer einen Tipp, wie ich das lösen kann ?


Vielen Dank für Antworten und Anregungen.
marquez

Geändert von marquez (15.06.16 um 08:18 Uhr)
  #2 (permalink)  
Alt 30.07.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Werte behalten

Wären Globalvariablen nicht die einfachere Lösung?
  #3 (permalink)  
Alt 31.07.16
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 46
marquez befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kronenchakra Beitrag anzeigen
Wären Globalvariablen nicht die einfachere Lösung?
Nein, da leider beim umschalten der Periode durch den Benutzer der ganze Indikator neu initalisiert wird, und somit auch die Globalen Variablen einen reset erleiden. Außerdem habe ich bei einer globalen Variable nur innerhalb des einen asset Zugriff auf die Werte.

Wenn ich eine DLL nutze, kann ich die Werte bei jedem Chart auslesen und nutzen, und nicht nur in dem einem Asset.

Oder weiss ich da irgendwas nicht mit globalen Variablen ?
  #4 (permalink)  
Alt 31.07.16
Mitglied
 
Registriert seit: May 2015
Beiträge: 124
yytrader befindet sich auf einem aufstrebenden Ast
Standard

Hallo marquez,

ich denke Kronenchakra meinte diese globalen Variablen:
https://docs.mql4.com/globals
Diese sind global im Terminal und werden durch Neuinitialisierungen von EAs nicht resettet.

Gruß

yytrader
  #5 (permalink)  
Alt 31.07.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Reset bei Periodenwechsel

Hallo marquez!

Also beim MT5 bleiben die Globalen Variablen erhalten.
Hab da schnell einen Testindikator gebastelt, da ich die globalen Variablen ja auch brauche.
Ich steuere damit die Indikatoren die mir meine eigenen Tickdaten speichern.
Somit kann ich beliebig viele Indis ein- oder ausschalten.

LG Otto
Angehängte Dateien
Dateityp: mq5 GVarTest.mq5 (1,6 KB, 3x aufgerufen)

Geändert von Kronenchakra (31.07.16 um 20:28 Uhr) Grund: Ergänzung
  #6 (permalink)  
Alt 01.08.16
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 46
marquez befindet sich auf einem aufstrebenden Ast
Standard

Hi,

In der Tat muß ich zugeben, diese globalen kannte ich noch gar nicht.


Danke für Eure Hinweise. Die sind echt Gold wert. Alle Daumen hoch die ich habe dafür.

Aber eine Frage hätte ich dann dazu noch eben. Sind die dann nur innerhalb des Charts abrufbar, oder von jedem Tab alle benutzbar ?

Bsp: Tab1 setzt Value1 , und tab3 soll Value1 abfragen können
  #7 (permalink)  
Alt 01.08.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Globale Variable

Die sind von allen Tabs(Charts) aufrufbar.
Wie schon beschrieben, steuere ich damit Indikatoren auf mehreren Charts.

LG Otto

Geändert von Kronenchakra (01.08.16 um 17:14 Uhr) Grund: Ergänzung
  #8 (permalink)  
Alt 15.08.16
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 46
marquez befindet sich auf einem aufstrebenden Ast
Standard

Danke für Eure Antworten.

Die haben mir echt geholfen.


Eine kurze Frage hätte ich dann zu den globalen Variablen noch

Können globale Variablen nur als Double benutzt werden ? Oder gibt es ne Möglichkeit, in globalen Variablen auch andere formate abzuspeichern wie strings o.ä. ?

Zudem, kann man auch echte Arrays mit globale Variablen erzeugen ? Oder muss man die wirklich erzeugen a la "globaleVariable1, globaleVariable99" etc ?
  #9 (permalink)  
Alt 16.08.16
Benutzerbild von Kronenchakra
Mitglied
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 258
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Die globalen Variablen können nur double.
Falls du was anderes brauchst, schreib es in Dateien.
Ist zwar langsam, aber wenn du ssd hast, erträglich.
  #10 (permalink)  
Alt 18.08.16
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 46
marquez befindet sich auf einem aufstrebenden Ast
Standard

Ok,

danke nochmal für die Auskünfte.

Eine (hoffentlich abschliessende) Frage habe ich noch.


Ich habe jetzt meinen Code soweit umprogrammiert, so dass ich mit den globalen Variablen arbeiten kann. Soweit so gut, ABER:

wenn ich die compilierte Datei weiter gebe, gibt es Anwender, bei denen es damit zu Probleme führt. Das einzige was ich rückschliessen konnte bisher, diese Anwender haben allesamt (soweit ich verfolgen konnte) Windows 10.

Ist irgendwas bekannt, dass es mit Windows 10, oder eine bestimmten Metatraderversion Probleme gibt mit den globalen Variablen ?

Ich habe bei mir alles unter Windows 7 erstellt und fehlerfrei gestestet. Daher stehe ich damit jetzt ein wenig auf dem Schlauch.

Und ich kann mir keins von den Windows 10 Systemen oder Computern beschaffen um diesen Fehler nachstellen zu versuchen.


DANKE NOCHMAL FÜR HINWEISE.
Thema geschlossen

Lesezeichen

Stichworte
dll, dll import, http request, import, indicator, mql5, programmierung, programmierung metatrader


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 +2. Es ist jetzt 11:33 Uhr.



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