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

 
Valeriy Yastremskiy :

Bir şey anlamıyorum, belki de o pencereyle ilgili değildir. Çubuklar nerede, grafik penceresinden bahsediyorum. Bunlar hareket ediyor. Gösterge danışmanları, uyarı pencereleri, mesajlar yüklenirken diyalog pencereleri de vardır, ancak hepsi hareket eder. Hangi pencereden bahsediyorsun? İncil diyaloğunun bununla hiçbir ilgisi yoktur. Ayrıca 4k'da kitaplığım yok

İşte baykuş penceresi


Gerektiğinde onu programa göre taşımak istiyorum.

 
MakarFX :

İşte baykuş penceresi


Gerektiğinde onu programa göre taşımak istiyorum.

Bu bir pencere değil, bir panel. Hareket edebilirsin, sana kodla bile söylemeyeceğim. Kod gereklidir ve genel olarak yeniden çizilir. Panelin nerede çizildiğini ve koordinatların ayarlandığını bulun, ardından olayları fare ile takip edin, ekleyin (basın), taşıyın, silin, yenisini çizin. Bunun gibi bir şey. Ama ben hiç ressam değilim.

 
Valeriy Yastremskiy :

EA'da silerken, yorumu silmenize gerek yoktur, ancak göstergede gereklidir. Yani amaçlandı mı?

Yeterli bir programcı en azından yazacak

 void OnDeinit ( const int reason)
{
     Comment ( "" );
}
Yorumlar kullanılmışsa, bunları kendisi temizleyecektir. Ve birçok yeni başlayan buna dikkat etmiyor. Bütün sır bu.
 
Merhaba.
Belli bir seviye için ( açık pozisyonları dikkate alarak) fiyatı nasıl hesaplayacağımı (formül) söyler misiniz? Teminat tamamlama ve durdurmanın hangi fiyattan olacağını hesaplamak için.
 
Konstantin Nikitin :

Yeterli bir programcı en azından yazacak

Yorumlar kullanılmışsa, bunları kendisi temizleyecektir. Ve birçok yeni başlayan buna dikkat etmiyor. Bütün sır bu.

Bu yüzden yazdım ve yukarıda yazdım.) Soru, Uzman Danışmanlarda ve göstergelerde neden farklı davranışlardı. Gizli bir anlam var mı veya farklı yazar ekiplerinden tarihsel olarak geliştirilmiş mi?)

 
Konstantin Nikitin :

Yeterli bir programcı en azından yazacak

Yorumlar kullanılmışsa, bunları kendisi temizleyecektir. Ve birçok yeni başlayan buna dikkat etmiyor. Bütün sır bu.
Aslında, bu konuda açık bir genel gereklilik yoktur.
 
Andrey Sokolov :
Aslında, bu konuda açık bir genel gereklilik yoktur.

Gereksinimlerden bahsettim mi? Ben sadece birinin anı dikkate aldığını ve birinin dikkate almadığını söyledim.

 
Konstantin Nikitin :

Gereksinimlerden bahsettim mi? Ben sadece birinin anı dikkate aldığını ve birinin dikkate almadığını söyledim.

bu taraftan değil

 

kütüphanede   KOLAY VE HIZLI   https://www.mql5.com/ru/articles/3527 "SubWindow.mq5" dosyasını yükleyerek gösterge alt penceresinde program penceresini başlatma özelliğini uyguladı, mql5'te her şey çalışıyor, mql4'te içerik de derleniyor hata veriyor ama alt pencere açılmıyor ne yapılabilir?


 //+------------------------------------------------------------------+
//|                                                    SubWindow.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2016, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property indicator_separate_window
#property indicator_plots    0
#property indicator_buffers 0
#property indicator_minimum 0.0
#property indicator_maximum 0.0
//--- Имя программы
#define PROGRAM_NAME :: MQLInfoString ( MQL_PROGRAM_NAME )
//--- Идентификатор события для изменения высоты подокна эксперта
#define ON_SUBWINDOW_CHANGE_HEIGHT ( 38 )
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
//--- Короткое имя индикатора
   :: IndicatorSetString ( INDICATOR_SHORTNAME ,PROGRAM_NAME);
//--- Инициализация прошла успешно
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int     rates_total,
                 const int     prev_calculated,
                 const int     begin,
                 const double &price[])
  {
//--- Если инициализация прошла успешно
   if (prev_calculated< 1 )
       //--- Отправим сообщение эксперту, чтобы получить от него размер для подокна
      :: EventChartCustom ( 0 ,ON_SUBWINDOW_CHANGE_HEIGHT, 0 , 0.0 ,PROGRAM_NAME);
//---
   return (rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int     id,
                   const long    &lparam,
                   const double &dparam,
                   const string &sparam)
  {
//--- Обработка события изменения высоты подокна эксперта
   if (id== CHARTEVENT_CUSTOM +ON_SUBWINDOW_CHANGE_HEIGHT)
     {
       //--- Принимать сообщения только от имени эксперта
       if (sparam==PROGRAM_NAME)
         return ;
       //--- Изменить высоту подокна
      :: IndicatorSetInteger ( INDICATOR_HEIGHT ,( int )lparam);
       //--- Обновить график
      :: ChartRedraw ();
     }
  }
//+------------------------------------------------------------------+
 

Merhaba!

(Herhangi bir) göstergeye hesaba bir çek eklemeye çalışıyorum!

 bool VerifityToSchet()
  {
   if (AccountNumber() != account)
     {
       Print ( "На данном счете индикатор работать не будет, вы его приобрели незаконным путем!!!" );   
     } else
     {
     Print ( "На данном счете индикатор авторизован" );
     }
   return ( false );
  } 

Doğal olarak, onu init() ve start() içine dahil ediyorum, ancak terminal yeniden başlatıldığında hesabın geçersiz olduğuna yemin ediyor!

Neyi yanlış yapıyorum?