Makale çok faydalı ve kendi veritabanlarımı oluşturmak için birçok kez başvuracağım.
Bunun için biraz erken, ancak genel olarak beşinci sürümün gücünü şimdiden hissedebilirsiniz.
Alexander, lütfen bu durumda bana yardım et...
Örneğin, bazı dizileri bir veritabanına kaydetmem gerekiyor. Bir betik yazdım.
Şuna benziyor:
#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 bileşenlerini bağlayın #include <Ado\Providers\OleDb.mqh> #include <Ado\Data.mqh> double PriceBuffer[]; //+------------------------------------------------------------------+ //| Betik program başlatma işlevi| //+------------------------------------------------------------------+ 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'ye aktarılacak tabloyu oluşturun CAdoTable *table=new CAdoTable(); table.Columns().AddColumn("Price",ADOTYPE_DOUBLE); ArrayResize(PriceBuffer,n1); // dable'ı tamponlardan gelen verilerle doldurun for(int i=1; i<n1; i++) { CAdoRecord *row=table.CreateRecord(); row.Values().GetValue(0).SetValue(PriceBuffer[i]); table.Records().Add(row); } }
Ancak derleme sırasında şu hata oluşuyor: "'Values' - cannot call protected member function".
Hata hatla ilgilidir:
row.Values().GetValue(0).SetValue(PriceBuffer[i]);
CBsvEngine::SaveData(void) fonksiyonunda olmasına rağmen
bu tür hatlar normal şekilde çalıştı:
// dable'ı tamponlardan gelen verilerle doldurun 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); }
Harika bir makale! Ne yazık ki Denkir'in bu makalenin Rusça versiyonunda yorumladığı gibi aynı sorunu yaşıyorum.
Hata vererek derlenmiyor:
'Values' - cannot call protected member function.
CBsvEngine::SaveData(void) içindeki şu satırlarla ilişkili
Bunu çalıştırmayı gerçekten çok isterim. Çok minnettarım!
Hata vererek derlenmiyor:
'Values' - cannot call protected member function.
CBsvEngine::SaveData(void) içindeki şu satırlarla ilişkili
row.Values().GetValue(0).SetValue(TickBuffer[i].time); row.Values().GetValue(1).SetValue(TickBuffer[i].bid); row.Values().GetValue(2).SetValue(VolumeBuffer[i]);Ve ayrıca DbDataAdapter.mqh dosyasındaki CDbDataAdapter::Fill(CAdoTable *table) içindeki 'Values()' öğesine yapılan çok sayıda çağrı ile ilişkili aynı hata
Bunu çalıştırmayı gerçekten çok isterim. Çok minnettarım!
zephyrrr:
strateji test cihazında çalıştırılabilir mi? adoSuite'i strateji test cihazında kullandığımda, programı her zaman sonlandırıyor.
Maalesef yapı 586'da 32 bit DLL işlevlerinin çağrılmasında bir hata var. Bir sonraki derlemede düzeltilecektir.
strateji test cihazında çalıştırılabilir mi? adoSuite'i strateji test cihazında kullandığımda, programı her zaman sonlandırıyor.
Automated-Trading:
Maalesef 586 derlemesinde 32-bit DLL fonksiyonlarının çağrılmasında bir hata var. Bir sonraki derlemede düzeltilecektir.
Ne yazık ki son güncellemeden sonra bu sorun çözülmedi. Herhangi bir çözüm veya öneri var mı? Bu ne kadar sürebilir? Bir sonraki derlemeye kadar beklemem söylendi ve sorun çözülmeden geldi.
Maalesef 586 derlemesinde 32-bit DLL fonksiyonlarının çağrılmasında bir hata var. Bir sonraki derlemede düzeltilecektir.

Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Yeni makale Piyasa Analizi için Veritabanlarının Pratik Uygulaması yayınlandı:
Verilerle çalışmak, hem bağımsız hem de ağ uygulamaları için modern yazılımların ana görevi haline geldi. Bu sorunu çözmek için özel bir yazılım oluşturuldu. Bunlar, bilgisayar depolama ve işlemeleri için verileri yapılandırabilen, sistematikleştirebilen ve düzenleyebilen Veritabanı Yönetim Sistemleridir (DBMS). Alım satım işlemine gelince, analistlerin çoğu çalışmalarında veritabanlarını kullanmaz. Ancak böyle bir çözümün işe yaraması gereken görevler vardır. Bu makale, hem istemci-sunucu hem de dosya-sunucu mimarileriyle veritabanlarından veri kaydedebilen ve yükleyebilen göstergelere ilişkin bir örnek sağlar.
Bence çok basit. Göstergede sınıfın yalnızca iki işlevi çağrılır: ProcessTick() ve SaveData(). ProcessTick() işlevi hesaplamalar için kullanılır ve verileri kaydetmese de, arabelleği ticklerle sıfırlamak için SaveData() işlevi gereklidir.
Derlemeye çalışalım, "Ve işte!" - Gösterge değerleri göstermeye başladı:
Şekil 1. GBPUSD M1'deki veritabanına bağlantısı olmayan BuySellVolume göstergesi
Mükemmel! Tickler işaretliyor, gösterge hesaplıyor. Bu tip bir çözümün avantajı çalışması için yalnızca göstergenin kendisine (ex5) ihtiyacımız olması; başka bir şeye ihtiyacımız yok. Ancak, zaman dilimini veya enstrümanı değiştirirken veya terminali kapattığınızda, veriler geri döndürülemez bir şekilde kaybolur. Bunu önlemek için, göstergemize veri kaydetme ve yükleme özelliğini nasıl ekleyebileceğimizi görelim.
Yazar: Alexander