Diskussion zum Artikel "SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5" - Seite 5

 
Alexey Viktorov:

Ganz genau. Artem, Sie haben es mit MQL gemacht, aber hier geht es um SQLite. Auch Ihre Bibliothek wäre einfacher und "schneller", wenn sie SQLite-Datenbanken verwenden würde. Ich sprach nicht von der Abwesenheit oder Unmöglichkeit, es zu tun. Ich habe von der Einfachheit der Lösung gesprochen.

Nun, wie viel einfacher als das, was ich getan habe - fordern Sie einfach die erforderlichen Daten in Ihrem Programm an, und zwar für beide Plattformen. Aber darum geht es bei diesem Thema wirklich nicht. Also lassen wir das Geplänkel beiseite.

 
Alexey Viktorov:

Aus dem Artikel entnehme ich, wenn auch mit Mühe, dieses Beispiel

Diese Abfrage wählt Datensätze mit einem Wert größer als 15000 aus der Datenbank aus. Ein anderes Beispiel war, die Summe auszuwählen... Aber ich muss zum Beispiel den kleinsten/größten Wert aus der Datenbank auswählen. Oder die Summe der Werte größer/kleiner als Null. Ich denke, es gibt eine solche Möglichkeit, aber es gibt nicht genug Informationen in Form von MQL5 Dokumentation. Aus Beispielen zu schöpfen ist für mich schwierig. Aber wenn ich es nicht habe... wenn nötig, werde ich versuchen, es herauszufinden.

Sie müssen die Sprache der SQL-Abfragen lernen. Dieser Artikel zeigt, wie man sie mit Hilfe dieser MQL5-Funktionen verwenden kann und gibt einige Beispiele für SQL-Abfragen.

Die Aufgabe "eine Hilfe zu SQL zu erstellen" wurde nicht gestellt. Es gibt viele Tutorials und Kurse zu diesem Thema.

 
Rashid Umarov:

Sie müssen die SQL-Abfragesprache lernen. Dieser Artikel zeigt, wie man sie mit Hilfe dieser MQL5-Funktionen verwendet und gibt einige Beispiele für SQL-Abfragen.

Die Aufgabe, eine "SQL-Hilfe" zu erstellen, wurde nicht gestellt. Es gibt viele Tutorials und Kurse zu diesem Thema.

Ja Rashid, ich habe gesucht und gefunden, was auf Russisch gefunden werden kann. Aber stimmen Sie zu, wenn Sie anbieten, etwas zu benutzen, dann sollte die Beschreibung ohne zusätzliche Suche verfügbar sein. Außerdem habe ich bereits gesagt, dass die Form der Dokumentation für mich akzeptabler ist als die MQL-Dokumentation. Und alles, was ich im Netz über SQLite gefunden habe, ist für mich irgendwie schwer zu verstehen. Aber das ist für mich nicht relevant.

Weiter habe ich ein wenig realisierte Meinung geäußert.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Diskussion über den Artikel "SQLite: Native Arbeit mit SQL-Datenbanken in MQL5"

Alexey Viktorov, 2020.05.16 10:26 AM

Nach einer näheren, aber immer noch oberflächlichen Bekanntschaft mit den Möglichkeiten von SQLite bin ich zu dem Schluss gekommen, dass es in dieser Form, sorry, nur ein Geklapper ist.

Um die unbedingten Vorteile von SQLite nutzen zu können, wäre es sinnvoll, zumindest eine History-Datenbank zu haben. Und besser noch, eine Datenbank mit aktuellen Positionen und schwebenden Aufträgen. Ich hoffe, dass auf MT-Ebene die Erstellung solcher Datenbanken nicht viel Zeit in Anspruch nehmen wird. Vor allem, wenn die Tabellen, so wie sie jetzt sind, aus der SQLite-Datenbank gebildet werden können. Dieser Ansatz wird die Arbeit mit der Historie von Aufträgen und Geschäften definitiv vereinfachen. Es wird sehr einfach sein, die Beträge von Swaps, Provisionen und Gewinnen für alle Geschäfte mit einer Positions-ID oder für einen bestimmten Zeitraum zu ermitteln.

Kürzlich habe ich in einem der Themen gelesen, dass die Auswahl der Historie auf der Eröffnungszeit basiert, aber korrekt auf der Schlusszeit.... Mit einer SQLite-Datenbank stellen sich solche Fragen nicht mehr. Nach welchem Kriterium wollen Sie es verwenden und auswählen. Aber nur wenige Programmierer werden sich diese Grundlagen selbst schaffen. IMHO.

Genau so wenige Programmierer werden Datenbankfüllungen schreiben, um die Vorteile neuer Spielzeuge zu nutzen. Und Artyom war sofort entrüstet, "wie ist es nicht verfügbar", nehmen Sie die Bibliothek und verwenden Sie es. Aber in seiner Bibliothek wird alles mit MQL-Mitteln gemacht, und SQLite bleibt eine Ratte.

Ich frage mich, wie schwierig es ist, den bestehenden Algorithmus zum Füllen der Historie und der Liste der offenen Positionen und ausstehenden Aufträge durch das Füllen der SQLite-Datenbank zu ersetzen und dann in die aktuelle Form zu konvertieren. Und wie sich das auf die Geschwindigkeit von MT auswirken wird.

Stellen Sie sich vor, wie einfach es sein wird, alle Aufträge und Geschäfte nach Positions-ID zu sammeln, egal ob offen oder bereits geschlossen.....

 
Alexey Viktorov:

Ja, Rashid, ich habe gesucht und gefunden, was ich auf Russisch finden konnte. Aber stimmen Sie zu, wenn Sie anbieten, etwas zu verwenden, sollte die Beschreibung ohne zusätzliche Suche verfügbar sein. Außerdem habe ich bereits gesagt, dass die Form der Dokumentation ist mehr akzeptabel für mich als MQL-Dokumentation. Und alles, was ich im Netz über SQLite gefunden habe, ist für mich irgendwie schwer zu verstehen. Aber das ist für mich nicht relevant.

Wir sind uns uneinig.

Weithin bekannte Systeme haben eine Menge an verfügbarer Dokumentation. Seien Sie realistisch.

 
Renat Fatkhullin:

Wir werden anderer Meinung sein.

Für weithin bekannte Systeme gibt es eine Fülle von Unterlagen. Seien Sie realistisch.

Ich bestehe nicht darauf. Dies ist nur meine subjektive, möglicherweise fehlerhafte Meinung.

 
Alexey Viktorov:

Nur ganz wenige Programmierer werden Datenbankfüllungen schreiben, um die Vorteile der neuen Spielzeuge zu nutzen.

Ein Skript zur Erstellung/Aktualisierung einer Datenbanktabelle aus der Kontohistorie/Instrumentenhistorie ist in wenigen Minuten geschrieben.

Das Terminal speichert höchstwahrscheinlich alles in denselben DBs, aber es ist unwahrscheinlich, dass direkt auf sie zugegriffen wird. Und es macht keinen Sinn, sie in eine Castum-Datenbank "out of the box" zu duplizieren.

 
Andrey Khatimlianskii:

Ein Skript zum Erstellen/Aktualisieren einer DB-Tabelle aus der Kontohistorie/Instrumentenhistorie ist in minutes..... geschrieben.

Das Terminal speichert all dies höchstwahrscheinlich in denselben Datenbanken, aber es ist unwahrscheinlich, dass sie direkten Zugriff auf diese Datenbanken gewähren. Und es macht keinen Sinn, dies in eine Castum-Datenbank "out of the box" zu duplizieren.

Ja, ich habe nicht an die Sicherheit gedacht. Wahrscheinlich, weil es keine betrügerischen Gedanken gibt:))))))) Ich stimme zu. Ich nehme meine Worte zurück.

 
Alexey Viktorov:

@Rashid Umarov Ich lese den Artikel zum x-ten Mal und jedes Mal stoße ich auf einen Tippfehler.

Bitte korrigieren Sie ihn und löschen Sie diese Nachricht.

Ich habe ihn an 2 Stellen korrigiert - seltsamer Tippfehler. Vielen Dank!

 
Gibt es eine Möglichkeit des gleichzeitigen Zugriffs auf verschiedene Tabellen in einer SQLite-Datenbank? Oder wie kann man zumindest feststellen, ob die Datenbank im Moment gesperrt ist und das Programm warten muss, bis es an der Reihe ist?
 

Guten Tag!

Wenn ich das Skript DatabaseRead.mq5 ausführe, erstelle ich überhaupt keine Datenbankdatei (company.sqlite).

Es werden keine Fehler erzeugt. Die Datei ist da, aber ich sehe sie nicht!

Können Sie mir helfen, das zu verstehen?