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
#include <Expert\Signal\SignalMA.mqh>
CSignalMA SignalMA;
int TickCount;
string Str;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
TickCount=0;
SignalMA.Symbol(Symbol());
SignalMA.Period(PERIOD_H1);
SignalMA.Weight(0.5);
SignalMA.PeriodMA(20);
SignalMA.Shift(0);
SignalMA.Method(MODE_SMA);
SignalMA.Applied(PRICE_CLOSE);
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
TickCount++;
Str = "LongCondition = " + IntegerToString(SignalMA.LongCondition())+"; "+IntegerToString(TickCount)+ "\n";
Str = Str + "ShortCondition = " + IntegerToString(SignalMA.ShortCondition())+"; "+IntegerToString(TickCount);
Comment(Str);
}
//+------------------------------------------------------------------+
2011.11.29 15:36:27 1234 (EURUSD,M1) CExpertBase::Dönem: zaman çerçevesinin değiştirilmesi yasaktır
2011.11.29 15:36:27 1234 (EURUSD,M1) CExpertBase::Sembol: sembolün değiştirilmesi yasaktır
Ticaret sinyali modülleri , sihirbaz tarafından oluşturulan Uzman Danışmanlardan ayrı olarak kullanılabilir mi? test için yazdım
#include <Expert\Signal\SignalMA.mqh>
CSignalMA SignalMA;
int TickCount;
string Str;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
TickCount=0;
SignalMA.Symbol(Symbol());
SignalMA.Period(PERIOD_H1);
SignalMA.Weight(0.5);
SignalMA.PeriodMA(20);
SignalMA.Shift(0);
SignalMA.Method(MODE_SMA);
SignalMA.Applied(PRICE_CLOSE);
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
TickCount++;
Str = "LongCondition = " + IntegerToString(SignalMA.LongCondition())+"; "+IntegerToString(TickCount)+ "\n";
Str = Str + "ShortCondition = " + IntegerToString(SignalMA.ShortCondition())+"; "+IntegerToString(TickCount);
Comment(Str);
}
//+------------------------------------------------------------------+
2011.11.29 15:36:27 1234 (EURUSD,M1) CExpertBase::Dönem: zaman çerçevesinin değiştirilmesi yasaktır
2011.11.29 15:36:27 1234 (EURUSD,M1) CExpertBase::Sembol: sembolün değiştirilmesi yasaktır
Sonraki kod:
RectLabel* GetLabel() { static bool initialized = false ; static RectLabel label( "rectlabel sample" , 0 , 0 ); if (!initialized) { Pos leftTop = { 100 , 100 }; Rect rect(leftTop, 100 , 50 ); label.Move(rect); label.SetBGColor( clrYellowGreen ); label.SetTooltip( " -- Yuuuu! -- " ); initialized = true ; } return GetPointer (label); }işlev her çağrıldığında etiket için yapıcıyı çağırır.
Aşağıdaki koda göre: İlk durumda gösterge ayarlanır, ancak ikinci durumda değil (eğik çizgi ile geçiş yapıyorum) Hata vermiyor.
Bu kütüphaneye göre ikinci seçeneğe göre 0 gösteriyor. Diğer tüm fonksiyonlar çalışıyor gibi görünüyor.
Aşağıdaki koda göre: İlk durumda gösterge ayarlanır, ancak ikinci durumda değil (eğik çizgi ile geçiş yapıyorum) Hata vermiyor.
Anladığım kadarıyla, şu anda üç parametrenin tümü zorunludur.
Bu nedenle, göstergenin görüntüleneceği pencerenin sayısı belirtilmelidir (seçenekler: 0 - ana pencere, ChartIndicatorsTotal() - yeni bir pencere, 0'dan ChartIndicatorsTotal() -1 - belirli bir mevcut pencere).
Hata üretmemesi iyi değildir.
Bu kütüphaneye göre ikinci seçeneğe göre 0 gösteriyor. Diğer tüm fonksiyonlar çalışıyor gibi görünüyor.
Büyük olasılıkla, fiyatı almadan önce yenilemeleri (en azından RefreshRates ) kullanmalısınız.
Doğru olanı şöyle görünmeli
Teşekkürler. Yenilemeyi belirledikten sonra Bid ile gerçekten çalıştı.
Ancak göstergenin çıktısı ile kütüphaneyi kullanarak 2 parametreye ihtiyaç duyar: Bir alt pencere ve bir tutamaç Aksi takdirde, yanlış sayıda parametreye yemin eder.
Teşekkürler. Yenilemeyi belirledikten sonra Bid ile gerçekten çalıştı.
Ancak göstergenin çıktısı ile kütüphaneyi kullanarak 2 parametreye ihtiyaç duyar, bir alt pencere ve bir tutamaç.Aksi takdirde yanlış sayıda parametreye yemin eder.hayır.
Kütüphaneyi kullanmak 2 parametre gerektirir. Grafik ve alt pencere .
Kolsuz mu? Ve sistem hangi hindiyi koyacağını nereden biliyor? ..Şimdiye kadar yazılanlara güvendim :) Alt pencere ve tutamaç.
Kolsuz mu? Ve sistem hangi hindiyi koyacağını nereden biliyor? ..Şimdiye kadar yazılanlara güvendim :) Alt pencere ve tutamaç.
Kütüphane hakkında (sınıf yardımından)
GöstergeEkle
Belirtilen grafik penceresine belirtilen tutamaçla bir gösterge ekler.
ChartIndicatorAdd'in doğrudan çalışmasıyla ilgili olarak.
GrafikGöstergeEkle
Belirtilen grafik penceresine belirtilen tutamaçla bir gösterge ekler.
CChart sınıfına gelince.
Gereksiz sorulardan kaçınmak için üç temel kurala uymaya çalışıyoruz:
1. Kaynak koduna bakarız, bir şey net değilse belgelere bakarız (unutmayın ki kaynak kod her zaman doğruyu söyleyecektir ve belgeler yalan olabilir);
2. OOP'nin uygulanması bizim için önemliyse, belirli bir sınıfın tanımıyla başlıyoruz ve "doğrudan yürütücüler"e gidiyoruz. "Gerçek iş" önemliyse, OOP en son öğrenilmelidir (yukarıdan aşağıya/yukarıdan aşağıya kod öğrenme);
3. Belgeleri ve kaynakları okuduktan sonra net olmayan bir şey varsa, foruma gidin.
Doğrudan sınıfta IndicatorAdd yönteminin uygulanması üzerine
Kaynağa bakarsanız, alt pencerenin ve tanıtıcının yönteme geçirildiği (yardımda belirtildiği gibi) ve üçüncü parametrenin sınıfın kendisinde depolanan verilerden alındığı anlaşılır (grafikten bahsediyorum) İD).