[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 448

 

안녕하세요. idnikator를 작성하는데 문제가 있었는데, 일반적으로 버퍼용 배열이 있는데,

매스1

매스2

그리고 배열의 각 요소에 대한 데이터 계산은 적은 수로 수행됩니다. 즉, 값은 15, 27, 41, 14 등을 얻습니다.

배열의 유형을 int로 설정하고 각 요소를 살펴 보면 배열의 값이 계산된 값과 일치한다는 것이 분명하지만 유형이 Int이면 표시 줄이 표시되지 않습니다. 창문.

배열 유형을 double로 설정하면 21456545454, 43654534532, 24325235232 등과 같이 아무데도 없는 배열에 더 많은 값이 기록됩니다. 계산된 값과 전혀 일치하지 않습니다.

무엇이 문제가 될 수 있습니까?

 

안녕하세요!

이해하도록 도와주세요.

주문을 여는 간단한 스크립트를 작성했습니다(MQL4 튜토리얼에서).

 int start()                                   // Спец. функция start()
  {                                           // Открытие BUY
   OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );
   Alert ( GetLastError ());
   return ;                                   // Выход из start()
  }

이 예에서는 4자의 도구에 대한 코드가 제공됩니다.

나는 점 뒤에 5자리 숫자가 있는 회사의 계정을 가지고 있습니다.

5자 코드를 올바르게 변경하는 방법을 작성해 주세요.

 
sss2019 : 배열의 유형을 int로 설정하고 각 요소를 살펴보면 배열의 값이 계산된 값과 일치하는 것을 알 수 있지만 유형이 Int이면 표시줄이 창에 표시됩니다.

배열 유형을 double로 설정하면 21456545454, 43654534532, 24325235232 등과 같이 아무데도 없는 배열에 더 많은 값이 기록됩니다. 계산된 값과 전혀 일치하지 않습니다.

무엇이 문제가 될 수 있습니까?

텔레파시로 전환해야 합니다. 그러나 실수를 정수로 나눌 때 문제가 불일치에 있을 가능성이 큽니다.
 

안녕하세요, 지표에 대한 이해를 도와주세요. 아이디어는 모스크바 시간 16:00에 미국 세션이 시작되는 것입니다. 임의의 시간대에 촛불 위에 표시가 표시됩니다. datetime 함수에 문제가 있습니다. 튜토리얼을 두 번 이상 다시 읽고, 다른 지표를 살펴보았지만 여전히 이해하지 못했습니다.

파일:
exfbtix.mq4  2 kb
 
Yulia :

안녕하세요, 지표에 대한 이해를 도와주세요. 아이디어는 모스크바 시간 16:00에 미국 세션이 시작되는 것입니다. 레이블은 모든 시간대에 촛불 위에 배치됩니다. datetime 함수에 문제가 있습니다. 튜토리얼을 두 번 이상 다시 읽고, 다른 지표를 살펴보았지만 여전히 이해하지 못했습니다.


#property indicator_chart_window // указываем, что идикатор будет рисоваться в окне, где рисуется график валютной пары
#property indicator_buffers 1 // сколько линий будет рисовать наш индикатор
#property indicator_color1 Lime // какого цвета будет первая линия 
//---- buffers
double Buffer[];

extern int hour = 9 ;

//+------------------------------------------------------------------+
int init()
{
   SetIndexStyle ( 0 , DRAW_ARROW );
   SetIndexArrow ( 0 , 108 );
   SetIndexBuffer ( 0 ,Buffer);  
return ( 0 );
}
//+------------------------------------------------------------------+
int deinit()
{
return ( 0 );
}
//+------------------------------------------------------------------+
int start()
{

int counted_bars= IndicatorCounted (); // сколько баров уже просчитано для начего индикатора
if (counted_bars< 0 ) return (- 1 ); // проверяем ошибки


int i= 0 ;
     while (i< Bars )
         {
         if ( TimeHour (Time[i])==hour)
            {        
            Buffer[i]=High[i]+ 150 * Point ;
            }
         
         i++;
         }

return ( 0 );
}
//+------------------------------------------------------------------+

 
 
대단히 감사합니다. 하지만 약간 잘못되었습니다. 물론 데일리 이상은 제외하고 M1, M5 등의 첫 번째 양초에만 레이블이 필요합니다.
 
Reshetov :
텔레파시로 전환해야 합니다. 그러나 실수를 정수로 나눌 때 문제가 불일치에 있을 가능성이 큽니다.


다음은 코드입니다.

 int lowsum, highsum;
int Mass1[];
int Mass2[];

                         while (start1 < end1 + 1 )
                                {
                                lowsum = lowsum + iVolume ( Symbol (), PERIOD_M1 , start1);
                                start1++;
                                }
                         while (start2 < end2 + 1 )
                                {
                                highsum = highsum + iVolume ( Symbol (), PERIOD_M1 , start2);
                                start2++;
                                }
                        Mass[i] = lowsum;
                        Mass[i] = highsum;
                         Alert (Mass[i], " " , highsum);

결과적으로 경고는 다음 메시지를 표시합니다.

변수에 값이 있는 것을 알 수 있는데 배열에 변수에 값을 할당하는 것은 불가능하고 문제가 무엇인지 이해할 수 없습니다

 
Yulia :
대단히 감사합니다. 하지만 약간 잘못되었습니다. 물론 데일리 이상은 제외하고 M1, M5 등의 첫 번째 양초에만 레이블이 필요합니다.

당신이 그랬던 것처럼 그것은 남아 있습니다
 
sss2019 :

변수에 값이 있는 것을 알 수 있는데 배열에 변수에 값을 할당하는 것은 불가능하고 문제가 무엇인지 이해할 수 없습니다

배열의 크기는 얼마입니까?
 
sss2019 :


다음은 코드입니다.

결과적으로 경고는 다음 메시지를 표시합니다.

변수에 값이 있는 것을 알 수 있는데 배열에 변수에 값을 할당하는 것은 불가능하고 문제가 무엇인지 이해할 수 없습니다


배열의 크기를 지정해야 하지 않습니까?
사유: