Problem mit iHigh und iLow - Seite 2

 
amando #:

Meine Glaskugel ist gerade defekt, aber eventuell Kannst ja mal den Code zeigen

Hi amando,

lieb von Dir, es nochmal zu probieren.

Das ist die relevante Schleife:

      for (int i=0; i<barAnz; i++)
        {
         charts[ci].bars[i].high=iHigh(symbol,charts[ci].timeframe,i);
         charts[ci].bars[i].low=iLow(symbol,charts[ci].timeframe,i);
         charts[ci].bars[i].time=iTime(symbol,charts[ci].timeframe,i);
        }

Das ganze iss n EA, der (ich glaub) 12 Symbole beobachtet und da auch handelt.
Parameter wie stoploss, takeprofit, lotsize und das ganze gedöns will ich aber zentral, also nur an einer stelle vorgeben.
Und es werden auch nicht jeden Tag alle 12 Symbole gehandelt.

Also ... entweder 12 Charts, alle mit dem gleichen EA, und einen Master-EA, der den anderen die Parameter gibt, und nen vollen, unübersichtlichen Bildschirm
oder ... einen EA, der die 12 Symbole beobachtet und handelt, und nur für die aktiven Symbole sowas wie nen "Chart" aufmacht.

Ich hab mich für den einen EA entschieden.
Aktive Symbole werden in nem Pseudo-Chart angezeigt. (das ist letzlich n Frame-Object, in dem ich selber die balken rein male)
Inaktive Symbole werden ausgeblendet.
So hab ich nur die relevanten Infos auf'm Bildschirm.

Und in der Schleife oben werden eben für alle aktiven symbole die Bars High/Low abgefragt, um sie in den "Charts" anzuzeigen.

Ob das hilft ...??? :-)

 
dazi #:
Ob das hilft ...??? :-)

Teilweise, denn jetzt ergeben sich weitere Fragen:

  1. Was steht im Log?
  2. Warum kein Ausdruck - welche Preise/Zeiten werden kopiert?
  3. Welche Preise (erste und letzte) werden angeboten?
  4. Ist das Array charts groß genug?
  5. ...
  6. Es gibt für MT5 viele Beispiele für Multi-Symbol ...
    Warum selber machen, wenn es das doch schon gibt?
    Suchen, kopieren und ändern nach den eigenen Wünschen ist schneller, als jeden Fehler austesten.
 
Das steht sicher in on Tick und wenn kein Tick kommt passiert halt Nix
 

Dachte mir schon, daß das nix bringt.


Carl:
mein Problem ist halt mal beim MT4. Und wenn Du mir den MT5 wie warme Semmeln anbietest ... es ist keine Hilfe.
Ja, das Array charts ist groß genung. Und stell Dir vor, das Array bars (das ist n Array im Array charts) ist auch groß genug.
Und beides hat leider mal wieder nix mit meinem Problem zu tun.
PS: ich konnte dem MT5 die letzten 15 Jahre widerstehen - ich werd das auch die nächsten 15 Jahre schaffen ;-)

amando:
gut mitgedacht.
Ja, der Markt des Symbols auf dem der EA läuft ist zu - also kein Tick.
Aber wie Du in dem Mini-EA von oben siehst, zieh ich nen Timer (1 sec) auf. Und da drin ist die Abfrage der "fremden" Symbole.

 
dazi #:

Dachte mir schon, daß das nix


amando:

gut mitgedacht.
Ja, der Markt des Symbols auf dem der EA läuft ist zu - also kein Tick.
Aber wie Du in dem Mini-EA von oben siehst, zieh ich nen Timer (1 sec) auf. Und da drin ist die Abfrage der "fremden" Symbole.

Wüsste nicht wo man das sieht

Und wenn der Markt nicht offen ist gibt’s auch keinen ontimer
 
amando #:

Wüsste nicht wo man das sieht

Und wenn der Markt nicht offen ist gibt’s auch keinen ontimer

sieht man da: https://www.mql5.com/de/forum/485613#comment_56579013

Und sorry wenn ich widersprechen muß ... aber natürlich gibt's dann nen Timer

 
dazi #:

sieht man da: https://www.mql5.com/de/forum/485613#comment_56579013

Und sorry wenn ich widersprechen muß ... aber natürlich gibt's dann nen Timer

https://docs.mql4.com/eventfunctions/eventsettimer


Bitte sehr, wird über die oninit initialisiert, wenn Markt zu, dann nix da

EventSetTimer - Working with Events - MQL4 Reference
EventSetTimer - Working with Events - MQL4 Reference
  • docs.mql4.com
EventSetTimer - Working with Events - MQL4 Reference
 
amando #:

https://docs.mql4.com/eventfunctions/eventsettimer


Bitte sehr, wird über die oninit initialisiert, wenn Markt zu, dann nix da

amando,

extra für Dich ...
laß es mal auf nem Symbol mit geschlossenem Markt laufen.

long timerCount=0, tickCount=0;
int OnInit()
  {
   while (!EventSetTimer(1)) {Sleep(500);}
   return(INIT_SUCCEEDED);
  }
double OnTester(){return(0.0);}
void OnDeinit(const int reason){}
void OnTimer(){timerCount++; DispCounter();}
void OnTick(){tickCount++; DispCounter();}
void DispCounter()
  {
   Comment("Tick:"+(string)tickCount+" Timer:"+(string)timerCount);
  }