MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1164

 
Iosebi Tavadze :
Belki yanlış konuya girdim Allah affetsin Mkl.!!! Dört veya beş göstergenin birleşiminden sinyal verecek bir gösterge yazmam gerekiyor.Bodrum katına kurulu.Belki bir şablon vardır. Ya da hazır bir danışman lütfen söyleyin!!!!!!!!!!!!

Sizin için yazmanız gerekiyorsa, o zaman burada .

Kendiniz yapmak istiyorsanız, bana neyin işe yaramadığını söyleyin ve kodunuzu gönderin.

 
simeon068 :
Bir mql5 klasörüne nasıl uzman danışmanı ekleyebilirim ve bunun danışman bölümünde görünmesini nasıl sağlayabilirim?

Terminalde, "Dosya" menüsünde "Veri dizinini aç" seçeneğini seçin - gezgin açılacaktır. İçinde MQL5 \ Experts klasörüne gidin - danışmanınızı buna veya herhangi bir alt klasöre yerleştirin. Ardından, sağ düğmenin menüsündeki terminalin gezgininde "Güncelle" yi seçin.

 

Biri bana söyleyebilir mi!!! uyarı nedir ve nasıl düzeltilir?

anlık görüntü3

burada bu yerde

 // если активны входящие параметры, использующие значение текущей цены по инструменту,
// тогда пытаемся получить текущие значения
   if (hide_PRICE_HIGH> 0 || hide_PRICE_LOW> 0 || hide_SPREAD> 0 )
     {
       SymbolInfoTick (name, lastme);
       if (lastme.bid== 0 )
        {
         Alert ( "(" +name+ ") Получить значение BID не удалось. Некоторые функции фильтрации могут не работать." );
        }
     }
// Скрыть символы, у которых спред:
   if (hide_SPREAD> 0 && lastme.bid> 0 )
     {
       switch (hide_SPREAD)
        {
         // если текущий спред больше 0.05% от цены - пропускаем символ
         case spread_b05:
             if ((( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ))/lastme.bid)* 100 > 0.05 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред больше 0.1% от цены - пропускаем символ
         case spread_b1:
             if ((( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ))/lastme.bid)* 100 > 0.1 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред больше 0.15% от цены - пропускаем символ
         case spread_b15:
             if ((( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ))/lastme.bid)* 100 > 0.15 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред меньше 0.15% от цены - пропускаем символ
         case spread_l15:
             if ((( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ))/lastme.bid)* 100 < 0.15 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред меньше 0.1% от цены - пропускаем символ
         case spread_l1:
             if ((( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ))/lastme.bid)* 100 < 0.1 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред != 0.01 - пропускаем символ
         case spread_c1:
             if ( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ) > 0.01 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред > 0.03 - пропускаем символ
         case spread_c3:
             if ( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ) > 0.03 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред > 0.07 - пропускаем символ
         case spread_c7:
             if ( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ) > 0.07 )
              {
               isskip= true ;
              }
             break ;
         // если текущий спред > 0.1 - пропускаем символ
         case spread_c10:
             if ( SymbolInfoInteger (name, SYMBOL_SPREAD )* SymbolInfoDouble (name, SYMBOL_POINT ) > 0.1 )
              {
               isskip= true ;
              }
             break ;
        }
     }
 
Alexsandr San :

Biri bana söyleyebilir mi!!! uyarı nedir ve nasıl düzeltilir?

burada bu yerde


Bir nevi düzelttim - ama bilmiyorum, değil mi? Bu şeyi çıkar

Anlık Görüntü Düzeltildi

 
Alexsandr San :

Biri bana söyleyebilir mi!!! uyarı nedir ve nasıl düzeltilir?

burada bu yerde


Başlatılmamış lastme değişkenini kullanmak mümkündür. Başlatmadan bildirilir. SymbolInfoTick() ile doldurulacağı gerçeği değil

Başlatma ile hemen bir değişken bildirin: MqlTick lastme={0};

 
Artyom Trishkin :

Başlatılmamış lastme değişkenini kullanmak mümkündür. Başlatmadan bildirilir. SymbolInfoTick() ile doldurulacağı gerçeği değil

Başlatma ile hemen bir değişken bildirin: MqlTick lastme={0};

Çok teşekkürler! uyarı gitti. Sağlık ve en iyisi!!!

--------------------------

Gösterdiğin gibi içeri geri koydum.


iyi bir yardımcı program, buradan indirdim https://www.mql5.com/en/articles/5614

Dosyalar:
finder.mq5  296 kb
finder.mq4  296 kb
 

Lütfen bana kütüphaneden nasıl veri talep edeceğimi söyler misiniz?

Veri girişi için bir arayüze sahip baykuşlar yaratmaya çalışıyorum

dışarıdan böyle görünüyor

giriş alanı kodu

 //+------------------------------------------------------------------+
//| Создаёт поле ввода 1                                             |
//+------------------------------------------------------------------+
bool CProgram::CreateSpinEdit1( const int x_gap, const int y_gap, string text)
  {
//--- Сохраним указатель на окно
   m_spin_edit1.WindowPointer(m_window);
//--- Координаты
   int x=m_window.X()+x_gap;
   int y=m_window.Y()+y_gap;
//--- Значение
   double v=(m_spin_edit1.GetValue()== WRONG_VALUE ) ? 0 : m_spin_edit1.GetValue();
//--- Установим свойства перед созданием
   m_spin_edit1.XSize( 204 );
   m_spin_edit1.YSize( 24 );
   m_spin_edit1.EditXSize( 80 );
   m_spin_edit1.MaxValue( 10000 );
   m_spin_edit1.MinValue( 0 );
   m_spin_edit1.StepValue( 10 * Point );
   m_spin_edit1.SetDigits( Digits );
   m_spin_edit1.SetValue(v);
   m_spin_edit1.ResetMode( true );
   m_spin_edit1.AreaColor( clrWhite );
//--- Создадим элемент управления
   if (!m_spin_edit1.CreateSpinEdit(m_chart_id,m_subwin,text,x,y))
       return ( false );
//--- Добавим объект в общий массив групп объектов
   CWndContainer::AddToElementsArray( 0 ,m_spin_edit1);
   return ( true );
  }

nasıl talep edilir?

m_spin_edit1.GetValue()
 
MakarFX :

nasıl talep edilir?

muhtemelen:

имя_объекта. m_spin_edit1.GetValue()

 
Igor Makanu :

muhtemelen:

nesne adı ne anlama geliyor

ihtiyacım var

   double OrderBuy = m_spin_edit1.GetValue();

ama bu durumda hata

'm_spin_edit1' - bildirilmemiş tanımlayıcı TestLibrary.mq4 56 20

 
MakarFX :

nesne adı ne anlama geliyor

Bu senin için bir soru ortaya çıkarırsa açıklayabileceğimden şüpheliyim.

bir nesne ... peki, diyelim ki bir tür sınıfı değişkeni

kod bölümünüzde CProgram sınıfı

kodda bir yere yazılmalı

CProgram MyProgram;

ve aramak zorundasın

 double OrderBuy = MyProgram.m_spin_edit1.GetValue();