Indikator mit timer - Seite 2

 
Carl Schreiber:

Ohne code kann ich nichts sagen. Verwendet der EA dll ist allow dll gesetzt?

Aber such mal nach dem Fehler cannot set timer. (Oben rechts die Lupe)

Gesucht hab ich schon. Ich weiß nur nicht ob diese Aussage stimmt:
Hi, this is how indicators and timers work. Timer can not work in indicator which is called from an EA. So, not all custom indicators can be used from the EA.

Dieser Aussage nach geht es wohl grundsätzlich nicht. Deswegen war ja meine Hauptfrage, ob das tatsächlich so ist. Ob diese Aussage richtig ist.


 
Daniel Kurbatfinski:
Gesucht hab ich schon. Ich weiß nur nicht ob diese Aussage stimmt:
Hi, this is how indicators and timers work. Timer can not work in indicator which is called from an EA. So, not all custom indicators can be used from the EA.

Dieser Aussage nach geht es wohl grundsätzlich nicht. Deswegen war ja meine Hauptfrage, ob das tatsächlich so ist. Ob diese Aussage richtig ist.


Huch?

Hier steht davon nix: https://www.mql5.com/de/docs/eventfunctions/eventsettimer

Dokumentation zu MQL5: Arbeit mit Ereignissen / EventSetTimer
Dokumentation zu MQL5: Arbeit mit Ereignissen / EventSetTimer
  • www.mql5.com
EventSetTimer - Arbeit mit Ereignissen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 
Hier steht zwar nicht, dass es nicht geht, aber auch nicht das es geht. In dem Artikel wird ja immer nur ein Produkt beschrieben (entweder Indikator oder EA) mit einer Timer-Funktion.
Aber in meinem Fall benutzt ein EA einen Indikator mit Timer-Funktion. Das ist ja wohl das Problem?!

 

?

Dort steh:

  1. .. dass Ereignisse für diesen Expert oder Indikator von Timer mit der angegebener Periodizitaet generiert werden muessen.  // also Indi und EA
  2. Jeder Expert Advisor und jeder Indikator arbeitet nur mit seinem Timer und bekommt Ereignisse nur von ihm.  

Punkt 2 bedeutet, dass Indi und/oder EA jew. ihren eigenen Timer verwenden - nicht ein und denselben.

Der EA kann jeder Zeit die aktuellen Werte des Indis abfragen - ganz unabhängig, ob der Timer des Indis 'zugeschlagen' hat oder nicht .

Also was soll da nicht gehen?


Dokumentation zu MQL5: MQL5 Programme / Eregnisse des Client-Terminals
Dokumentation zu MQL5: MQL5 Programme / Eregnisse des Client-Terminals
  • www.mql5.com
Eregnisse des Client-Terminals - MQL5 Programme - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5
 

ich habe jetzt nochmal gelesen und gesucht, aber ich finde nichts.

Hier ein vereinfachter Code mit einer simplen Funktion. Hoffentlich kannst du helfen.

Dateien:
profittest3.mq4  867 kb
 

Das sind 11.000 Zeilen Code - soviel Zeit habe ich nicht.

Außerdem scheint es, dass ein Timer gar nicht gestartet wurde - timer konnte ich nicht finden.

Warum fragst Du nicht den, der den Codegenerator erstellt hat? Es sollte ihn interessieren, wenn der Code seines Generators nicht funktioniert.

Aber nicht hier, sondern in dem Kommentar-Thread des Produktes.

 

Zum einen habe ich ja geschrieben, dass nur der aufgerufene Indikator Timer hat und nicht der EA.

Natürlich habe ich den Ersteller als erstes gefragt (https://www.mql5.com/en/market/product/2468#!tab=comments&page=1&comment=21379478  Beitrag 10) und dieser hat ja behauptet, dass es generell technisch nicht möglich ist Indikatoren mit Timer-Funktionen in einem EA aufzurufen. 

Das wollte ich wissen ob es richtig oder falsch ist.

Buy the 'Mission Automate MT4' Trading Utility for MetaTrader 4 in MetaTrader Market
Buy the 'Mission Automate MT4' Trading Utility for MetaTrader 4 in MetaTrader Market
  • www.mql5.com
This is a visual strategy builder . The way it is supposed to be. Turn your trading strategies and ideas into Expert Advisors without writing a single
 
Daniel Kurbatfinski:

Zum einen habe ich ja geschrieben, dass nur der aufgerufene Indikator Timer hat und nicht der EA.

Natürlich habe ich den Ersteller als erstes gefragt (https://www.mql5.com/en/market/product/2468#!tab=comments&page=1&comment=21379478  Beitrag 10) und dieser hat ja behauptet, dass es generell technisch nicht möglich ist Indikatoren mit Timer-Funktionen in einem EA aufzurufen. 

Das wollte ich wissen ob es richtig oder falsch ist.

Ich würde mal vorschlagen probiers aus das du den indi in einen ea bringst und gib dir die werte aus, bin ziemlich überzeugt das es funktioniert

 

Hier mal ein einfacher Code. Ich bin mir nicht sicher, ob es richtig ist. Der EA startet zumindest, bringt jedoch den gleichen Fehler: 2021.03.22 20:17:12.560 profit EURAUD,M15: cannot set timer (1)

//+------------------------------------------------------------------+
//|                                                        Test2.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   double UP = iCustom(NULL,0,"Examples\\profit",0,1,0);
   double DN = iCustom(NULL,0,"Examples\\profit",0,1,0);
  
   if (OrdersTotal ()<1) {
      if (UP > 35)  {           //... ein Wert Deiner Wahl
         int buy = OrderSend(Symbol(),OP_BUY,0.10,Ask,3,(Ask - 0.0100),(Ask + 0.0025),NULL,0,0,clrNONE);
      }

      if (DN < 10)  {           //... ein Wert Deiner Wahl
         int sell = OrderSend(Symbol(),OP_SELL,0.1,Bid,3,(Bid + 0.0100),(Bid - 0.0025),NULL,0,0,clrNONE);
      }
   }
}

 
Daniel Kurbatfinski:

Zum einen habe ich ja geschrieben, dass nur der aufgerufene Indikator Timer hat und nicht der EA.

Natürlich habe ich den Ersteller als erstes gefragt (https://www.mql5.com/en/market/product/2468#!tab=comments&page=1&comment=21379478  Beitrag 10) und dieser hat ja behauptet, dass es generell technisch nicht möglich ist Indikatoren mit Timer-Funktionen in einem EA aufzurufen. 

Das wollte ich wissen ob es richtig oder falsch ist.

Wie gesagt OnTimer funzt laut  Doku in Indikatoren (auch in MQL4: https://docs.mql4.com/eventfunctions/eventsettimer), nur Sleep wird in Indikatoren ignoriert: "Die Funktion Sleep() kann aus Benutzerindikatoren nicht aufgerufen werden, .."

Aber, dann versuch halt den Timer aus dem Indikator zu entfernen, oder nimm mal einen anderen EA aus den \Examples\ und starte dort mal den Indikator...

Dokumentation zu MQL5: Allgemeine Funktionen / Sleep
Dokumentation zu MQL5: Allgemeine Funktionen / Sleep
  • www.mql5.com
Sleep - Allgemeine Funktionen - Nachschlagewerk MQL5 - Nachschlagewerk über die Sprache des algothitmischen/automatischen Handels für MetaTrader 5