Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1119

 
pivomoe :
1 milisaniyede nasıl duraklatılacağını söyle? Bir yerde 0 ila 50 milisaniye arasında durakladığı için Sleep(1)'i önermeyin. Parametre 1 ile çağrıldığında.
Belgeler, teknik nüanslar nedeniyle 16-18 milisaniyeden daha kısa bir duraklamanın gerçekçi olmadığını söylüyor. Bu zaten donanım, işletim sistemi vb. ile bağlantılıdır.
 
BlackTomcat :
Belgeler, teknik nüanslar nedeniyle 16-18 milisaniyeden daha kısa bir duraklamanın gerçekçi olmadığını söylüyor. Bu zaten donanım, işletim sistemi vb. ile bağlantılıdır.
İş yüküne bağlı olarak yaklaşık 1, bazen 2.3'üm var.
 
Aliaksandr Hryshyn :
İş yüküne bağlı olarak yaklaşık 1, bazen 2.3'üm var.

? Google: Windows sistem zamanlayıcı , yani 16 ms'den daha azının neden imkansız olduğu soruları veya yanlış anlamaları, kısacası - Windows gerçek zamanlı bir sistem değildir, programlara yalnızca Windows zamanlayıcı kullanılabilir

 
Igor Makanu :

? Google: Windows sistem zamanlayıcı, böylece 16 ms'den daha azının neden imkansız olduğu soruları veya yanlış anlamaları, kısacası - Windows gerçek zamanlı bir sistem değildir, programlara yalnızca Windows zamanlayıcı kullanılabilir

16 çok ama tolere edilebilir. 50'den fazla var.
 
pivomoe :
16 çok ama tolere edilebilir. 50'den fazla var.

bir kez daha - Windows gerçek zamanlı bir sistem değil, yeterli işletim sistemi kaynağı yok, zamanlayıcınız gecikecek, ancak yine de yürütülecek, mantıksal zaman aralıkları kullanın, 100 ms'den az kullanmıyorum ve genellikle 400 ms kullanın, grafiklerle ve onay kutusu düğmelerinin tıklamalarının işlenmesiyle bile bir dll'yi çağırmak için 400 ms hiç fark edilmiyor, 500 ms'yi kontrol ettim - evet, yanıt olmadığı zaten açık

IMHO, zamanlayıcıdan 100 ms'den daha az garanti almayı ummam

 
100 ms'den az zapadlo. 400'den daha iyi.
 

Ekranda bir bilgi mesajının nasıl görüntüleneceğini ve Tamam düğmesine basılmasını beklemediğini söyle?

Elbette MessageBox işlevi vardır, ancak bir tepki bekler ve programın çalışmasını durdurur.

 
pivomoe :

Ekranda bir bilgi mesajının nasıl görüntüleneceğini ve Tamam düğmesine basılmasını beklemediğini söyle?

Elbette MessageBox işlevi vardır, ancak bir tepki bekler ve programın çalışmasını durdurur.

Evet Uyarı, bir nevi. Sadece son paragrafı okuduğunuzdan emin olun.

https://www.mql5.com/ru/docs/common/alert

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
[in]  Любые значения, разделенные запятыми. Для разделения выводимой информации на несколько строк можно использовать символ перевода строки "\n" либо "\r\n". Количество параметров не может превышать 64. Массивы нельзя передавать в функцию Alert(). Массивы должны выводиться поэлементно. Данные типа double выводятся с 8 десятичными цифрами после...
 
BlackTomcat :

Evet Uyarı, bir nevi. Sadece son paragrafı okuduğunuzdan emin olun.

https://www.mql5.com/ru/docs/common/alert

Teşekkür ederim. Neye ihtiyacın var.

 

Tünaydın. Lütfen tavsiye verin veya bana bir bağlantı gönderin. Ayrı bir pencerede bir mum grafiği şeklinde denge değişikliklerini gösterecek bir gösterge nasıl organize edilir. En basitini yaptım, gösterge fiyat değişikliklerini kopyalıyor ama şimdi fiyat değişikliklerinin denge değişiklikleriyle nasıl değiştirileceği, yani gösterge tarafından kullanılan dizilerin nasıl değiştirileceği.

Herhangi bir fikriniz varsa lütfen paylaşın, sadece algoritmanın genel bir açıklaması için bile minnettar olacağım, yeterli deneyimim yok, hangi tarafa yaklaşacağımı bilmiyorum.

 //+------------------------------------------------------------------+
//|                                                iBalans_Logic.mq5 |
//|                                              Sergei Voicehovskii |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Sergei Voicehovskii"
#property link        ""
#property version    "1.00"
//------------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_plots    1
#property indicator_label1    "iBalans_Logic"
#property indicator_type1    DRAW_COLOR_CANDLES
#property indicator_color1    clrGray , clrDodgerBlue , clrSandyBrown
//--- indicator buffers
//--- индикаторный буфер
double opn[],hi[],lo[],cls[],clr[],lot[],type[];
//------------------------------------------------------------------
// Custom indicator initialization function
// Функция инициализации пользовательского индикатора
//------------------------------------------------------------------
int OnInit ()
  {
   SetIndexBuffer ( 0 ,opn, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,hi, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,lo, INDICATOR_DATA );
   SetIndexBuffer ( 3 ,cls, INDICATOR_DATA );
   SetIndexBuffer ( 4 ,clr, INDICATOR_COLOR_INDEX );
   SetIndexBuffer ( 5 ,lot, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 6 ,type, INDICATOR_CALCULATIONS );
   IndicatorSetString ( INDICATOR_SHORTNAME , "iBalans_Logic (" ")" );
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function    
//| Функция итерации пользовательского индикатора                          |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
//---
Comment ( "-------------------------" , 
         "\n rates_total        = " ,rates_total,
         "\n prev_calculated = " ,prev_calculated,
         "\n ---------------------- "
       ); 
//---
int i=( int ) MathMax (prev_calculated- 1 , 0 );

   for (;i<rates_total && ! _StopFlag ; i++)
     {
     
       opn[i] = open[i];
       cls[i] = close[i];
        hi[i] = high[i];
        lo[i] = low[i];
       clr[i] = (cls[i]>opn[i])? 1 :(cls[i]<opn[i])? 2 : 0 ;
     }
//--- return value of prev_calculated for next call
//--- возвращаемое значение соответствует моменту prev_calculated для следующего вызова
return (rates_total);
}
//+------------------------------------------------------------------+

https://charts.mql5.com/22/192/eurusd-m1-alpari-international-2.png