Hatalar, hatalar, sorular - sayfa 1241

 
barabashkakvn :

MetaQuotes-Demo sunucusuna bağlanırken güncelleme araması tetiklenir. Bu, bu gibi durumlarda mümkündür:

  1. Bir ticaret hesabını bazılarından MetaQuotes-Demo'da açılan bir ticaret hesabına geçirmek;
  2. Terminali yeniden başlatırken.
Teşekkür ederim.
 
joo :

Numara. hata artık görünmüyor.

Schrödinger, boku olan bir kedi yavrusu bulmak için odanın içinde dolaştı ve ne canlı ne de ölü bir kutunun içinde oturuyordu. )))

 
tol64 :

Schrödinger, boku olan bir kedi yavrusu bulmak için odanın içinde dolaştı ve ne canlı ne de ölü bir kutunun içinde oturuyordu. )))

Gerçekten çok garip. Bir dahaki sefere çalışmayı ne durduracak?
 
joo :
Gerçekten çok garip. Bir dahaki sefere çalışmayı ne durduracak?
Bilinmeyen. Kontrol etmek zorunda kalacak. )
 
joo :

Düzenlenen baskılar - hata kayboldu ...

Kuantum mekaniğinde gözlemci etkisi bir şeydir..

Durumunuzu ancak NaN ifadesini ifadeye kaydırdığımızda yeniden ürettik.
 
Renat :
Durumunuzu ancak NaN ifadesini ifadeye kaydırdığımızda yeniden ürettik.

yani fabs düzgün çalışıyor mu çalışmıyor mu?

 
joo :

yani fabs düzgün çalışıyor mu çalışmıyor mu?

Doğru şekilde.
 

Tünaydın! Bence basit bir planın uygulanmasında yardım istiyorum.

Bir enstrümanda iyi çalışan bir danışman var. Birkaç enstrümanda aynı anda çalışması için "bitirmek" istiyorum. Bunu yapmak için, birkaç farklı sembole eklenmiş, EA'nın tüm örnekleri tarafından üyelerine erişilebilen bir veri dizisini doğru bir şekilde oluşturmam gerekiyor. Onlar. yalnızca bir veri dizisi vardır ve birkaç uzman danışman örneği vardır. Her EA örneği, dizi üyelerini okuyabilir ve değiştirebilir.

Anladığım kadarıyla statik üyeli (statik) bir dizi oluşturmak gerekiyor.

En basit örnek, Expert Advisor'ların eklendiği tüm çizelgelerdeki toplam tik sayısını hesaplamaktır. Expert Advisor'ı 2 çizelgeye ekleyelim ve OnTick() olayında sayacı 1 artıracağız. Basit olması için bir dizi değil, bir statik değişken sayacı kullanmaya çalıştım. Ama ne yazık ki her Expert Advisor sadece kendi sayacıyla çalışıyor, sayaç "yaygın" değil. Sonuç:

karakter1, tik1 : sayaç = 0;

karakter1, tik2 : sayaç = 1;

karakter2, tik1 : sayaç = 0; - burada sayaç = 2 bekleniyordu

Örneğin, sayaçlı basit bir sınıf oluşturdum:

 //+------------------------------------------------------------------+
//|                                                   TestStatic.mqh |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class TestStatic
  {
private :
static int counter;
public :
                     TestStatic();
                    ~TestStatic();

static void IncreaseCounter();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
TestStatic::TestStatic()
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
TestStatic::~TestStatic()
  {
  }
//+------------------------------------------------------------------+
int TestStatic::counter= 0 ;
TestStatic::IncreaseCounter()
  {
   Print ( "Symbol: " + _Symbol + ", counter: " + TestStatic::counter);
   TestStatic::counter++;
  };

İşte danışman kodu:

 //+------------------------------------------------------------------+
//|                                                Exp_testMulti.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property version    "1.00"
#property strict
#include <TestStatic.mqh>

static string tickCounter[ 2 ][ 2 ];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
  
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   TestStatic::IncreaseCounter();
    
  }
//+------------------------------------------------------------------+

Lütfen çözmeme yardım edin, şimdiden teşekkürler!

 
VangoghFX :

Tünaydın! Bence basit bir planın uygulanmasında yardım istiyorum.

Bir enstrümanda iyi çalışan bir danışman var. Birkaç enstrümanda aynı anda çalışması için onu "bitirmek" istiyorum. Bunu yapmak için, birkaç farklı sembole eklenmiş, EA'nın tüm örnekleri tarafından üyelerine erişilebilen bir veri dizisini doğru bir şekilde oluşturmam gerekiyor. Onlar. yalnızca bir veri dizisi vardır ve birkaç uzman danışman örneği vardır. Her EA örneği, dizi üyelerini okuyabilir ve değiştirebilir.

Anladığım kadarıyla statik üyeli (statik) bir dizi oluşturmak gerekiyor.

En basit örnek, Expert Advisor'ların eklendiği tüm çizelgelerdeki toplam tik sayısını hesaplamaktır. Expert Advisor'ı 2 çizelgeye ekleyelim ve OnTick() olayında sayacı 1 artıracağız. Basit olması için bir dizi değil, bir statik değişken sayacı kullanmaya çalıştım. Ama ne yazık ki her Expert Advisor sadece kendi sayacıyla çalışıyor, sayaç "yaygın" değil. Sonuç:

karakter1, tik1 : sayaç = 0;

karakter1, tik2 : sayaç = 1;

karakter2, tik1 : sayaç = 0; - burada sayaç = 2 bekleniyordu

Örneğin, sayaçlı basit bir sınıf oluşturdum:

İşte danışman kodu:

Lütfen çözmeme yardım edin, şimdiden teşekkürler!

Tünaydın. Özellikle, örneğinizi kenelerle uygulamak için global terminal değişkenleri uygundur (bu konuyla ilgili bir makale yakın zamanda yayınlandı). Böyle bir diziye gelince... Emin değilim, denemem gerekecek. Ama başka bir seçenek sunabilirim. Bir Expert Advisor'da, iş için gerekli sembolleri girin ve dediğiniz gibi, gerekli verilerin statik/global bir dizisini yapın. Ve EA'nın gerekli tüm semboller arasında geçiş yapmasına izin verin.
 
Tapochun :
Tünaydın. Özellikle, örneğinizi kenelerle uygulamak için global terminal değişkenleri uygundur (bu konuyla ilgili bir makale yakın zamanda yayınlandı). Böyle bir diziye gelince... Emin değilim, denemem gerekecek. Ama başka bir seçenek sunabilirim. Bir Expert Advisor'da, iş için gerekli sembolleri girin ve dediğiniz gibi, gerekli verilerin statik/global bir dizisini yapın. Ve EA'nın gerekli tüm semboller arasında geçiş yapmasına izin verin.

Cevap için çok teşekkür ederim.

Genel fikri anlatmanın en kolay ve en açıklayıcı yolu olarak kene örneğini kullandım. EA daha karmaşık algoritmalar kullanır.

Yüksekliği ve evrensel olmaması nedeniyle N sembolünün bir danışmana yazıldığı seçeneği sevmiyorum. Portalda bu konuyla ilgili birkaç makale var, onları gördüm: ama büyük döngüleri, dizileri, veri kopyalamayı, her sembol için çok sayıda değişken paketini vb. sevmiyorum. Bence daha basit ve daha etkili bir yaklaşım kullanmak istiyorum: herhangi bir sembol için bir EA kodu (sembol, EA'nın eklendiği çizelge tarafından belirlenir) - ve EA'nın her bir kopyası diğerlerinden paralel olarak çalışır. Ancak aynı zamanda danışmanlar, karar verme için gerekli olan genel analitik bilgileri birbirleriyle "araşırlar".

Global değişkenlerle ilgili fikir beni ziyaret etti, ancak bu hala daha çok prosedürel bir yaklaşım, ancak OOP'nin tüm avantajlarını kullanmak istiyorum. Gerekli analitik verileri danışmana bir dizi şeklinde iletecek ayrı bir sınıf yazmayı planlıyorum ve danışmanlar zaten ticaret kararları verecekti.