Nach den ersten Tests nehme ich an, dass wir für double und datetime getrennte Ressourcen und Namen von globalen Variablen erstellen sollten. Ist dies korrekt?
Nach den ersten Tests nehme ich an, dass wir für double und datetime getrennte Ressourcen und Namen von globalen Variablen erstellen sollten. Ist dies korrekt?
Leider ist es sehr schwierig, Ihr Niveau an Programmiersprachenkenntnissen zu erreichen. Vielleicht kann es Ihnen jemand anders erklären.
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
Guten Tag, kann man die .mqh nicht in den Indikator übertragen? Oder gibt es einen Trick, um den Indikator nicht jedes Mal zurückzusetzen, wenn man ihn kompiliert? Ich habe eine solche Variante gemacht, aber sie wird beim Kompilieren des Indikators zurückgesetzt:
#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>m_Resource("::"+__FILE__); // Ressource für die Datenübertragung (Ticks)class CMyTicks
{
protected:
public:
//+------------------------------------------------------------------+//| Konstrukteur.|//+------------------------------------------------------------------+ void CMyTicks()
{
_GlobalVariableSet("ResourceName",m_Resource.GetFullName()); // Schreiben des vollständigen Namens der Ressource (schreibgeschützt) in die globale Variable
}
//+------------------------------------------------------------------+//| Zerstörer.|//+------------------------------------------------------------------+ void ~CMyTicks()
{
//_GlobalVariableStreichen("Ressourcenname");
}
//+------------------------------------------------------------------+ void CollectTicks()
{
MqlTick m_Ticks[];
CopyTicks(_Symbol,m_Ticks,COPY_TICKS_ALL,0,5); // Erstellte Daten
m_Resource=m_Ticks; // Aufzeichnung der Daten
}
};
//+------------------------------------------------------------------+
// Datenabruf#property indicator_chart_window#property indicator_plots0#include <Test_Keep_Info_13.mqh>
CMyTicks Test;
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618staticconst RESOURCEDATA<MqlTick>Resource(_GlobalVariableGet<string>("ResourceName")); // Erstellt eine Ressource auf der Grundlage des in der globalen Variable übergebenen vollständigen Namens MqlTick Ticks[];
intOnCalculate(constint rates_total,constint prev_calculated,constint,constdouble &[])
{
if(prev_calculated==0)
{
Resource.Get(Ticks); // Lesen von Daten aus der Ressource.ArrayPrint(Ticks); // Drucken der erhaltenen Datenif(ArraySize(Ticks)<1)
{
Test.CollectTicks();
Print(" SAVE TICKS ");
}
Resource.Get(Ticks); // Lesen von Daten aus der Ressource.ArrayPrint(Ticks); // Drucken der erhaltenen Daten
}
return(rates_total);
}
//+------------------------------------------------------------------+
Und auf dem Konto von "jemand anderes wird erklären", so dass ich bereits wissen, die Antwort, wird "fragen Sie den Autor" sein. Ich danke Ihnen!
Guten Tag, können Sie nicht von .mqh auf den Indikator übertragen? Oder gibt es einen Trick, um den Indikator nicht jedes Mal zurückzusetzen, wenn er kompiliert wird? Ich habe eine solche Variante erstellt, aber sie wird beim Kompilieren des Indikators zurückgesetzt:
Und auf dem Konto von "jemand anderes wird erklären", so dass ich bereits wissen, die Antwort, wird "fragen Sie den Autor" sein. Ich danke Ihnen!
Das Objekt ist statisch, aber die Daten werden zerstört. Was ist an meinem Beispiel falsch?
Leider haben Sie große Lücken in Ihrem Verständnis von OOP, so dass Sie nicht das bekommen, was Sie beabsichtigen. Fragen Sie im Forum nach Hilfe bei allgemeinen OOP-Fragen.
Leider haben Sie große Lücken in Ihrem Verständnis von OOP, so dass es nicht wie beabsichtigt funktioniert. Bitten Sie das Forum um Hilfe bei allgemeinen OOP-Fragen.
// Beispiel für den Austausch beliebiger Daten (einschließlich String-Arrays).#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/de/code/22166#define PRINT(A) Print(#A + " = " + (string)(A));
voidOnStart()
{
// Beliebige Daten für das Beispielstring Str[] = {"123", "Hello World!"};
double Num = 5;
MqlTick Tick = {0};
Tick.bid = 1.23456;
const RESOURCEDATA<uint> Resource; // Ressource für die gemeinsame Nutzung von Daten
CONTAINER<uint> Container; // Erstellen eines Containers - alles wird in einem Array eines einfachen Typs gespeichert (in diesem Beispiel wird uint gewählt)// Füllen Sie den Container mit verschiedenen Daten
Container[0] = Str;
Container[1] = Num;
Container[2] = Tick;
// Drucken der im Container gespeicherten Datentypenfor (int i = 0; i < Container.GetAmount(); i++)
PRINT(Container[i].GetType())
Resource = Container.Data; // Senden der Daten zum Austausch
CONTAINER<uint> Container2; // Hier werden wir die Daten abrufen
Resource.Get(Container2.Data); // Ich habe die Daten// Abrufen der Daten in ihrer ursprünglichen Formstring Str2[];
Container[0].Get(Str2); // Ich habe das ArrayArrayPrint(Str2);
PRINT(Container[1].Get<double>()) // Wir haben eine Nummer
PRINT(Container[2].Get<MqlTick>().bid) // Wir haben die Struktur
}
Nach den ersten Tests nehme ich an, dass wir für double und datetime getrennte Ressourcen und Namen von globalen Variablen erstellen sollten. Ist dies korrekt?
Nach den ersten Tests nehme ich an, dass wir für double und datetime getrennte Ressourcen und Namen von globalen Variablen erstellen sollten. Ist dies korrekt?
Leider ist es sehr schwierig, Ihr Niveau an Programmiersprachenkenntnissen zu erreichen. Vielleicht kann es Ihnen jemand anders erklären.
Leider ist es sehr schwierig, Ihr Niveau an Programmiersprachenkenntnissen zu erreichen. Vielleicht kann es Ihnen jemand anders erklären.
Nun, die Hauptsache ist, dass bei mir bisher alles funktioniert.
Aktualisieren Sie ResourceData.mqh und versuchen Sie diese Indikatoren
Guten Tag, kann man die .mqh nicht in den Indikator übertragen? Oder gibt es einen Trick, um den Indikator nicht jedes Mal zurückzusetzen, wenn man ihn kompiliert? Ich habe eine solche Variante gemacht, aber sie wird beim Kompilieren des Indikators zurückgesetzt:
Und auf dem Konto von "jemand anderes wird erklären", so dass ich bereits wissen, die Antwort, wird "fragen Sie den Autor" sein. Ich danke Ihnen!
Guten Tag, können Sie nicht von .mqh auf den Indikator übertragen? Oder gibt es einen Trick, um den Indikator nicht jedes Mal zurückzusetzen, wenn er kompiliert wird? Ich habe eine solche Variante erstellt, aber sie wird beim Kompilieren des Indikators zurückgesetzt:
Und auf dem Konto von "jemand anderes wird erklären", so dass ich bereits wissen, die Antwort, wird "fragen Sie den Autor" sein. Ich danke Ihnen!
Leider kann ich nicht verstehen, die Frage.
Leider kann ich die Frage nicht verstehen.
Das Objekt ist statisch, aber die Daten werden zerstört. Was ist an meinem Beispiel falsch?
Das Objekt ist statisch, aber die Daten werden zerstört. Was ist an meinem Beispiel falsch?
Leider haben Sie große Lücken in Ihrem Verständnis von OOP, so dass Sie nicht das bekommen, was Sie beabsichtigen. Fragen Sie im Forum nach Hilfe bei allgemeinen OOP-Fragen.
Leider haben Sie große Lücken in Ihrem Verständnis von OOP, so dass es nicht wie beabsichtigt funktioniert. Bitten Sie das Forum um Hilfe bei allgemeinen OOP-Fragen.
Okay, danke.
Die Bibliotheksquellen enthalten Convert.mqh, das ein Array eines Typs schnell in ein Array eines anderen Typs umwandelt.
Sie können alles über Ressourcen austauschen.