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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 37056
Benutzer: 6.077
Aktive Benutzer: 493
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 21 Stunden
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...
vor 2 Tagen
- hmf44
vor 3 Tagen
- Crossa

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 39
Gesamt: 40
Team: 0
Team:  
Benutzer:  Domke01
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 28.08.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 6
daliman befindet sich auf einem aufstrebenden Ast
Standard Refresh Offlinechart

Hallo. Ohne viele einleitende Worte, gleich zur Frage.

Mit dem Script

Code:
int start()
{
   static int hwnd = 0;
   hwnd = WindowHandle(Symbol(), Period());
   
   while(True)
   {
      PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0);
      Sleep(updateZeit);
   }
   return(0);
}
Kann ich einen Offlinechart, den ich mit CustomPeriod erstelle, automatisch aktualisieren. Jedes mal wenn ich den MT4 starte muß ich aber die Scripte wieder mounten. Daher habe ich das mit einem Indikator versucht. Ergebnis - MT reagiert nicht mehr. PostMessageError ohne nähere Angaben.

Hat jemend eine Ahnung woran das liegt?
  #2 (permalink)  
Alt 29.08.13
Mitglied
 
Registriert seit: Aug 2013
Beiträge: 61
dave_hofmann befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

verstanden habe ich dein Problem nicht, versuche trotzdem ein paar Tips zu geben. In der while Schleife fehlt noch ein RefreshRates um die Daten zu aktualiesieren, andernfalls bekommst du irgendwann ein buffer overflow. Vielleicht meintest du die Funktion WindowRedraw?

Guten Tag,

Dave
  #3 (permalink)  
Alt 29.08.13
Mitglied
 
Registriert seit: Aug 2013
Beiträge: 61
dave_hofmann befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

was ich vergessen habe ist, dass du die while Schleife in while(IsStopped()==false) aendern sollst, damit funktioniert das schliessen des eas oder scripts ohne timeout.

Guten Tag

Dave
  #4 (permalink)  
Alt 30.08.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 6
daliman befindet sich auf einem aufstrebenden Ast
Standard

zu 1)
Ich habe einen MT4 (online) der mir einen Offlinechart erstellt. z.B. 4 x M5 mit Period_Converter_Opt.mq4.

Dann habe ich einen zweiten MT4 (offline) der diesen Offlinechart anzeigt ... wie geht das denn!? ... ganz einfach das Historyverzeichnis des ersten MT, mittels MKLINK (Windowskommando) zum Verzeichnis des zweiten MT machen.

Jetzt kann ich im Submenü "Aktualisieren" auswählen oder das Script anbinden und mir das manuelle Aktualisieren. (Klappt. Mit den Vorschlägen noch besser)

Wenn ich diesen Codeschnipsel in einen Indikator reinschreibe, das geht nichts mehr und ich muß den MT-Prozess killen.

Code:
#property indicator_chart_window
#include <WinUser32.mqh>
#define  CHART_CMD_UPDATE_DATA            33324
extern int updateZeit = 1000;
static int hwnd = 0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
      //---- indicators
      hwnd = WindowHandle(Symbol(), Period());
      //----
      return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
//----
      PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0);
      RefreshRates();
      WindowRedraw();
//----
   return(0);
}
Ich würde vielleicht selbst drauf kommen woran es liegt, aber es gibt keinen Anhaltspunkt/Fehlermeldung/Code oder so. Oder ich weiß einfach nur nicht wo ich gucken soll...
  #5 (permalink)  
Alt 30.08.13
Mitglied
 
Registriert seit: Mar 2012
Beiträge: 131
Trabo befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von daliman Beitrag anzeigen
Hallo. Ohne viele einleitende Worte, gleich zur Frage.

Mit dem Script

Code:
int start()
{
   static int hwnd = 0;
   hwnd = WindowHandle(Symbol(), Period());
   
   while(True)
   {
      PostMessageA(hwnd,WM_COMMAND,CHART_CMD_UPDATE_DATA,0);
      Sleep(updateZeit);
   }
   return(0);
}
Kann ich einen Offlinechart, den ich mit CustomPeriod erstelle, automatisch aktualisieren. Jedes mal wenn ich den MT4 starte muß ich aber die Scripte wieder mounten. Daher habe ich das mit einem Indikator versucht. Ergebnis - MT reagiert nicht mehr. PostMessageError ohne nähere Angaben.

Hat jemend eine Ahnung woran das liegt?
--> Eine andere simpele Methode währe doch, das als Profile defeault abzupspeicher, dann bleibt das script doch erhalten oder irre ich mich
hier ?
  #6 (permalink)  
Alt 30.08.13
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 6
daliman befindet sich auf einem aufstrebenden Ast
Standard

Das funktioniert auch leider nicht. Übrigens, "währe" ohne "h", "simpele" ist "simple", "defeault" heißt "default", "abzupspeicher" solle besser "abzuspeichern" sein und "script" ist "skript". Aber sonst sind keine Lechsleibfeler drin.
  #7 (permalink)  
Alt 30.08.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun sei mal nicht so krümel*****risch!
Hast ja prinzipiell Recht, nur mit dem skript bist Du über das Ziel hinausgeschossen. Denn entweder man benutzt es im englischen Sinne, dann klein und mit c oder im deutschen Sinne mit k oder im latainischen mit c, dann aber auch in beiden Fällen in Großschreibweise!

traderdoc
  #8 (permalink)  
Alt 02.09.13
Mitglied
 
Registriert seit: Mar 2012
Beiträge: 131
Trabo befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank, kannst ja gerne alle meine antworten kurz mal überfliegen und auf die rechtschreibfehler korrigieren.
Thema geschlossen

Lesezeichen

Stichworte
chart, chart aktualisieren, metatrader, metatrader chart, offline chart


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 14:03 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
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.
-----------------------------------------------------------------------------------------------------------------------------