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

 
Artyom Trishkin :
터미널에서 표시기를 정확히 어디에서 실행합니까?
내 얘기라면 C:\Users\Tsar\AppData\Roaming\MetaQuotes\Terminal\CE01488447B8E5332C971089AB90, BB에 관한 것이라면 솔직히 어디서부터 시작하는지 모르겠지만 사용하고 인쇄했습니다. 문제(BB 자체에서 4개 이상 -x 기호 칠면조를 제공하는지 확인했습니다)도 BB가 이 폴더에서 가져왔습니다.
 
Павел Козлов :
그래서 나는 이 뉴스를 보기 위해 그의 코드로 올라갔습니다.

나는 모든 사람에 대해 모르지만 칠면조와 전문가가 있는 두 곳이 있습니다. C:\Program Files (x86)\MT4\MQL4\indicators 및 C:\Users\King\AppData\Roaming\MetaQuotes\Terminal \CE01488447B8E5332C971089AB90(이 폴더는 터미널 File-Open 데이터 디렉터리에서 정확히 열립니다) 두 곳에서 코드를 보니 동일합니다. 혹시 내가 또 어디선가 요점을 놓쳤을 수도 있는데, 모르는 사이에 다시 설명할 수 있다. 사용자 정의와 표준의 차이점은 무엇이며 두 옵션을 모두 어디에서 찾을 수 있습니까?

표준 밴드는 BollingerBands라고 하며 사용자 지정 밴드는 다른 위치에 있습니다.


 
Artyom Trishkin :
터미널에서 표시기를 정확히 어디에서 실행합니까?

그가 /portable 모드에 대해 잘 알고 있는지 의심스럽습니다.

 
Alexey Viktorov :

표준 밴드는 BollingerBands라고 하며 사용자 지정 밴드는 다른 위치에 있습니다.


고맙습니다. 그리고 모바일에서 나는 폐하에게 어디에 무엇이 있는지 설명 할 수 없습니다.
따라서 그는 하나를 시작하고 코드가 다른 하나를 본다고 말하려고 했습니다.
 
Alexey Viktorov :

그가 /portable 모드에 대해 잘 알고 있는지 의심스럽습니다.

제가 이 모드를 정말 잘 몰라서 이 문제를 위해 따로 만든 제 토픽에서 제 지식 수준을 공개했고, 제가 멍청해서 죄송합니다만, 저를 생각하시는 것만큼 쉽지가 않았습니다. 그럼에도 불구하고 당신은 나에게 문제를 보여 주었고 이제 나는 그것을 해결하는 방법을 이해하려고 노력할 것입니다. Artem의 조언과 조언에 감사드립니다.
 
Павел Козлов :
제가 이 모드를 정말 잘 몰라서 이 문제를 위해 따로 만든 제 토픽에서 제 지식 수준을 공개했고, 제가 멍청해서 죄송합니다만, 저를 생각하시는 것만큼 쉽지가 않았습니다. 그럼에도 불구하고 당신은 나에게 문제를 보여 주었고 이제 나는 그것을 해결하는 방법을 이해하려고 노력할 것입니다. Artem의 조언과 조언에 감사드립니다.

나는 어떤 식으로든 당신을 무지와 혼동하려는 의도가 없었습니다. Artyom과의 대화, 내 입장에서는 당신이 모르는 것에 대해 묻는 간단한 설명이었습니다. 모른다는 것은 부끄러운 일이 아니며 지극히 정상적인 일입니다.

 
글쎄, 내가 지금 뭘 잘못하고 있는 거지, 나는 iCustom 기능을 마스터했다. 나는 코드를 만들었다(나는 맨 윗줄 을 예로 들었다). 그리고 그것은 여전히 4 개의 문자를 제공합니다. DoubleToString을 통해 5를 제공하지만 실제 데이터가 아닌 헛소리를 제공합니다.
 더블 BUp = iCustom(NULL,0,"밴드",20,0,2,1,1);
도움을 요청합니다. 코드에 대한 도움이 필요합니다. 인쇄물에는 없지만 Bands.ex4 표시기에서 내 표시기(예: 맨 윗줄)로 데이터 변수에 쓰는 것입니다. 변수로 바꾸는 것보다 숫자 값을 사용하는 것이 좋습니다.
 
Павел Козлов :
글쎄, 내가 지금 뭘 잘못하고 있니, 나는 iCustom 기능을 마스터했습니다. 나는 코드를 만들었다(나는 맨 윗줄 을 예로 들었다). 그리고 그것은 여전히 4 개의 문자를 제공합니다. DoubleToString을 통해 5를 제공하지만 실제 데이터가 아닌 헛소리입니다. 도와주세요, 코드를 도와주세요. 인쇄물에는 없지만 Bands.ex4 표시기에서 내 표시기(예: 맨 윗줄)로 데이터 변수에 쓰는 것입니다. 변수로 바꾸는 것보다 숫자 값을 사용하는 것이 좋습니다.

OnTick()이 오늘 작동하지 않기 때문에 코드는 OnInit()에 배치됩니다.


추신: 나는 어떻게든 부주의하게 읽었습니다. 이 문장을 눈치채지 못했다.

변수로 바꾸는 것보다 숫자 값을 사용하는 것이 좋습니다.


그러나 iCustom 번호 또는 변수에 입력한 내용에 따라 달라지는 것은 없습니다.

파일:
 
Павел Козлов :
글쎄, 내가 지금 뭘 잘못하고 있니, 나는 iCustom 기능을 마스터했습니다. 코드를 만들었습니다(저는 맨 위 줄 을 예로 들었습니다). 그리고 그것은 여전히 4 개의 문자를 제공합니다. DoubleToString을 통해 5를 제공하지만 실제 데이터가 아닌 헛소리입니다. 도와주세요, 코드를 도와주세요. 인쇄물에는 없지만 Bands.ex4 표시기에서 내 표시기(예: 맨 윗줄)로 데이터 변수에 쓰는 것입니다. 변수로 바꾸는 것보다 숫자 값을 사용하는 것이 좋습니다.
당신은 잘못 확인하고 있습니다. iCustom, iBand는 반환 값을 반올림하지 않습니다.
   double   BUp = iCustom(NULL,0,"Bands",20,0,2.0,1,1);
   Print(DoubleToString(BUp,16));
 

표시가 그려지지 않는 이유를 알아낼 수 있도록 도와주세요. 결국에는 지그재그 같은 것을 만들고 싶습니다.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property link        ""
#property version    "1.00"
#property strict
#property indicator_chart_window
//--------------------------------
#property indicator_buffers 1        // Количество буферов
#property indicator_color1 Blue     // Цвет линии 0 буфера
double Buf_0[];
double Max_B= 0 ,
Min_B= 10000 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer ( 0 ,Buf_0);                   //Назначение массива буфера
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); //стильлинии
   return ( 0 );
  }
//------------------------------
int start()
  {
   int i;
   int n,
   step= 10 ;
   int Counted_bars;
   double Max_A,
   Min_A;
   Counted_bars= IndicatorCounted ();
   i= Bars -Counted_bars- 1 ;
//--------------------------------------------------------------------------------------------------------------+
   while (i>= 0 ) //цикл, который считает просчитывает значение на i-ом баре               
     {
      Max_A= High [i];                         //присвоили максимальное значение i-ого бара переменной Max_A            
      Min_A= Low [i];                           //присвоили минимальное значение i-ого бара переменной Min_A
       if (Max_A>Max_B)
         Max_B=Max_A;
       if (Min_A<Min_B)
         Min_B=Min_A;
       //------------------------------------------------------------------------------------------------------------- 
       if (i>=step)
        {
         for (n= 0 ;n<step;n++) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
             if ( High [i+n]>Max_A)
              {
               Max_A= High [i+n];
              }
             else
              {
               if ( High [i+n]<Min_A)
                  Min_A= High [i+n];
              }
           }
        }
       if (i<step)
        {
         for (n=step;n> 0 ;n--) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
             if ( High [i-n]>Max_A)
              {
               Max_A= High [i-n];
              }
             else
              {
               if ( High [i-n]<Min_A)
                  Min_A= High [i-n];
              }
           }
        }
       if (Max_A>Max_B)
        {
         Buf_0[i]=Max_A;
        }
       else
        {
         if (Min_A<Min_B)
            Buf_0[i]=Min_A;
        }
      i--;
     }
   return ( 0 );
  }
//+------------------------------------------------------------------+