Kütüphaneler: Uzman - sayfa 12

 
Uzman Danışman bir DLL yüklenmesini gerektiriyorsa, bu onay kutusunu kendisi işaretlemiyor mu? Görünüşe göre uzman modu ile ilgili. Arayüzü göremiyorum. Kodu veya şablonu kendim mi düzenlemem gerekiyor?
 
traveller00:
Uzman Danışman bir DLL yüklenmesini gerektiriyorsa, bu onay kutusunu kendisi işaretlemiyor mu? Görünüşe göre uzman modu ile ilgili. Arayüzü göremiyorum. Kodu veya şablonu kendim mi düzenlemem gerekiyor?

Yukarıda DLL ile örnekler vardı.

 

Parametreler yönteminin dönüş kodunun anlamını açıklığa kavuşturmak istiyorum. Şu anda, şablonlu bir dize alınırken bir hata olduğunda, yöntem 0 döndürüyor. Bu, 0'ın bir hata anlamına geldiğini varsayar.

Diğer tüm durumlarda, dönüş bir dizedir:

Res = (int)EXPERT::StringBetween(Str, EXPERT_FLAGS, STRING_END);

yani şablondaki expertmode değeri oraya gelir ve bu değer yasal olarak 0'a eşit olabilir. EXPERT diğer projelerde, özellikle de Tester'da bu şekilde kullanılmaktadır:

void OnTimerReal()
{
  ...
  if ((this.Symb += BeginTick) && EXPERT::Parameters(0, Params, Names))
  {
    ... открытие рабочего чарта
  }
}

Sonuç olarak, yöntem 0 döndürürse, Tester çalışmaz. Neden? Gerçek ticaret bayrağı sıfırlanırsa, bu testin yasaklanması gerektiği anlamına gelmez, imho. Dahası, Tester bu durumda sessizce hiçbir şey yapmaz.

 
Stanislav Korotky:

Parametreler yönteminin dönüş kodunun anlamını açıklığa kavuşturmak istiyorum. Şu anda, şablon içeren bir dize alınırken bir hata olduğunda, yöntem 0 döndürmektedir. 0'ın hata anlamına geldiği varsayılmaktadır.

Geri dönüş değeri ilk yayınlardan bu yana değişmiştir. Yani tarihsel olarak, geri dönüş değerinin orada bir hata olup olmadığı hakkında hiçbir şey söylemediği ortaya çıkmıştır.

Diğer tüm durumlarda, geri dönüş değeri bir dizedir:

yani şablondaki expertmode değeri oraya gelir ve bu değer yasal olarak 0'a eşit olabilir. Diğer projelerde, özellikle Tester'da, EXPERT bu şekilde kullanılır:

Sonuç olarak, yöntem 0 döndürürse, Tester çalışmaz. Neden? Gerçek ticaret bayrağı sıfırlanırsa, testin yasaklanması gerektiği anlamına gelmez, imho. Özellikle, Tester bu durumda sessizce hiçbir şey yapmaz.

Alıntı yaptığınız koda göre, aslında, otomatik ticaret devre dışı bırakılırsa çalışmayacaktır. Bunun bir hata mı yoksa bilerek mi yapıldığını hatırlamıyorum. Büyük olasılıkla, DLL'leri bağlamanın mümkün olması için bilerek yapıldı.


ZY İncil'i güncellemem gerekecek. Sequence ile paylaşım için güçlü bir bükülme var. Bu özelliğe sadece benim ihtiyacım olduğu için güncellemek öncelikli değil.

 

Sonsuz döngü algılama yapısının çalıştığı tek zaman.

ME      3       15:22:12.123    Message Endless loop:
KS      3       15:22:12.123    Message Expert.mqh
IP      3       15:22:12.123    Message 169
DG      3       15:22:12.123    Message bool EXPERT::TemplateApply(const long,const string&,const bool)
FQ      3       15:22:12.123    Message Condition: !::IsStopped()&&::ChartGetInteger(Chart_ID,CHART_COLOR_STOP_LEVEL,0,Value)&&(!(bool)((int)Value>>24))


Bu noktada Expert.mqh'de oldu.

      while (_CS(!::IsStopped() && ::ChartGetInteger(Chart_ID, CHART_COLOR_STOP_LEVEL, 0, Value) && (!(bool)((int)Value >> 24))))
        ::Sleep(1); // https://www.mql5.com/ru/forum/170952/page190#comment_18830346


Expert.mqh'yi her gün aktif olarak kullanıyorum, ancak bu durumla ilk kez karşılaştım. Görünüşe göre çok nadir bir durum var. Aklınızda bulunsun.

 
İyi iş, ama sanırım şu anda Uzmanı varsayılan ön ayarla yükleyecek? Seçilen uzman için SET dosyalarını yükleyebilseydiniz de iyi olurdu
 

Merhaba, teşekkür ederim EXPER.mqh harika.

1. EXPERT::Run(....) ile açılan EA için "Algo ticaretini" nasıl etkinleştirebilirim.

2. 2019 sürümünü kullanıyorum. Daha yeni bir sürüm var mı?

 
upinsa #:

1. EXPERT::Run(....) ile açılan EA için "Algo ticaretini" nasıl etkinleştirebilirim?

Bunu okuyun.

2. 2019 sürümünü kullanıyorum. Daha yeni bir sürüm var mı?

Son sürüm.


 
static bool GetInputNames( MqlParam &Parameters[], string &InputNames[] )
  {
    const int Size = ::ArraySize(Parameters);
    bool Res = (Size > 1);

    if (Res)
    {
      ::ArrayResize(InputNames, Size - 1);

      for (int i = 1; (i < Size) && Res; i++)
      {
        InputNames[i - 1] = EXPERT::GetInputName(Parameters[i]);
        Res &= (InputNames[i - 1] != NULL);
      }
    }

    return(Res);
  }

giriş grubu "【label1】";

Bu durum dikkate alınmamış gibi görünüyor. Parametre bir grup olduğunda, belirli bir değer yoktur ve alınan değer null olacaktır, bu nedenle gruptan sonraki parametreler alınmayacaktır.

 
hini #:

giriş grubu "【label1】";

Bu durum dikkate alınmamış gibi görünüyor. Parametre bir grup olduğunda, belirli bir değer yoktur ve alınan değer null olacaktır, bu nedenle gruptan sonraki parametreler alınmayacaktır.

Bir sorun varsa, lütfen yeniden üretmek için hazır mq5 dosyaları verin.