記事"市場分析のための実践的なデーターベースの活用"についてのディスカッション

 

新しい記事 市場分析のための実践的なデーターベースの活用 はパブリッシュされました:

データを扱うことは、現代のソフトウェアのメインの業務となっています。これは、スタンドアロン系、ネットワーク系のアプリ双方において言えることです。この問題を解決するために、特別なソフトウェアが開発されました。それは、データベース管理システム(DBMS)です。コンピューター内ストレージや、その処理においてデータを整理し、構築します。トレーディングにおいて、多くの分析はデータベースを使用しません。しかし、ソリューションがより便利になる必要のある業務があります。この記事では、クライアントサーバー、ファイルサーバー構造の両方において、データベースからデータをロードし、保存できるインジケーターの例を紹介します。

SQLite接続されたBuySellVolume

作者: Alexander

 

この記事はとても有益で、自分のデータベースを作成するために何度も参考にするつもりだ。

まだ少し早いですが、一般的にはすでに第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);
        }
 
MT5からADOなしでMySQL(libmySQL.dll経由)とSQLite(sqlite3.dll経由)を操作するクラスはありますか?
 
素晴らしい記事だ!

エラーがでてコンパイルできません:
'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を使用すると、プログラムが終了してしまいます。
 
zephyrrr:

ストラテジーテスターでadoSuiteを使用すると、常にプログラムが終了してしまいます。
残念ながら、ビルド586では32ビットDLLの関数 呼び出しにエラーがあります。次のビルドで修正される予定です。
 
Automated-Trading:
残念ながら、ビルド586では32ビットDLL関数の呼び出しにエラーがあります。これは次のビルドで修正される予定です。
残念ながら、これは前回のアップデート後も解決されていません。解決策や推奨事項があれば教えてください。次のビルドまで待つように言われましたが、問題は解決されないままでした。
 
Alexander
  • 2010.04.20
  • www.mql5.com
交易者的个人资料