MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 328

 

안녕하세요 선물 의 만료일을 알고 싶습니다

EXPIRATION=(날짜/시간)SymbolInfoInteger(Symbol(),SYMBOL_EXPIRATION_TIME);

A는 1970 01 01 00 00을 제공합니다.

 

안녕하세요! 차트의 특정 지점에서 마우스 를 클릭했을 때 이 시점에서 Expert Advisor가 주문을 열게 하는 방법을 누군가에게 알려주세요 스크립트나 Expert Advisor를 설치했을 때만 예가 있고 NormalizeDouble(WindowPriceOnDropped) (), 숫자); 마우스 포인터를 정의합니다. 그러나 문제는 일하는 Expert Advisor에서 언제든지 수행 할 수 있다는 것입니다. 그런 가능성이 있습니까?

ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) 함수를 보았지만 여전히 사용법을 이해하지 못합니다. 마우스 포인터가 어디로 향했는지 확인할 수 있습니까?

 
Basicprof :

안녕하세요! 차트의 특정 지점에서 마우스 를 클릭했을 때 이 시점에서 Expert Advisor가 주문을 열게 하는 방법을 누군가에게 알려주세요 스크립트나 Expert Advisor를 설치했을 때만 예가 있고 NormalizeDouble(WindowPriceOnDropped) (), 숫자); 마우스 포인터를 정의합니다. 그러나 문제는 일하는 Expert Advisor에서 언제든지 수행 할 수 있다는 것입니다. 그런 가능성이 있습니까?

ChartGetInteger(0,CHART_EVENT_MOUSE_MOVE,0,1)) 함수를 보았지만 여전히 사용법을 이해하지 못합니다. 마우스 포인터가 어디로 향했는지 확인할 수 있습니까?

클릭 이벤트 "CHARTEVENT_CLICK" 사용

여기에서 코드 조각을 가져올 수 있습니다.

 
Vitaly Muzichenko :

클릭 이벤트 "CHARTEVENT_CLICK" 사용

여기에서 코드 조각을 가져올 수 있습니다.


정말 감사합니다 !!!

 

또 다른 질문: 어드바이저가 시작될 때 어드바이저에서 라이브러리로 기능을 전송했는데 즉시 충돌이 발생하고 메시지에서 터미널이 라이브러리를 로드할 수 없음을 보여줍니다 'ATP_funkcii.mq4::DrawLABEL'을(를) 호출할 수 없습니다. 'ATP_funkcii.mq4'가 로드되지 않았습니다.

문제를 해결하는 방법?

한 가지 주목! 프로그램 편집기에서 어드바이저와 라이브러리 파일을 볼 수 있지만 어떤 이유로 컴퓨터의 프로그램 파일에는 없습니다. 어드바이저 파일 전용.

 
안녕하세요! 배열 요소의 인덱스를 알고 다음 배열 요소의 인덱스를 찾는 방법을 알려주십시오.
 
vikzip :
안녕하세요! 배열 요소의 인덱스를 알고 다음 배열 요소의 인덱스를 찾는 방법을 알려주십시오.

모든 배열의 인덱스는 항상 0부터 시작합니다. 즉, 배열 크기가 1이면 이 셀의 인덱스는 0이 됩니다.

숫자 5를 알고 숫자 6을 찾는 방법은 무엇입니까?

숫자 6을 알고 숫자 7을 찾는 방법은 숫자가 8개뿐이라는 것을 알고 있습니까?

인덱스 7을 알고 배열의 크기가 8이라는 것을 알고 다음 인덱스를 찾는 방법은 무엇입니까?

 

안녕하세요, 도움을 요청합니다. 표시기 판독값이 업데이트되지 않습니다. 매 틱마다 업데이트되기를 원합니다.


 //+------------------------------------------------------------------+
//|                                             alx_RSI_BANDS_MA.mq4 |
//|                                                       alx_Babon |
//+------------------------------------------------------------------+
#property copyright "alx_Babon"
#property link        "babon82@gmail.com"

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Yellow
#property indicator_color2 DarkBlue
#property indicator_color3 White
#property indicator_color4 White
#property indicator_color5 White
//---- input parameters
extern int        RSI_Per= 8 ;
extern int        MA_Per= 8 ;
extern int        Bands_Per= 20 ;
extern int        SmoothType= 0 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double Sostoyanie;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   string type;
   switch (SmoothType)
   {
   case MODE_EMA : type= "EMA" ; break ;
   case MODE_SMMA : type= "SMMA" ; break ;
   case MODE_LWMA : type= "LWMA" ; break ;
   default : type= "LWMA" ;SmoothType= 0 ; break ; // если ни один вариант не подошел
   }

   SetIndexStyle ( 0 , DRAW_LINE , 0 , 1 );
   SetIndexBuffer ( 0 ,ExtMapBuffer1); //Свойства RSI
   SetIndexLabel ( 0 , "RSI(" +RSI_Per+ ")" );
   SetIndexStyle ( 1 , DRAW_LINE , 0 , 2 );
   SetIndexBuffer ( 1 ,ExtMapBuffer2); //Свойства MA
   SetIndexLabel ( 1 , "MA (" +MA_Per+ "), " +type);
   SetIndexStyle ( 2 , DRAW_LINE , 2 , 1 );
   SetIndexBuffer ( 2 ,ExtMapBuffer3); //Свойства Bands
   SetIndexLabel ( 2 , "Bands (" +Bands_Per+ ")" );
   SetIndexStyle ( 3 , DRAW_LINE , 2 , 1 );
   SetIndexBuffer ( 3 ,ExtMapBuffer4); //Свойства Bands
   SetIndexLabel ( 3 , "Bands (" +Bands_Per+ ")" );
   SetIndexStyle ( 4 , DRAW_LINE , 2 , 1 );
   SetIndexBuffer ( 4 ,ExtMapBuffer5); //Свойства Bands
   SetIndexLabel ( 4 , "Bands (" +Bands_Per+ ")" );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int     counted_bars= IndicatorCounted ();
   int limit,cnt;
   int cnt_rsi,cnt_bb,cnt_ma;
   if (counted_bars== 0 ) 
      {
      limit= Bars -RSI_Per- 1 ;
       for (cnt=limit;cnt>= 0 ;cnt--)
         {
          ExtMapBuffer1[cnt]= iRSI ( NULL , 0 ,RSI_Per, PRICE_CLOSE ,cnt);
         }
       for (cnt= 1 ;cnt<= Bars ;cnt++)
         {
          ExtMapBuffer6[cnt]= iMA ( NULL , 0 ,MA_Per, 0 ,SmoothType, PRICE_CLOSE ,cnt);
                
         }
       for (cnt=limit-MA_Per;cnt>= 0 ;cnt--)
         {
          ExtMapBuffer2[cnt]= iMAOnArray (ExtMapBuffer1, 0 ,MA_Per, 0 ,SmoothType,cnt);
         }          
       for (cnt=limit-Bands_Per;cnt>= 0 ;cnt--)
         {
          ExtMapBuffer3[cnt]= iBandsOnArray (ExtMapBuffer1, 0 ,Bands_Per, 2 , 0 , MODE_LOWER ,cnt);
         }
       for (cnt=limit-Bands_Per;cnt>= 0 ;cnt--)
         {
          ExtMapBuffer4[cnt]= iBandsOnArray (ExtMapBuffer1, 0 ,Bands_Per, 2 , 0 , MODE_UPPER ,cnt);
         }  
       for (cnt=limit-Bands_Per;cnt>= 0 ;cnt--)
         {
          ExtMapBuffer5[cnt]= iBandsOnArray (ExtMapBuffer1, 0 ,Bands_Per, 2 , 0 , MODE_MAIN ,cnt);
         } 
         
      }
      cnt_rsi=limit;
      cnt_bb=limit-Bands_Per;
      cnt_ma=limit-MA_Per;
       Comment (
               "RSI (" ,RSI_Per, ")=" ,ExtMapBuffer1[ 1 ], "\n" ,
           "Bolinger (" ,Bands_Per, ")=" ,ExtMapBuffer5[ 1 ], "\n" ,
                 "MA (" ,MA_Per, ")=" ,ExtMapBuffer2[ 1 ], "\n"
                 //,"MA CNT (",MA_Per,")=",ExtMapBuffer6[8],"\n"
                 //,"CNT_MA (",cnt_ma,")"
             );
//----
       //ObjectCreate("Arrow", OBJ_ARROW, 0, 0, 5);
       //ObjectSet("Arrow",OBJPROP_ARROWCODE,OBJ_PERIOD_M15 | OBJ_PERIOD_H1);
       //ObjectSetText("PivotText", "Pivot Point (DJ)", fontsize, "Arial", 
                 //colorPivot);
//----
   return ( 0 );
  }
//+---------------------------------------

 
Artyom Trishkin :

모든 배열의 인덱스는 항상 0부터 시작합니다. 즉, 배열 크기가 1이면 이 셀의 인덱스는 0이 됩니다.

숫자 5를 알고 숫자 6을 찾는 방법은 무엇입니까?

숫자 6을 알고 숫자 7을 찾는 방법은 숫자가 8개뿐이라는 것을 알고 있습니까?

인덱스 7을 알고 배열의 크기가 8이라는 것을 알고 다음 인덱스를 찾는 방법은 무엇입니까?


자세한 설명 감사합니다)))) 즉, 작성하는 것이 맞을 것입니다


 double Mas[];                                                                 //массив для упорядочивания всех ордеров
   for ( int i= 0 ; i< OrdersTotal (); i++)                                           // Цикл перебора ордер
   {
     if ( OrderSelect (i, SELECT_BY_POS ))                                           // Если есть следующий
     {
       Price= OrderOpenPrice ();
       ArrayResize (Mas, i+ 1 );                                                 //задан размер массива
       Mas [i] = Price; 
       ArraySort (Mas, WHOLE_ARRAY , 0 , MODE_DESCEND );                           // Теперь цены открытия упорядочены по убыванию
     }
   } 
   if ( ArraySize (Mas)> 1 )                                                         //Если массив не пустой
   
         { 
         int Blizko2= ArrayBsearch (Mas, Ask , WHOLE_ARRAY , 0 , MODE_DESCEND );           //Определен индекс ближайшего большего по значению елемента к текущей цене
             PriceBlizko2 = Mas[Blizko2];                                       // Цена выбранного ордера

       int Blizko1; 

Mas[Blizko1]= Blizko2+ 1 ;      Это верно??

                                                       //Определен индекс ближайшего меньшего по значению елемента к текущей цене         PriceBlizko1=Mas[Blizko1];
말씀해 주세요?

 
vikzip :

자세한 설명 감사합니다)))) 즉, 작성하는 것이 맞을 것입니다


말씀해 주세요?

배열 요소를 추가할 때마다 배열을 정렬할 필요가 없습니다. 더 나은 정렬

 double Mas[];                                                                 //массив для упорядочивания всех ордеров
   for ( int i= 0 ; i< OrdersTotal (); i++)                                           // Цикл перебора ордер
   {
     if ( OrderSelect (i, SELECT_BY_POS ))                                           // Если есть следующий
     {
       Price= OrderOpenPrice ();
       ArrayResize (Mas, i+ 1 );                                                 //задан размер массива
       Mas [i] = Price; 
     }
   } 
   if ( ArraySize (Mas)> 1 )                                                         //Если массив не пустой
   
         { 
       ArraySort (Mas, WHOLE_ARRAY , 0 , MODE_DESCEND );                           // Теперь цены открытия упорядочены по убыванию
         int Blizko2= ArrayBsearch (Mas, Ask , WHOLE_ARRAY , 0 , MODE_DESCEND );           //Определен индекс ближайшего большего по значению елемента к текущей цене
             PriceBlizko2 = Mas[Blizko2];                                       // Цена выбранного ордера

       int Blizko1; 
        Mas[Blizko1]= Blizko2+ 1 ;     Это верно??
                                                       //Определен индекс ближайшего меньшего по значению елемента к текущей цене
        PriceBlizko1=Mas[Blizko1];

도움에서

반환 값

발견된 첫 번째 요소의 인덱스를 반환합니다. 검색 값을 찾을 수 없으면 검색 값이 있는 요소 중 가장 낮은 값의 인덱스를 반환합니다 .

Mas[Blizko2]는 배열에서 다음으로 작은 값입니다.