Der Artikel ist sehr nützlich, und ich werde ihn bei der Erstellung meiner eigenen Datenbanken noch oft zu Rate ziehen.
Es ist noch ein bisschen früh dafür, aber im Allgemeinen kann man schon die Leistungsfähigkeit der fünften Version spüren.
Alexander, bitte helfen Sie mir in dieser Situation...
Ich muss z.B. ein Array in einer Datenbank speichern. Ich habe ein Skript geschrieben.
Es sieht wie folgt aus:
#property copyright "Copyright 2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #include <Object.mqh> #include <Arrays\List.mqh> // OleDb-Komponenten verbinden #include <Ado\Providers\OleDb.mqh> #include <Ado\Data.mqh> double PriceBuffer[]; //+------------------------------------------------------------------+ //| Skript-Programmstartfunktion| //+------------------------------------------------------------------+ void OnStart() { long n1=100; MqlRates rates[]; ArraySetAsSeries(rates,true); double nClose[]; ArrayResize(nClose,n1); ArrayResize(t,n1); CSymbolInfo m_smbinf; m_smbinf.Name(Symbol()); int dg=m_smbinf.Digits(); int copied=CopyRates(Symbol(),0,0,n1,rates); for(int i=0;i<n1;i++) nClose[i]=rates[i].close; // bilden die Tabelle, die an SaveDataToDb übergeben werden soll CAdoTable *table=new CAdoTable(); table.Columns().AddColumn("Price",ADOTYPE_DOUBLE); ArrayResize(PriceBuffer,n1); // Füllen der Tabelle mit Daten aus Puffern for(int i=1; i<n1; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(PriceBuffer[i]); table.Records().Add(row); } }
Aber beim Kompilieren tritt der folgende Fehler auf: "'Values' - cannot call protected member function".
Der Fehler bezieht sich auf die Zeile:
row.Values().GetValue(0).SetValue(PriceBuffer[i]);
Obwohl in der Funktion CBsvEngine::SaveData(void)
solche Zeilen normal funktionierten:
// Füllen der Tabelle mit Daten aus Puffern for(int i=1; i<TicksInBuffer; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(TickBuffer[i].time); row.Values().GetValue(1).SetValue(TickBuffer[i].bid); row.Values().GetValue(2).SetValue(VolumeBuffer[i]); table.Records().Add(row); }
Toller Artikel! Leider habe ich das gleiche Problem wie Denkir in der russischen Version dieses Artikels.
Es kompiliert nicht und gibt Fehler:
'Values' - cannot call protected member function.
Assoziiert mit diesen Zeilen in CBsvEngine::SaveData(void)
. Bin Ihnen sehr dankbar!
Es kompiliert nicht und gibt Fehler:
'Values' - cannot call protected member function.
Assoziiert mit diesen Zeilen in CBsvEngine::SaveData(void)
row.Values().GetValue(0).SetValue(TickBuffer[i].time); row.Values().GetValue(1).SetValue(TickBuffer[i].bid); row.Values().GetValue(2).SetValue(VolumeBuffer[i]);Und auch der gleiche Fehler in Verbindung mit zahlreichen Aufrufen von 'Values()' in CDbDataAdapter::Fill(CAdoTable *table) in der Datei DbDataAdapter.mqh
. Bin Ihnen sehr dankbar!
Kann es im Strategietester ausgeführt werden? Wenn ich adoSuite im Strategietester verwende, wird das Programm immer beendet.
zephyrrr:
Kann es im Strategietester ausgeführt werden? Wenn ich adoSuite im Strategietester verwende, bricht das Programm immer ab.
Leider hat der Build 586 einen Fehler beim Aufruf von 32-bit DLLs Funktionen. Er wird im nächsten Build behoben.
Kann es im Strategietester ausgeführt werden? Wenn ich adoSuite im Strategietester verwende, bricht das Programm immer ab.
Automated-Trading:
Leider hat der Build 586 einen Fehler beim Aufruf von 32-bit DLLs Funktionen. Dieser wird in der nächsten Build behoben sein.
Leider ist dieser Fehler nach dem letzten Update nicht behoben worden. Gibt es Lösungen oder Empfehlungen? Wie lange könnte das dauern? Mir wurde gesagt, ich solle bis zum nächsten Build warten und dieser kam, ohne das Problem zu lösen.
Leider hat der Build 586 einen Fehler beim Aufruf von 32-bit DLLs Funktionen. Dieser wird in der nächsten Build behoben sein.

Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Neuer Artikel Praktische Anwendung von Datenbanken für die Marktanalyse :
Die Arbeit mit Daten ist zur Hauptaufgabe moderner Software geworden, sowohl autonomer als auch vernetzter Programme. Dazu wurde eine besondere Form von Software entwickelt. Diese Programme zur Verwaltung von Datenbanken (DBMS) ermöglichen die Strukturierung, Systematisierung und Organisation von Daten für ihre Speicherung und Verarbeitung auf Computern. Was den Börsenhandel betrifft, nutzen nur die wenigsten Analysten Datenbanken für ihre Arbeit. Es gibt jedoch Aufgaben, für die eine solche Lösung geeignet sein müsste. In diesem Beitrag wird ein Beispiel für Indikatoren vorgestellt, die sowohl unter einer Client-Server- als auch einer Datei-Server-Architektur Daten in Datenbanken speichern sowie aus diesen laden können.
Autor: Alexander