Ich danke Ihnen für Ihre Wertschätzung. Ich habe in diesem Forum gelernt, wie man programmiert. Ich veröffentliche meine Arbeit, weil sie diszipliniert. Ich benutze meine Beschreibungen als Anhaltspunkte, weil ich sehr schnell vergesse, was und wie ich geschrieben habe.
Ich entschuldige mich für meinen Programmierstil, aber er war für mich selbst gedacht. Und wurde als Nebeneffekt veröffentlicht.
Leider ist es unmöglich, die Popularität veröffentlichter Arbeiten zu beurteilen. Wenn jemand sie nutzt, dann ein sehr enger Kreis von Nutzern.
Die Zahl der Nutzer zu erhöhen - ein solches Ziel gibt es nicht.
Ich kann die Daten nicht abrufen, hier führe ich ein Skript aus, und so wie ich es verstehe, werden die Daten jetzt irgendwo im Terminal gespeichert:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166//+------------------------------------------------------------------+//| Skript-Programmstartfunktion|//+------------------------------------------------------------------+voidOnStart()
{
const RESOURCEDATA<int>ResourceINT("::int"); // Ressource für den Austausch von Ints. const - als Beweis dafür, dass nichts in das Klassenobjekt geschrieben wird int ArrayINT[]={1,2,3};
ResourceINT=ArrayINT; // Die Ressource speichert ein Array. int ArrayINT2[];
ResourceINT.Get(ArrayINT2); // Lesen von Daten aus der Ressource.ArrayPrint(ArrayINT2); // Zurückgezogen: 1 2 3 5 1 2 3
}
//+------------------------------------------------------------------+
Hier führe ich ein weiteres Skript aus, um die Daten zu erhalten, die beim Ausführen des ersten Skripts gespeichert wurden, aber die Daten werden nicht angezeigt:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166//+------------------------------------------------------------------+//| Skript-Programmstartfunktion|//+------------------------------------------------------------------+voidOnStart()
{
//---// Dies ist der vollständige Name der Ressource, auf die von einem anderen Programm aus zugegriffen werden soll//const string NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5)+"::Ticks"; conststring NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5,9)+"Test_Keep_Info.ex5::Ticks";
Print(NameOut); // Druckt den vollständigen Namen der Ressource.const RESOURCEDATA<int>Resource(NameOut); // Ressource für den Zugriff auf Daten (schreibgeschützt) aus einem anderen Programmint ArrayINT2[];
Resource.Get(ArrayINT2); // Lesen von Daten aus der Ressource.ArrayPrint(ArrayINT2); // Zurückgezogen:
}
//+------------------------------------------------------------------+
Ich kann die Daten nicht abrufen, da ich ein Skript ausführe und die Daten, so wie ich es verstehe, jetzt irgendwo im Terminal gespeichert sind
Die Daten werden vernichtet, sobald ihr Besitzer (der sie geschrieben hat) aufhört zu arbeiten. Wenn dies nicht geschieht, wird der Speicher des Terminals schnell überfüllt sein.
Starten Sie den Datenstamm als Berater/Indikator. Solange er lebt, sind seine Daten für andere verfügbar.
Die Daten werden zerstört, sobald ihr Besitzer (der sie geschrieben hat) aufhört zu arbeiten. Wenn dies nicht geschieht, wird der Speicher des Terminals schnell überfüllt.
Starten Sie den Datenstamm als Berater/Indikator. Solange er lebt, sind seine Daten für andere verfügbar.
Bei Indikatoren hat es auch nicht funktioniert. Ich denke, da stimmt etwas mit dem Pfad nicht.
Ich habe Statik hinzugefügt, aber es funktioniert immer noch nicht. Können Sie korrigieren, was dort falsch ist?
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
// Senden von Daten#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618const RESOURCEDATA<MqlTick> Resource("::" + __FILE__); // Ressource für die Datenübertragung (Ticks)voidOnInit()
{
_GlobalVariableSet("ResourceName", Resource.GetFullName()); // Schreiben des vollständigen Namens der Ressource (schreibgeschützt) in die globale Variable
}
voidOnDeinit( constint )
{
_GlobalVariableDel("ResourceName");
}
intOnCalculate( constint, constint, constint, constdouble &[] )
{
MqlTick Ticks[];
CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 5); // Erstellte Daten
Resource = Ticks; // Aufzeichnung der Datenreturn(0);
}
// Datenabruf#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618intOnCalculate( constint, constint, constint, constdouble &[] )
{
staticconst RESOURCEDATA<MqlTick> Resource(_GlobalVariableGet<string>("ResourceName")); // Erstellt eine Ressource auf der Grundlage des in der globalen Variable übergebenen vollständigen NamensMqlTick Ticks[];
Resource.Get(Ticks); // Lesen von Daten aus der Ressource.ArrayPrint(Ticks); // Drucken Sie die erhaltenen Daten ausreturn(0);
}
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
Danke, ich habe etwas, jetzt werde ich es auseinandernehmen, um zu sehen, wie es funktioniert. Können Sie bitte die Warnungen in GlobalVariables.mqh korrigieren? Mein Wissen endete bei Res=-1, aber dann zeigte es dort einen Fehler an. Und ich weiß auch nicht, wie ich die OnStart()-Warnung entfernen kann.
Ich danke Ihnen für Ihre Wertschätzung. Ich habe in diesem Forum gelernt, wie man programmiert. Ich veröffentliche meine Arbeit, weil sie diszipliniert. Ich benutze meine Beschreibungen als Anhaltspunkte, weil ich sehr schnell vergesse, was und wie ich geschrieben habe.
Ich entschuldige mich für meinen Programmierstil, aber er war für mich selbst gedacht. Und wurde als Nebeneffekt veröffentlicht.
Leider ist es unmöglich, die Popularität veröffentlichter Arbeiten zu beurteilen. Wenn jemand sie nutzt, dann ein sehr enger Kreis von Nutzern.
Die Zahl der Nutzer zu erhöhen - ein solches Ziel gibt es nicht.
Ich kann die Daten nicht abrufen, hier führe ich ein Skript aus, und so wie ich es verstehe, werden die Daten jetzt irgendwo im Terminal gespeichert:
Hier führe ich ein weiteres Skript aus, um die Daten zu erhalten, die beim Ausführen des ersten Skripts gespeichert wurden, aber die Daten werden nicht angezeigt:
Können Sie mir sagen, wo der Fehler liegt?
Ich kann die Daten nicht abrufen, da ich ein Skript ausführe und die Daten, so wie ich es verstehe, jetzt irgendwo im Terminal gespeichert sind
Die Daten werden vernichtet, sobald ihr Besitzer (der sie geschrieben hat) aufhört zu arbeiten. Wenn dies nicht geschieht, wird der Speicher des Terminals schnell überfüllt sein.
Starten Sie den Datenstamm als Berater/Indikator. Solange er lebt, sind seine Daten für andere verfügbar.
Die Daten werden zerstört, sobald ihr Besitzer (der sie geschrieben hat) aufhört zu arbeiten. Wenn dies nicht geschieht, wird der Speicher des Terminals schnell überfüllt.
Starten Sie den Datenstamm als Berater/Indikator. Solange er lebt, sind seine Daten für andere verfügbar.
Bei Indikatoren hat es auch nicht funktioniert. Ich denke, da stimmt etwas mit dem Pfad nicht.
Bei den Indikatoren hat es auch nicht funktioniert. Ich denke, dass etwas mit dem Pfad nicht stimmt.
Sie erstellen in jedem OnCalculate eine Ressource und beenden sie, wenn die Funktion beendet ist.
Sie sollten das Objekt statisch machen. Das sind die Grundlagen von OOP.
Sie erstellen eine Ressource in jedem OnCalculate und beenden sie, wenn die Funktion abgeschlossen ist.
Sie sollten das Objekt statisch machen. Das sind die Grundlagen von OOP.
Ich habe static hinzugefügt, aber es funktioniert immer noch nicht. Können Sie mir sagen, was hier falsch ist?
Ich habe Statik hinzugefügt, aber es funktioniert immer noch nicht. Können Sie korrigieren, was dort falsch ist?
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
Danke, ich habe etwas, jetzt werde ich es auseinandernehmen, um zu sehen, wie es funktioniert.
Können Sie bitte die Warnungen in GlobalVariables.mqh korrigieren? Mein Wissen endete bei Res=-1, aber dann zeigte es dort einen Fehler an. Und ich weiß auch nicht, wie ich die OnStart()-Warnung entfernen kann.
Können Sie bitte die Warnungen in GlobalVariables.mqh korrigieren?
Ich danke Ihnen!