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

 
Aleksey Mavrin :

필요 )

알렉시, 감사합니다!

좋은 사람이여, 경험이 없는 사람에게 다음과 같이 말하십시오.
MQL5/Sounds 폴더는 우리 삶에서 어떤 역할을 해야 할까요? (제 질문은 1221페이지 상단에 있습니다)

 

새 틱이 도착할 때만 패널의 위치가 차트에서 변경되는 이유를 말씀해 주시겠습니까? MT5, Just2Trade 빌드 날짜: 6월 5일

 #include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , true );
   Main.Create( 0 , "Main" , 0 , 50 , 50 , 260 , 130 );
   Main.Run();
      
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,         // идентификатор события   
                   const long & lparam,   // параметр события типа long 
                   const double & dparam, // параметр события типа double 
                   const string & sparam)   // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov :

새 틱이 도착할 때만 패널의 위치가 차트에서 변경되는 이유를 말씀해 주시겠습니까? MT5, Just2Trade 빌드 날짜: 6월 5일

표준 배포 [데이터 폴더]\MQL5\Experts\Examples\Controls\Controls.mq5의 코드와 패널 예제를 비교하십시오.

 

안녕하세요. 전문가를 위한 질문입니다.

나는 그러한 구성을 어셈블하려고 노력하고 있습니다. 함수, 4개의 변수 및 배열이 참조에 의해 매개변수로 제공되며, 이 4개의 변수를 계산하기 위한 함수 내부에서 데이터를 얻을 수 있습니다. 프로그램에는 지그재그의 상한값과 하한값인 두 개의 배열이 있습니다(함수에 전달됨). 함수는 TrendLine을 구축하기 위해 포인트를 계산해야 합니다.

문제는 계산에서 + 또는 -를 적용하기 위해 이 특정 반복에서 두 배열 중 어느 것이 사용되는지 함수 내부에 검사를 작성하는 방법입니다 ???

서투르게 공식화하면 다시 질문하십시오. pliz, 기쁘게 설명하겠습니다. 첨부된 디자인 스케치입니다.

 //+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints( datetime &time_1, double &price_1, 
                           datetime &time_2, double &price_2, double & zigbuf[] )  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize (zigbuf);
   for ( int i = 0 ; i < size_zigbuf; i++){ if (zigbuf[i] != EMPTY_VALUE ) break ;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for ( int i = ind_time_1 + 1 ; i < size_zigbuf; i++){ if (zigbuf[i] != EMPTY_VALUE ) break ;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???    
} 

즉, zigbuf[] 매개변수는 ZigzagPeakBuffer[] 또는 ZigzagBottomBuffer[]의 두 가지 옵션만 대체할 수 있습니다 . 현재 대체된 옵션을 함수 내에서 어떻게 확인할 수 있습니까???


 

지금까지 나는 배열 중 어느 것이 관련되어 있는지 결정하는 아이디어를 생각해 냈습니다. 발견된 값과 일치하는 값을 비교하여 그 값이 우리 것입니다. 그러나 분명히 더 아름답고 더 짧은 솔루션이 있습니다.

아는 사람 - 말해봐 pliz !!!

 //+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints( datetime &time_1, double &price_1, 
                           datetime &time_2, double &price_2, double & zigbuf[] )  
{
   int ind_time_1 = 0 ;
   int ind_time_2 = 0 ;
   int size_zigbuf = ArraySize (zigbuf);
   for ( int i = 0 ; i < size_zigbuf; i++)
      {
         if (zigbuf[i] != EMPTY_VALUE )
            price_1    = zigbuf[i];
            ind_time_1 = i;
             break ;
      }
   for ( int i = ind_time_1 + 1 ; i < size_zigbuf; i++)
      {
         if (zigbuf[i] != EMPTY_VALUE )
            {
               if ( zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break ;
                  }
               if ( zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break ;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или > .
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

모두에게 좋습니다))


질문: OBJ_FIBO 는 플롯할 때 차트에 팝업 창을 표시하지 않습니다(OBJPROP_TOOLTIP). 모든 것이 OBJPOP_TXT를 통해 그래픽으로 구성됩니다/ 툴팁을 통해 FIBO에서 팝업 창을 만드는 것이 어떻게 가능하고 전혀 가능합니까?

목적: fibo 수준 위로 마우스를 가져가면 HLINE과 같은 창이 팝업됩니다(예:).

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2 :

모두에게 좋습니다))


질문: OBJ_FIBO 는 플롯할 때 차트에 팝업 창을 표시하지 않습니다(OBJPROP_TOOLTIP). 모든 것이 OBJPOP_TXT를 통해 그래픽으로 구성됩니다/ 툴팁을 통해 FIBO에서 팝업 창을 만드는 것이 어떻게 가능하고 전혀 가능합니까?

목적: fibo 수준 위로 마우스를 가져가면 HLINE과 같은 창이 팝업됩니다(예:).

OBJPROP_TEXT 속성 사용

 ObjectSetString (chart_ID,name, OBJPROP_TEXT , "Это всплывающая подсказка" );
 
사용하지 않는 데모 제품을 거부하는 방법은 무엇입니까? 시스템에서 지속적으로 메시지 수신 "새 버전 ........"
 
Sergey Voytsekhovsky :

지금까지 나는 배열 중 어느 것이 관련되어 있는지 결정하는 아이디어를 생각해 냈습니다. 발견된 값과 일치하는 값을 비교하여 그 값이 우리 것입니다. 그러나 분명히 더 아름답고 더 짧은 솔루션이 있습니다.

아는 사람 - 말해봐 pliz !!!

왜 스스로 문제를 만드십니까? 그들은 충분할 것입니다.

두 개의 별도 기능을 만드십시오.

 
세트 파일에서 MqlParam 배열을 가져오는 방법을 알려주십시오.
사유: