Diskussion zum Artikel "Verwendung von Ressourcen in MQL5" - Seite 2

 
danke.
 

Die Verwendung von Ressourcen im Testgerät sollte funktionieren? Es funktioniert nicht. Fehler 4802.

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1

#resource "\\Indicators\\Examples\\ADX.EX5"
#property tester_indicator "\\Indicators\\Examples\\ADX.EX5"
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\ADX.EX5");
   if(handle!=INVALID_HANDLE)
     {
      ChartIndicatorAdd(0,1,handle);
     }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
  return(rates_total);}

	          
 
Karlson:

Die Verwendung von Ressourcen im Testgerät sollte funktionieren? Es funktioniert nicht. Fehler 4802.

Was wollen Sie wirklich tun?

Die Berechnungsfunktion OnCalculate dieses Indikators in einem externen Indikator mit eigenem Berechnungsmodul überschreiben? Das können Sie nicht tun.

 
Ja, ich wollte, dass mein Indikator Daten von Zigzag empfängt und sie als Ressource einbezieht.
 

Um den Indikator im Prüfgerät zu überprüfen, müssen Sie jedoch das Vorhandensein des Verriegelungsmechanismus selbst sicherstellen.

if(MQL5InfoInteger(MQL5_TESTING)==true) // wenn Prüfer, aus dem Ordner holen
     {
      f_h=iCustom(_Symbol,_Period,"Examples\\Zigzag",5,5,3);
     }
   else                                 // wenn wir im Diagramm die eingebaute
     {
      f_h=iCustom(_Symbol,_Period,"::Indicators\\Examples\\Zigzag.EX5",5,5,3);
     }

Eine andere Möglichkeit besteht darin, das Sicherheitsschloss vollständig einzubetten.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Diskussion über den Artikel "Verwendung von Ressourcen in MQL5".

Renat, 2013.01.16 22:21

Dies wurde in der 730er Build am 24. November 2012 hinzugefügt:

  • MQL5: Unterstützung für das Speichern von Indikatoren in EX5-Ressourcen hinzugefügt. Indikatoren in Ressourcen werden nicht in der Lage sein, mit ihren eigenen Ressourcen zu arbeiten.
Könnten Sie mir bitte sagen, wie ich ein grafisches Objekt vom Typ OBJ_BITMAP_LABEL in einem aus Ressourcen geladenen Indikator erstellen und Text aus TextOut darüber legen kann?
Können wir eine Ausnahme nur für TextOut machen - die Fähigkeit, mit seinen eigenen Ressourcen von aus Ressourcen geladenen Programmen zu arbeiten?
 
fyords:
Könnten Sie mir bitte sagen, wie es möglich ist, ein grafisches Objekt des Typs OBJ_BITMAP_LABEL im Indikator zu erstellen, der aus Ressourcen geladen wurde, und darauf den Text aus TextOut zu überlagern?
Kann nur für TextOut eine Ausnahme gemacht werden - die Fähigkeit, mit seinen eigenen Ressourcen von Programmen zu arbeiten, die aus Ressourcen geladen wurden?
Und an welcher Stelle genau liegt das Problem? Was genau funktioniert nicht?
 
Renat:
Wo genau liegt das Problem? Was genau funktioniert nicht?

Es gibt einen Indikator, von dem aus der untergeordnete Indikator gestartet wird, und zwar aus Ressourcen.
TextOut wird im untergeordneten Indikator verwendet, und das Ergebnis wird über ResourceCreate in OBJ_BITMAP_LABEL geladen, aber es gibt keine Möglichkeit, Ressourcen in der Ressource zu verwenden.

Das Ergebnis ist, dass das Objekt erscheint, die Ressource in den Eigenschaften angegeben ist, aber der Text selbst nicht ausgegeben wird.

 
fyords:

Es gibt einen Indikator, von dem aus ein Child gestartet wird, das aus Ressourcen besteht.
TextOut wird im Child verwendet, und das Ergebnis wird über ResourceCreate in OBJ_BITMAP_LABEL geladen, aber es gibt keine Möglichkeit, Ressourcen in der Ressource zu verwenden.

Das Ergebnis ist, dass das Objekt erscheint, die Ressource in den Eigenschaften angegeben ist, aber der Text selbst nicht ausgegeben wird.

Ja, es ist derzeit nicht möglich, Ressourcen aus einem Resource-Objekt zu laden.

Tatsächlich sieht die Situation folgendermaßen aus: Der Indikator, der aus einer Ressource eines Drittanbieters "gezogen" wurde, beginnt innerhalb des aufgerufenen Moduls zu leben und alle seine Aufrufe an Ressourcen gehen an den Körper des aufgerufenen Moduls, nicht an den nativen Körper. Wir denken derzeit über dieses Problem nach und werden es höchstwahrscheinlich lösen.

 
Renat:

... Wir denken jetzt über dieses Problem nach und werden es wahrscheinlich lösen.

Danke, ich werde warten.