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

[삭제]  
DanilaMactep # :
내가 틀리지 않았다면 모든 것이 이 코드로 시작되었습니다 - 내가 기억하는 한 작동하지 않았습니다 ;-)

나는 이미 그것을 당신에게 보여주었습니다. 왜 그것이 당신에게 효과가 없는지 모르겠습니다. 그것은 MT4와 MT5 모두에서 작동합니다.

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

차트를 변경할 수 있는 또 다른 색상이 있습니다.

 //+------------------------------------------------------------------+
//|                                       CHART_COLOR_BACKGROUND.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 color Backclr = clrWhite ; // Цвет фона графика.
sinput color Foreclr = clrBlack ; // Цвет осей, шкалы и строки OHLC графика.
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
//--- переменные для идентификаторов графиков
   long currChart, prevChart = ChartFirst ();
   int i = 0 , limit = 100 ;
   bool errTemplate;
   Print ( "ChartFirst = " , ChartSymbol (prevChart), " ID = " , prevChart);
   while (i < limit) // у нас наверняка не больше 100 открытых графиков
     {
      currChart = ChartNext (prevChart); // на основании предыдущего получим новый график
      errTemplate = ChartBackColorSet(Backclr, prevChart);
      errTemplate = ChartForeColorSet(Foreclr, prevChart);
       if (errTemplate)
        {
         Print ( "Error " , ChartSymbol (prevChart), "-> " , GetLastError ());
        }
       if (currChart < 0 )
         break ;           // достигли конца списка графиков
       Print (i, ChartSymbol (currChart), " ID =" , currChart);
      prevChart = currChart; // запомним идентификатор текущего графика для ChartNext()
      i++; // не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет фона графика.                         |
//+------------------------------------------------------------------+
bool ChartBackColorSet( const color clr, const long chart_ID = 0 )
  {
//--- сбросим значение ошибки
   ResetLastError ();
//--- установим цвет фона графика
   if (! ChartSetInteger (chart_ID, CHART_COLOR_BACKGROUND , clr))
     {
       //--- выведем сообщение об ошибке в журнал "Эксперты"
       Print ( __FUNCTION__ + ", Error Code = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет осей, шкалы и строки OHLC графика.    |
//+------------------------------------------------------------------+
bool ChartForeColorSet( const color clr, const long chart_ID = 0 )
  {
//--- сбросим значение ошибки
   ResetLastError ();
//--- установим цвет осей, шкалы и строки OHLC графика
   if (! ChartSetInteger (chart_ID, CHART_COLOR_FOREGROUND , clr))
     {
       //--- выведем сообщение об ошибке в журнал "Эксперты"
       Print ( __FUNCTION__ + ", Error Code = " , GetLastError ());
       return ( false );
     }
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
 
137 Matrix # :

나는 이미 그것을 당신에게 보여주었습니다. 왜 그것이 당신에게 효과가 없는지 모르겠습니다. 그것은 MT4와 MT5 모두에서 작동합니다.

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

차트를 변경할 수 있는 또 다른 색상이 있습니다.

이것들은 단지 불가항력적인 상황입니다. 제 뇌졸중의 결과입니다. 어딘가에 제가 무언가를 볼 수 없고 그게 전부입니다. 하지만 많은 도움을 주셔서 감사합니다.

[삭제]  
DanilaMactep # :

이것들은 단지 불가항력적인 상황입니다. 제 뇌졸중의 결과입니다. 어딘가에 제가 무언가를 볼 수 없고 그게 전부입니다. 하지만 많은 도움을 주셔서 감사합니다.

코드에 ( .tpl )을 추가할 필요가 없습니다. 이미 작성되어 있습니다.

템플릿 이름만 입력하면 됩니다.

 Template + ".tpl"

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

 sinput string Template           = "ADX" ;           // Имя шаблона(without '.tpl')
      errTemplate = ChartApplyTemplate (prevChart, Template + ".tpl" );
       if (!errTemplate)
        {
         Print ( "Error " , ChartSymbol (prevChart), "-> " , GetLastError ());
        }
 
137 Matrix # :

코드에 ( .tpl )을 추가할 필요가 없습니다. 이미 작성되어 있습니다.

템플릿 이름만 입력하면 됩니다.

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

이 코드를 알아 낸 것 같습니다. 다음 번에 즉시 사용 지침을 첨부하십시오. 그렇지 않으면 반 리터가 없으면 만들 수 없습니다.)))))) ;-) 도움을 주셔서 감사합니다 :-)
 
137 Matrix # :

나는 이미 그것을 당신에게 보여주었습니다. 왜 그것이 당신에게 효과가 없는지 모르겠습니다. 그것은 MT4와 MT5 모두에서 작동합니다.

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

차트를 변경할 수 있는 또 다른 색상이 있습니다.

사샤, 문서의 예나 어린 양의 예를 사용하는 것보다 더 나쁜 것은 생각할 수 없습니다. 게다가 어딘가에서 while 루프의 강제 종료 플래그를 잃어버렸습니다. 일반적으로 ... 단어가 없습니다.
 
DanilaMactep # :
이 옵션은 아무 작업도 수행하지 않습니다. 차트에서 스크립트를 해제하고 아무 일도 일어나지 않습니다.

죄송합니다. 논리적 부정의 표시가 손실되었습니다!

 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 # :
사샤, 문서의 예나 어린 양의 예를 사용하는 것보다 더 나쁜 것은 생각할 수 없습니다. 게다가 어딘가에서 while 루프의 강제 종료 플래그를 잃어버렸습니다. 일반적으로 ... 단어가 없습니다.

예를 들어, 내 작업은 내 작업을 충족시키는 기능을 찾는 것입니다. 검색에서 검색하고 내 작업에 맞는 경우 포함하고 포함된 줄 수에 관계없이 사용합니다.

가장 중요한 것은 기능이 내가 필요로 하는 대로 작동한다는 것입니다.

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

나는 이것을 합니다 - 자기 개발을 위해 그리고 그 이상은 아닙니다. 순전히 나 자신을 위해서입니다. 그리고 누구에게도 쓸 생각은 없다

 
137 Matrix # :

예를 들어, 내 작업은 내 작업을 충족시키는 기능을 찾는 것입니다. 검색에서 검색하고 내 작업에 맞는 경우 포함하고 포함된 줄 수에 관계없이 사용합니다.

가장 중요한 것은 기능이 내가 필요로 하는 대로 작동한다는 것입니다.

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

나는 이 일 을 합니다. 자기 계발을 위해서이며 그 이상은 아닙니다. 순전히 나 자신을 위해서 입니다. 그리고 누구에게도 쓸 생각은 없다

누군가에게 조언을 하면 더 이상 자신을 위한 것이 아닙니다.

특히 이러한 오류의 경우 ... PERIOD_CURRENT는 무엇이며 조건의 결과는 무엇입니까?

       if (TimeFrame != PERIOD_CURRENT )
[삭제]  
Alexey Viktorov # :

누군가에게 조언을 하면 더 이상 자신을 위한 것이 아닙니다.

특히 이러한 오류의 경우 ... PERIOD_CURRENT는 무엇이며 조건의 결과는 무엇입니까?

글쎄, 나는 그것이 작동하는지 모르겠다!

설정에서 복원된 기간에 따라 동일한 차트를 전환합니다.

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

나는 조언을 전혀 하지 않는다! 누군가가 질문을 하면 나는 그 자리에 서서 원하는 결과를 얻으려고 노력한다.

눈치채지 못하셨다면 이 작업을 최선을 다해 완료하고 기성품 스크립트와 함께 게시했습니다. 정확하지 않을 수도 있지만 제 역할을 합니다.

 
Alexey Viktorov # :

누군가에게 조언을 하면 더 이상 자신을 위한 것이 아닙니다.

특히 이러한 오류의 경우 ... PERIOD_CURRENT는 무엇이며 조건의 결과는 무엇입니까?

 if (TimeFrame != PERIOD_CURRENT )

여기에 오류가 표시되지 않습니다.