この記事はとても有益で、自分のデータベースを作成するために何度も参考にするつもりだ。
まだ少し早いですが、一般的にはすでに第5版のパワーを感じることができます。
アレクサンダー、このような状況で私を助けてください...
例えば、ある配列をデータベースに保存する必要があります。スクリプトを書きました。
こんな感じです:
#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コンポーネントを接続する #include <Ado\Providers\OleDb.mqh> #include <Ado\Data.mqh> double PriceBuffer[]; //+------------------------------------------------------------------+ //| スクリプト番組開始機能| //+------------------------------------------------------------------+ 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; // SaveDataToDb に渡されるテーブルを作成する。 CAdoTable *table=new CAdoTable(); table.Columns().AddColumn("Price",ADOTYPE_DOUBLE); ArrayResize(PriceBuffer,n1); // バッファからのデータでデーブルを埋める for(int i=1; i<n1; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(PriceBuffer[i]); table.Records().Add(row); } }
しかし、コンパイル時に次のエラーが発生しました:"'Values' - cannot call protected memberfunction".
このエラーは次の行に関連しています:
row.Values().GetValue(0).SetValue(PriceBuffer[i]);
という行に関連しています。
このような行は正常に動作しました:
// バッファからのデータでデーブルを埋める 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); }
素晴らしい記事だ!
エラーがでてコンパイルできません:
'Values' - cannot call protected memberfunction.
CBsvEngine::SaveData(void) のこれらの行に関連しています。
是非ともこれを動作させたいと思います。よろしくお願いします!
エラーがでてコンパイルできません:
'Values' - cannot call protected memberfunction.
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]);また、DbDataAdapter.mqh ファイル内の CDbDataAdapter::Fill(CAdoTable *table) 内の 'Values()' への多数の呼び出しに関連した同じエラーも発生します
是非ともこれを動作させたいと思います。よろしくお願いします!
ストラテジーテスターで adoSuiteを使用すると、プログラムが終了してしまいます。
Automated-Trading:
残念ながら、ビルド586では32ビットDLL関数の呼び出しにエラーがあります。これは次のビルドで修正される予定です。
残念ながら、これは前回のアップデート後も解決されていません。解決策や推奨事項があれば教えてください。次のビルドまで待つように言われましたが、問題は解決されないままでした。
残念ながら、ビルド586では32ビットDLL関数の呼び出しにエラーがあります。これは次のビルドで修正される予定です。
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 市場分析のための実践的なデーターベースの活用 はパブリッシュされました:
データを扱うことは、現代のソフトウェアのメインの業務となっています。これは、スタンドアロン系、ネットワーク系のアプリ双方において言えることです。この問題を解決するために、特別なソフトウェアが開発されました。それは、データベース管理システム(DBMS)です。コンピューター内ストレージや、その処理においてデータを整理し、構築します。トレーディングにおいて、多くの分析はデータベースを使用しません。しかし、ソリューションがより便利になる必要のある業務があります。この記事では、クライアントサーバー、ファイルサーバー構造の両方において、データベースからデータをロードし、保存できるインジケーターの例を紹介します。
作者: Alexander