초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1119

 
pivomoe :
1밀리초 안에 일시 중지하는 방법을 알려주세요. Sleep(1)은 어딘가에서 0에서 50밀리초 사이에 일시 중지되기 때문에 제안하지 마십시오. 매개변수 1로 호출될 때.
문서에 따르면 기술적인 뉘앙스로 인해 16-18밀리초 미만의 일시 중지는 현실적이지 않습니다. 이것은 이미 하드웨어, OS 등과 연결되어 있습니다.
 
BlackTomcat :
문서에 따르면 기술적인 뉘앙스로 인해 16-18밀리초 미만의 일시 중지는 현실적이지 않습니다. 이것은 이미 하드웨어, OS 등과 연결되어 있습니다.
작업 부하에 따라 약 1개, 때로는 2.3개가 있습니다.
 
Aliaksandr Hryshyn :
작업 부하에 따라 약 1개, 때로는 2.3개가 있습니다.

? Google: Windows 시스템 타이머 , 질문이나 오해가 왜 16ms 미만인지 요컨대 - Windows는 실시간 시스템이 아니며 Windows 타이머만 프로그램에 사용할 수 있습니다.

 
Igor Makanu :

? Google: Windows 시스템 타이머, 그래서 질문이나 오해가 16ms 미만인 이유는 간단히 말해서 - Windows는 실시간 시스템이 아니며 Windows 타이머만 프로그램에 사용할 수 있습니다.

16은 많지만 견딜 수 있습니다. 50개 이상 있습니다.
 
pivomoe :
16은 많지만 견딜 수 있습니다. 50개 이상 있습니다.

다시 한 번 - Windows는 실시간 시스템이 아니며 OS 리소스가 충분하지 않으며 타이머가 지연되지만 여전히 실행됩니다. 논리적 시간 간격을 사용합니다. 저는 100ms 미만을 사용하지 않으며 일반적으로 400ms 사용, 그래픽이 있는 dll을 호출하고 체크박스 버튼의 클릭을 처리하는 경우에도 400ms는 전혀 눈에 띄지 않습니다. 500ms를 확인했습니다. 예, 응답이 없는 것이 이미 분명합니다.

IMHO, 타이머에서 보장된 100ms 미만의 수신을 희망하지 않습니다.

 
100ms 미만 zapadlo. 400보다 낫습니다.
 

화면에 정보 메시지를 표시하고 확인 버튼이 눌릴 때까지 기다리지 않는 방법을 알려주십시오.

물론 MessageBox 기능이 있지만 반응을 기다리며 프로그램 실행을 중지합니다 .

 
pivomoe :

화면에 정보 메시지를 표시하고 확인 버튼이 눌릴 때까지 기다리지 않는 방법을 알려주십시오.

물론 MessageBox 기능이 있지만 반응을 기다리며 프로그램 실행을 중지합니다 .

예 경고, 일종의. 마지막 단락을 반드시 읽으십시오.

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

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

예 경고, 일종의. 마지막 단락을 반드시 읽으십시오.

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

고맙습니다. 필요한 것.

 

안녕하세요. 조언이나 링크를 보내주십시오. 별도의 창에서 촛대 차트의 형태로 잔액 변경을 표시하는 지표를 구성하는 방법. 가장 간단한 작업은 표시기가 가격 변경을 복사하지만 이제 가격 변경을 잔액 변경으로 대체하는 방법, 즉 표시기에서 사용하는 배열을 대체하는 것입니다.

아이디어가 있으면 공유하십시오. 알고리즘에 대한 일반적인 설명만으로도 감사하겠습니다. 경험이 충분하지 않고 어느쪽에 접근해야 할지 모르겠습니다.

 //+------------------------------------------------------------------+
//|                                                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

사유: