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

 
Aleksei Stepanenko :

당신은 확인해야합니다, 당신이 거기에 bar_quantity가 있다는 사실이 아닙니다

코드를 변경했지만 여전히 같은 위치의 범위를 벗어났습니다.

 double GetExtremumZigZagPriceHigh( string symbol= "" , ENUM_TIMEFRAMES timeframe= 0 , int extremum_number= 0 ) //,int depth=12,int deviation=5,int backstep=3)
  {
   if (symbol== "" ) //Если symbol = "" , то..
      symbol= Symbol (); //Присвоить переменной symbol значение текущего символа на графике.

//Объявить необходимые переменные:
   double price[];                                                 //Цена экстремума выбранная из массива таймсерии.
//datetime time[];
   int     count;                                                   //Счетчик цикла.
int bars_quantity= 1000 ; //Количество баров на графике.
int extremum_count= 0 ;                                           //Счетчик экстремумов.

   ArraySetAsSeries (price, true );                   //Устанавить флаг, чтобы индексация массива производилась как в таймсериях.
  
   if ( CopyBuffer (handle, 1 , 0 ,bars_quantity,price)<= 0 ) return ( 0 );     //Скопировать в динамический массив price[] цены указанного количества баров.


   for (count= 1 ; count<bars_quantity; count++) //Запустить цикл, который будет бежать по каждому бару.
     {
       if (price[count]!= 0 ) //Если Цена Зигзага есть, то есть не равна нулю, то..
        {
         extremum_count++;         //Увеличить счетчик экстремумов на одну единицу.

         if (extremum_count>extremum_number) //Если счетчик экстремумов превысил значение указанного номера экстремума, то..
             return (price[count]);                 //Вернуть эту цену.
        }
     }
     
//Print("GetExtremumZigZagPrice(): Экстремум ЗигЗага ",extremum_number," не найден"); //А до тех пор, пока ЗигЗаг не показывает цену,
   return ( 0 );                                                                           //Печатать Print, и возвращать ноль.
  }
 

오류가 없다고 해서 전체 데이터 양이 존재하는 것은 아닙니다. bar_quantity는 귀하의 주문일 뿐이며 그것이 줄 것인지는 또 다른 질문입니다.

 int elements= CopyBuffer (handle, 1 , 0 ,bars_quantity,price);
for (count= 1 ; count<elements; count++) 
 
Aleksei Stepanenko :

오류가 없다고 해서 전체 데이터 양이 존재하는 것은 아닙니다. bar_quantity는 귀하의 주문일 뿐이며 그것이 줄 것인지는 또 다른 질문입니다.

감사해요
 

모두에게 좋은 하루!

각 배열 값을 초기화하고 각 반복에서 Print() 함수의 각 배열 요소 값을 인쇄하는 간단한 MQL4 코드가 있습니다. 이 루프가 끝나면 Print() 는 로그에 30번 을 인쇄합니다.

 int P1;
double LoY[ 31 ];
void OnTick ()
{
if (P1== 0 )
{
for ( int r= 0 ; r< 31 ;r++)
{
LoY[r]= 1.6104 +(r*2)*0.0001;
Print ( "-------------------------------------LoY[r]--------------=" ,  LoY[r]);
P1= 1 ;
}
}
}

문제

MQL4 의 언어 구성 또는 위 코드의 MQL4 함수의 도움으로 Print() 함수는 모든 배열 요소 값이 채워진 루프 끝에서 한 번만 인쇄됩니다. 한 줄, 즉 다음 형식을 취합니다.

Print("---LoY[0]--", 1.6104, "---LoY[1]--" , 1.6106,   "---LoY[2]--"   , 1.6108,   "---LoY[3]--"   , 1.6110,   "---LoY[4]--"   , 1.6112, .......   "---LoY[30]--"   , 1.6164 );

그런 코드의 예를 작성해 주시면 감사하겠습니다. 말로만 설명하는 것에 그치지 마세요.
도와 주셔서 감사합니다.

 
string str="";

for(int r=0; r<31;r++)
   {
   LoY[r]=1.6104+r*0.0001;
   str+="--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";
   }
Print(str);
 
ANDREY :

모두에게 좋은 하루!

각 배열 값을 초기화하고 각 반복에서 Print() 함수의 각 배열 요소 값을 인쇄하는 간단한 MQL4 코드가 있습니다. 이 루프가 끝나면 Print() 는 로그에 30번 을 인쇄합니다.

문제

MQL4 의 언어 구성 또는 위 코드의 MQL4 함수의 도움으로 Print() 함수는 모든 배열 요소 값이 채워진 루프의 끝에서 한 번만 인쇄됩니다. 한 줄로, 즉 다음 형식을 취합니다.

Print("---LoY[0]--", 1.6104, "---LoY[1]--" , 1.6106,   "---LoY[2]--"   , 1.6108,   "---LoY[3]--"   , 1.6110,   "---LoY[4]--"   , 1.6112, ............   "---LoY[30]--"   , 1.6164 );

그런 코드의 예를 작성해 주시면 감사하겠습니다. 말로만 설명하는 것에 그치지 마세요.
도와 주셔서 감사합니다.

 int P1 = 0 ; // Несмотря ни на что не забывайте инициализировать переменные
string stroka = "" ;
double LoY[ 31 ];
void OnTick ()
{
if (P1== 0 )
{
for ( int r= 0 ; r< 31 ;r++)
{
LoY[r]= 1.6104 +r* 0.0001 ;
stroka += "---LoY[r] = " + DoubleToString (LoY[r], 4 );
//Print("-------------------------------------LoY[r]--------------=",  LoY[r]);
P1= 1 ;
}
Print (stroka);
}
}
 
Aleksei Stepanenko :

나보다 몇 초 앞서? ))))

 
오늘은 질문하는 도우미가 더 많습니다.
 
Alexey Viktorov :

도와 주셔서 감사합니다

 
Aleksei Stepanenko :

도와 주셔서 감사합니다.