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

 
rriaz # :
더 많은 순간이 있습니다. 아버지는 비밀번호를 모른다고 하십니다! (내일은 그와 함께 할 것입니다. 스크린 샷이나 다른 것을 찍을 수 있습니다. 프로그램은 전화에만 설치됩니다.

죄송합니다. 오히려 이들은 사기꾼이며 법 집행 기관에 가야 합니다.

 
Alexey Viktorov # :

어쩌면 이것이 문제 입니까? 리소스를 주기적으로 삭제해 보세요.

하지만 동적으로 생성해야 합니다.

즉, 먼저 리소스를 삭제한 다음 다시 생성합니다. 유일한 문제는 그것이 어떻게 작동할지 모른다는 것 입니다. 예, 그리고 그것이 전혀 될 것인지 여부. 시도해야합니다…

도움이되지 않았습니다. ResourceCreate는 새로운 이미지 전용 파일을 생성하므로 표시기가 표시되지 않습니다. 내가 알기로는 주기적으로 메모리를 지우면 됩니다. ZeroMemory로 무언가를 생각해 내고자 노력할 것입니다.

 

안녕하세요. 모든 차트에 원하는 템플릿을 설치하기 위한 스크립트에 따르면 이것이 이야기입니다.

아래의 스캘핑 화면 템플릿을 사용하여 tf n1 에서 모두 다른 8개의 차트를 엽니다.

스케일링 템플릿이 있는 8개의 오픈 차트

가장 왼쪽 차트( AUD / USD )에 모든 차트를 d1으로 전송하는 스크립트와 중기 템플릿을 넣었습니다. 코드는 아래에 있습니다.

 string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl" ; //ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА
void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 )
   {
     if ( ChartPeriod (prevChart) != PERIOD_D1 ) // ЕСЛИ ПЕРИОД ГРАФИКА НЕ Д1
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_D1 ); // УСТАНАВЛИВАЕМ ПЕРИОД ГРАФИКА КАК Д1
       ChartApplyTemplate (prevChart, tplName); // И УСТАНАВЛИВАЕМ НА ГРАФИК ШАБЛОН СРЕДНЕСРОКА
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/


중기 템플릿은 스크립트가 던진 가장 왼쪽 차트를 제외한 모든 차트로 변경되었습니다.

다음으로, 차트를 h1 및 스캘핑 템플릿으로 변환하기 위한 스크립트를 맨 왼쪽 차트에 가져와 넣습니다. 아래 스크립트 코드

+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string tplName = "FIBOmAGIC СКАЛЬПИНГ.tpl" ;
void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 && IsStopped ())
   {
     if ( ChartPeriod (prevChart) != PERIOD_H1 )
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_H1 );
       ChartApplyTemplate (prevChart, tplName);
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


모든 것이 명확해 보입니다. 스캘핑 템플릿이 모든 차트에 적용됩니다. 하지만 한 가지가 있습니다. 하나를 두 번 던지면   그리고 가장 왼쪽 차트에 동일한 스크립트가 표시되면 8개 차트 중 5개 차트가 aud / usd 도구가 됩니다.

동일한 스크립트를 두 번 적용하면 차트의 일부가 단일 도구가 됩니다.

하나의 스크립트를 두 번 던지지 않는 것을 제외하고 왜 이런 일이 발생하고 어떻게 피합니까?

 
DanilaMactep # :

안녕하세요. 모든 차트에 원하는 템플릿을 설치하기 위한 스크립트에 따르면 이것이 이야기입니다.

아래의 스캘핑 화면 템플릿을 사용하여 tf n1 에서 모두 다른 8개의 차트를 엽니다.

가장 왼쪽 차트( AUD / USD )에 모든 차트를 d1으로 전송하는 스크립트와 중기 템플릿을 넣었습니다. 코드는 아래에 있습니다.


중기 템플릿은 스크립트가 던진 가장 왼쪽 차트를 제외한 모든 차트로 변경되었습니다.

다음으로, 차트를 h1 및 스캘핑 템플릿으로 변환하기 위한 스크립트를 맨 왼쪽 차트에 가져와 넣습니다. 아래 스크립트 코드


모든 것이 명확해 보입니다. 스캘핑 템플릿이 모든 차트에 적용됩니다. 하지만 한 가지가 있습니다. 하나를 두 번 던지면   그리고 가장 왼쪽 차트에 동일한 스크립트가 표시되면 8개 차트 중 5개 차트가 aud / usd 도구가 됩니다.

하나의 스크립트를 두 번 던지지 않는 것을 제외하고 왜 이런 일이 발생하고 어떻게 피합니까?

이렇게 시도

 void OnStart ()
 {
   long prevChart = ChartFirst ();
   while (prevChart >= 0 && IsStopped ())
   {
     //if(ChartPeriod(prevChart) != PERIOD_H1)
       ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), PERIOD_H1 ); // или PERIOD_D1
       ChartApplyTemplate (prevChart, tplName);
    prevChart = ChartNext (prevChart);
   }
 } /******************************************************************/
/*****************************End program****************************/
 
Alexey Viktorov # :

이렇게 시도

이 옵션은 아무 작업도 수행하지 않습니다. 차트에서 스크립트를 해제하고 아무 일도 일어나지 않습니다.
 
DanilaMactep # :
이 옵션은 아무 작업도 수행하지 않습니다. 차트에서 스크립트를 해제하고 아무 일도 일어나지 않습니다.

그리고 변수 선언

 string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl" ; //ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА

우연히 삭제?

 
Alexey Viktorov # :

그리고 변수 선언

우연히 삭제?

삭제하면 컴파일러는 미확인 변수라고 외칠 것입니다. 하지만 이제 다시 시도 할 것입니다 ...
 
Alexey Viktorov # :

그리고 변수 선언

우연히 삭제?

재확인했다. 변수가 제거되지 않았습니다. 나는 당신의 버전을 넣을 것입니다. 나는 컴파일하고 스크립트는 아무것도하지 않습니다.
[삭제]  
DanilaMactep # :
이 옵션은 아무 작업도 수행하지 않습니다. 차트에서 스크립트를 해제하고 아무 일도 일어나지 않습니다.

그게 당신을 위해 작동하지 않습니다?

 //+------------------------------------------------------------------+
//|                                           ChartApplyTemplate.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link        " https://www.mql5.com "
#property version    "1.00"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//----
sinput string Template           = "ADX" ;           // Имя шаблона(without '.tpl')
sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT ; // Период
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   long currChart, prevChart = ChartFirst ();
   int i = 0 , limit = 100 ;
   bool errTemplate;
   while (i < limit)
     {
      currChart = ChartNext (prevChart);
       if (TimeFrame != PERIOD_CURRENT )
        {
         ChartSetSymbolPeriod (prevChart, ChartSymbol (prevChart), TimeFrame);
        }
      errTemplate = ChartApplyTemplate (prevChart, Template + ".tpl" );
       if (!errTemplate)
        {
         Print ( "Error " , ChartSymbol (prevChart), "-> " , GetLastError ());
        }
       if (currChart < 0 )
         break ;
       Print (i, ChartSymbol (currChart), " ID =" , currChart);
      prevChart = currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
 
137 Matrix # :

그게 당신을 위해 작동하지 않습니다?

내가 틀리지 않았다면 모든 것이 이 코드로 시작되었습니다. 제가 기억하는 한 작동하지 않았습니다. ;-) 그리고 코드에서 템플릿 이름을 붙일 위치를 따라잡지 못했습니다. 일반적으로 어떤 종류의 주석이 밝혀졌습니다 ...