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

 
좋은 오후입니다! 알려주세요... 마지막 빌드로 업데이트한 후 "SmoothAlgorithms"에서 오류가 발생하기 시작했습니다. 그리고 평균 sma, lwma, parma, vidya가 작동을 멈췄습니다. 이 줄에서 맹세합니다. "'SmoothAlgorithms.mqh'(3394,9)의 범위를 벗어난 배열"입니다. 어떻게 고치는 지? 고맙습니다!
파일:
 
007yurik :
좋은 오후입니다! 알려주세요... 마지막 빌드로 업데이트한 후 "SmoothAlgorithms"에서 오류가 발생하기 시작했습니다. 그리고 평균 sma, lwma, parma, vidya가 작동을 멈췄습니다. 이 줄에서 맹세합니다. "'SmoothAlgorithms.mqh'(3394,9)의 범위를 벗어난 배열"입니다. 어떻게 고치는 지? 고맙습니다!
그의 도서관의 토론 페이지에서 저자에게 그것에 대해 쓰십시오.
Библиотеки: SmoothAlgorithms
Библиотеки: SmoothAlgorithms
  • 2017.01.31
  • www.mql5.com
SmoothAlgorithms: Автор: Nikolay Kositsin...
 
Artyom Trishkin :
그의 도서관의 토론 페이지에서 저자에게 그것에 대해 쓰십시오.
고마워, 하지만 그는 아무 대답도 하지 않았다.진실은 다른 주제에 있고, 나는 제안된 주제에서 시도할 것이다.
 

열거 요소로 숫자 값을 사용할 필요가 있습니다.

enum ENUM_HOURS
{
 0,
 1,
 ..,
 23
};

이 방법으로는 할 수 없습니다. 식별자를 컴파일하는 동안 오류가 발생했습니다. 어떻게든 돌아다닐 수 있습니까(숫자 값만 남김)?

 
Juer :

열거 요소로 숫자 값을 사용할 필요가 있습니다.

이 방법으로는 할 수 없습니다. 식별자를 컴파일하는 동안 오류가 발생했습니다. 어떻게든 돌아다닐 수 있습니까(숫자 값만 남김)?

 //+------------------------------------------------------------------+
enum ENUM_HOURS
  {
   HOUR_0,   // 0
   HOUR_1,   // 1
   HOUR_2,   // 2
   HOUR_3,   // 3
   HOUR_4,   // 4
   HOUR_5,   // 5
   HOUR_6,   // 6
   HOUR_7,   // 7
   HOUR_8,   // 8
   HOUR_9,   // 9
   HOUR_10, // 10
   HOUR_11, // 11
   HOUR_12, // 12
   HOUR_13, // 13
   HOUR_14, // 14
   HOUR_15, // 15
   HOUR_16, // 16
   HOUR_17, // 17
   HOUR_18, // 18
   HOUR_19, // 19
   HOUR_20, // 20
   HOUR_21, // 21
   HOUR_22, // 22
   HOUR_23  // 23
  };
//+------------------------------------------------------------------+
 

이 기호 <> 가 의미하는 바가 무엇인지 문서에 대한 링크를 제공할 수 있습니까?

_GlobalVariableGet < string > ( "ResourceName" )
 

어떤 식으로든 최적화할 매개변수 목록을 프로그래밍 방식으로 설정할 수 있습니까?

문제는 나에게 선택지가 많다는 것이다. 수천. 나는 그것들을 별도의 프로그램에 넣었다. EA는 외부 파일을 통해 초기화하는 동안 로드합니다. 이제 이러한 매개변수를 최적화하는 작업이 있습니다.

즉, 예를 들어 파일의 값과 범위로 최적화할 매개변수 목록입니다. 거기에서 읽고 결과를 거기에 쓰십시오.

 

Expert Advisor나 스크립트가 없는 차트를 닫는 함수를 작성하고 있습니다. ChartGetString 함수를 사용하여 차트에서 Expert Advisor의 이름과 스크립트를 얻습니다. 거기와 거기에서 나는 그것을 비워 닫습니다. 그리고 조건별로 차트를 닫는 선에서 바로 문제가 있습니다. 조건은 절대 충족되지 않습니다. 다음은 코드입니다.

 if ( ExpertName == "" && ScriptName == "" ){ ChartClose ( prevChart );}
 else Print ( "Не закрываем график . Имя эксперта =" ,ExpertName, "= ScriptName =" ,ScriptName, "=" );

다음은 인쇄 출력입니다.

Не закрываем график . Имя эксперта == ScriptName ==

나는 당신이 이것으로 조건을 변경할 수 있음을 이해합니다.

 StringLen (ExpertName) == 0 && StringLen (ScriptName) == 0

문자열 변수를 빈 문자열과 비교하는 것이 어떻게 올바른가요?

 

안녕하세요! 데이터 처리 및 리소스 저장을 위해 .mqh를 만들었습니다. 모든 것이 작동하지만 뉘앙스가 있습니다. 표시기를 컴파일하면 .mqh가 재설정되고 전체 프로세스가 저장을 위해 다시 정렬됩니다. 목표는 리소스에 데이터가 있는 한 재설정 되지 않는 것입니다. 오류는 어디에 있으며 어떻게 수정합니까?

 // Сохранение данных
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166
#include <GlobalVariables.mqh> 

const RESOURCEDATA< MqlTick >m_Resource( "::" + __FILE__ ); // Ресурс для передали данных (тики)
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CMyTicks
  {
protected :
public :
   //+------------------------------------------------------------------+
   //| Constructor.                                                     |
   //+------------------------------------------------------------------+      
   void CMyTicks()
     {
      _GlobalVariableSet( "ResourceName" ,m_Resource.GetFullName()); // Записали в глобальную переменную полное имя ресурса (read-only)      
     }
   //+------------------------------------------------------------------+
   //| Destructor.                                                     |
   //+------------------------------------------------------------------+      
   void ~CMyTicks()
     {
       //_GlobalVariableDel("ResourceName");
     }

   //+------------------------------------------------------------------+  
   void CollectTicks()
     {
       MqlTick m_Ticks[];
       CopyTicks ( _Symbol ,m_Ticks, COPY_TICKS_ALL , 0 , 5 ); // Сформировали данные
      m_Resource=m_Ticks; // Записали данные
     }
  };
//+------------------------------------------------------------------+
 // Получение данных
#property indicator_chart_window
#property indicator_plots 0

#include <Test_Keep_Info_13.mqh>
CMyTicks  Test;

#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166
#include <GlobalVariables.mqh> 

static const RESOURCEDATA< MqlTick >Resource(_GlobalVariableGet< string >( "ResourceName" )); // Создали ресурс на основе переданного в глобальной переменной полного имени  
MqlTick Ticks[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total, const int prev_calculated, const int , const double &[])
  {
   if (prev_calculated== 0 )
     {
      Resource.Get(Ticks); // Считали данные из ресурса.
       ArrayPrint (Ticks);   // Распечатали полученные данные

       if ( ArraySize (Ticks)< 1 )
        {
         Test.CollectTicks();
         Print ( " SAVE TICKS " );
        }

      Resource.Get(Ticks); // Считали данные из ресурса.
       ArrayPrint (Ticks);   // Распечатали полученные данные
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
pivomoe :

문자열 변수를 빈 문자열과 비교하는 것이 어떻게 올바른가요?

두 개의 일반 빈 문자열("" 및 NULL)이 있습니다. 그리고 사용자 정의 빈 문자열이 있을 수 있습니다.

사유: