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

 
안녕하세요!

MQL4에서 MQL5로 표시기를 전송하고 있는데 작동하지 않는 이유를 이해할 수 없습니다.

 void GetDellName( string name_n = " " )
  {
   string vName;
   for ( int i= ObjectsTotal ()- 1 ; i>= 0 ; i--)
     {
      vName = ObjectName (i);
       if ( StringFind (vName,name_n) !=- 1 )
         ObjectDelete (vName);
     }
  }

MQL5의 MetaEditor는 다음과 같이 맹세합니다.


' ObjectsTotal ' - 잘못된 매개변수 개수

'ObjectName' - 잘못된 매개변수 개수

'ObjectDelete' - 잘못된 매개변수 개수

그러나 MQL4에서는 모든 것이 쾅하고 작동하며 오류가 없습니다.

이해를 도와주세요

 
Sprut 185 :
안녕하세요!

MQL4에서 MQL5로 표시기를 전송하고 있는데 작동하지 않는 이유를 이해할 수 없습니다.


MQL5의 MetaEditor는 다음과 같이 맹세합니다.


' ObjectsTotal ' - 잘못된 매개변수 개수

'ObjectName' - 잘못된 매개변수 개수

'ObjectDelete' - 잘못된 매개변수 개수

그러나 MQL4에서는 모든 것이 쾅하고 작동하며 오류가 없습니다.

이해를 도와주세요

1. 코드를 올바르게 붙여넣으십시오. 메시지를 편집할 때 버튼을 누르십시오. 암호 그리고 나타나는 팝업 창에서 코드를 붙여넣습니다(처음으로 메시지를 편집했습니다).

2. 도움말을 주의 깊게 읽으십시오. 예를 들어 ObjectsTotal

 int    ObjectsTotal (
   long   chart_id,           // идентификатор графика
   int    sub_window=- 1 ,       // индекс окна
   int    type=- 1              // тип объекта     
   );
Документация по MQL5: Графические объекты / ObjectsTotal
Документация по MQL5: Графические объекты / ObjectsTotal
  • www.mql5.com
ObjectsTotal - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Sprut 185 :

어쩌면 그렇게? - 모든 수평선과 추세선을 제거합니다.

 //+------------------------------------------------------------------+
//|                                                  GetDellName.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   GetDellName();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName( void )
  {
   int nHLines= ObjectsTotal ( 0 ,- 1 , OBJ_HLINE ),
       nTrendLines= ObjectsTotal ( 0 ,- 1 , OBJ_TREND ),i;
   string objName;
   for (i= 0 ; i<nHLines; i++)
     {
      objName= ObjectName ( 0 ,i, 0 , OBJ_HLINE );
       ObjectDelete ( 0 ,objName);
     }
   for (i= 0 ; i<nTrendLines; i++)
     {
      objName= ObjectName ( 0 ,i, 0 , OBJ_TREND );
       ObjectDelete ( 0 ,objName);
     }
   return (GetDellName());
  }
//+------------------------------------------------------------------+

-------------------------------------------------- ---\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\------------------------------------ ----------------------------------

또는 모든 개체를 삭제합니다.

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName( void )
  {
   int ObjectsName= ObjectsTotal ( 0 ,- 1 ,- 1 ),i;
   string objName;
   for (i= 0 ; i<ObjectsName; i++)
     {
      objName= ObjectName ( 0 ,i, 0 ,- 1 );
       ObjectDelete ( 0 ,objName);
     }
   return (GetDellName());
  }
//+------------------------------------------------------------------+

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\

Alexey Viktorov 가 말했듯이.

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName( void )
  {
   ObjectsDeleteAll ( 0 ,- 1 ,- 1 );
//--- "clear" comment
   Comment ( "" );
   return ( false );
  }
//+------------------------------------------------------------------+
 
SanAlex :

어쩌면 그렇게? - 모든 수평선과 추세선을 제거합니다.

주기가 있는 이유는 무엇입니까?

 int    ObjectsDeleteAll (
   long   chart_id,             // идентификатор графика
   int    sub_window=- 1 ,       // индекс окна
   int    type=- 1                // тип объекта для удаления
   );
 
Alexey Viktorov :

주기가 있는 이유는 무엇입니까?

솔직히!? - 몰라! - 그래서, 아침에 바쁘지 않습니다.

 
SanAlex :

어쩌면 그렇게? - 모든 수평선과 추세선을 제거합니다.

-------------------------------------------------- ---\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ \\\\\\\\\\\\---------------------------------------- ----------------------------------

또는 모든 개체를 삭제합니다.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\

Alexey Viktorov 가 말했듯이.

이렇게 될 수 있을까

 //+------------------------------------------------------------------+
//|                                                  GetDellName.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        "https://www.mql5.com"
#property version    "1.00"

string    m_name[]= { " 1 имя объекта " , " 2 имя объекта " , " 3 имя объекта " , " 4 имя объекта " , " 5 имя объекта " , " 6 имя объекта " };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   GetDellName();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName( void )
  {
   for ( int i= 0 ; i< ArraySize (m_name); i++)
     {
       ObjectDelete ( 0 ,m_name[i]);
     }
   return ( false );
  }
//+------------------------------------------------------------------+

이것보다 더

 //+------------------------------------------------------------------+
//|                                                     FILTER_1.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link        "https://www.mql5.com"
#property version    "1.00"
//---
sinput string InpName_1 = "HorizontalTrend Line_1" ; // FILTER_1
sinput string InpName   = "HorizontalTrend Line" ;   // FILTER
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
//---
   EventSetMillisecondTimer ( 1 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   EventKillTimer ();
   GetDellName( "" );
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ( void )
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTimer ( void )
  {
   MqlRates rates[],rates_1[];
   int start_pos= 0 ,count= 1 ;
   if ( CopyRates ( Symbol (), Period (),start_pos,count,rates)!=count)
     {
       return ;
     }
   if ( CopyRates ( Symbol (), Period (),start_pos,count,rates_1)!=count)
     {
       return ;
     }
//---
   double price_line= 0.0 ;
   if ( ObjectFind ( 0 ,InpName)>= 0 )
     {
       long object_type= ObjectGetInteger ( 0 ,InpName, OBJPROP_TYPE );
       if (object_type== OBJ_HLINE )
         price_line= ObjectGetDouble ( 0 ,InpName, OBJPROP_PRICE );
       else
         if (object_type== OBJ_TREND )
            price_line= ObjectGetValueByTime ( 0 ,InpName,rates[ 0 ].time, 0 );
       if (price_line> 0.0 )
        {
         if (rates[ 0 ].open<price_line)
           {
             Alert ( "1" );
            GetDellName(InpName);
           }
        }
     }
//---
   double price_line_1= 0.0 ;
   if ( ObjectFind ( 0 ,InpName_1)>= 0 )
     {
       long object_type_1= ObjectGetInteger ( 0 ,InpName_1, OBJPROP_TYPE );
       if (object_type_1== OBJ_HLINE )
         price_line_1= ObjectGetDouble ( 0 ,InpName_1, OBJPROP_PRICE );
       else
         if (object_type_1== OBJ_TREND )
            price_line_1= ObjectGetValueByTime ( 0 ,InpName_1,rates_1[ 0 ].time, 0 );
       if (price_line_1> 0.0 )
        {
         if (rates_1[ 0 ].open>price_line_1)
           {
             Alert ( "2" );
            GetDellName(InpName_1);
           }
        }
     }
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int GetDellName( string objName)
  {
   int nHLines= ObjectsTotal ( 0 ,- 1 , OBJ_HLINE ),
       nTrendLines= ObjectsTotal ( 0 ,- 1 , OBJ_TREND ),i;
   for (i= 0 ; i<nHLines; i++)
     {
      objName= ObjectName ( 0 ,i, 0 , OBJ_HLINE );
       ObjectDelete ( 0 ,objName);
     }
   for (i= 0 ; i<nTrendLines; i++)
     {
      objName= ObjectName ( 0 ,i, 0 , OBJ_TREND );
       ObjectDelete ( 0 ,objName);
     }
   return ( false );
  }
//+------------------------------------------------------------------+
 

MT5 설정에 도움이 필요합니다.

1. 문제 MT5에서 데모 계정으로 전환했지만 주문 버튼이 활성화되지 않았습니다. 하단 에 서버와 연결되지 않은 것을 볼 수 있으며 2019 및 2020의 계약 티커가 데이터베이스에서 로드됩니다. 목록에 있지만 실제 계약은 없습니다.

 
gorod258 :
MT5를 처음부터 설정하는 데 도움이 필요합니다.

https://www.metatrader5.com/ru/terminal/help/startworking/settings

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду...
 

미리 설정해 두었는데 어떤 이유로 기능의 일부가 작동하지 않습니다.

1. 문제 MT5에서 데모 계정으로 전환했지만 주문 버튼이 활성화되지 않았습니다. 하단에 서버와 연결되지 않은 것을 볼 수 있으며 2019 및 2020의 계약 티커가 데이터베이스에서 로드됩니다. 목록에 있지만 실제 계약은 없습니다.

도와주시겠어요?

 
SanAlex :

솔직히!? - 몰라! - 그래서, 아침에 자신에게 바쁘지 않는 것보다.

글쎄, 그는 조건없이 모든 것을 삭제할 것입니다)

사유: