오류, 버그, 질문 - 페이지 2911

 
DMITRII PECHERITSA :
삼항 연산자로 컴파일 실패
연산자 ?의 컴파일 오류 :


어떠한 제안?
왜요?
https://www.mql5.com/ru/docs/basis/operators/ternary
문서 읽기
 
DMITRII PECHERITSA :
삼항 연산자로 컴파일 실패
연산자 ?의 컴파일 오류 :


어떠한 제안?
왜요?

= 아니지만 ==

 

주어진 범위 내에서 무작위로 숫자를 섞는 방법이 있습니까?

예를 들어, 0에서 9까지의 범위가 있습니다. 혼합이 가능합니까 - 5863014297? 주어진 범위에서 난수를 얻지 않고 혼합하는 것입니다. rand는 적합하지 않습니다.

Документация по MQL5: Математические функции / MathRand
Документация по MQL5: Математические функции / MathRand
  • www.mql5.com
MathRand - Математические функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Lesnikov :

주어진 범위 내에서 무작위로 숫자를 섞는 방법이 있습니까?

예를 들어, 0에서 9까지의 범위가 있습니다. 혼합이 가능합니까 - 5863014297? 주어진 범위에서 난수를 얻지 않고 혼합하는 것입니다. rand는 적합하지 않습니다.

결과 숫자를 문자열로 변환하고 일부 알고리즘에 따라 이 문자열의 문자를 서로 변경한 다음(어떤 알고리즘을 직접 생각해 보십시오) 문자열의 숫자를 다시 double 또는 int로 변환합니다.

 
Alexandr Sokolov :

결과 숫자를 문자열로 변환하고 일부 알고리즘에 따라 이 문자열의 문자를 서로 변경한 다음(어떤 알고리즘을 직접 생각해 보십시오) 문자열의 숫자를 다시 double 또는 int로 변환합니다.

감사합니다. 이것은 옵션입니다!
그리고 범위가 수천 또는 수만 개의 숫자라면?
 
Aleksei Lesnikov :
감사합니다. 이것은 옵션입니다!
그리고 범위가 수천 또는 수만 개의 숫자라면?

문자열은 배열입니다

필요한 수의 배열을 만드십시오

 
여기요!!! 내가 뭔가를 따라잡을 수 없다고 말해))) 개체 목록의 순서 어떤 이유로 개체의 이름을 변경하지 않으면 이 주기를 통해 개체를 선택하고 처리할 때
 for ( int i= 0 ; i < Fibo_Koll; i++)
     {
      n= ObjectName ( 0 ,i, 0 , OBJ_FIBO );

순서가 유지됩니다. 그러나 이러한 기능으로 이름을 변경하면

 bool   F = ObjectSetString ( 0 ,n, OBJPROP_NAME ,NameFiboUp[UP]);
 bool   F = ObjectSetString ( 0 ,n, OBJPROP_NAME ,NameFiboDown[Down]);

다음 개체의 선택은 무작위로 발생합니다 ???

 //+------------------------------------------------------------------+
//|                                                  Fibo_Massiv.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
// Expert initialization function
string NameFiboUp[ 15 ];                               // Объявление массива
string NameFiboDown[ 15 ];                               // Объявление массива   
string NameFibo[ 9 ];                               // Объявление массива   
                         

//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   NameFiboUp[ 1 ]= "FiboUp1 " ;
   NameFiboDown[ 1 ]= "FiboDown1 " ;
   NameFiboUp[ 2 ]= "FiboUp2 " ;
   NameFiboDown[ 2 ]= "FiboDown2" ;
   NameFiboUp[ 3 ]= "FiboUp3" ;
   NameFiboDown[ 3 ]= "FiboDown3 " ;
   NameFiboUp[ 4 ]= "FiboUp4 " ;
   NameFiboDown[ 4 ]= "FiboDown4 " ;
   NameFiboUp[ 5 ]= "FiboUp5" ;
   NameFiboDown[ 5 ]= "FiboDown5 " ;
   NameFiboUp[ 6 ]= "FiboUp6 " ;
   NameFiboDown[ 6 ]= "FiboDown6 " ;
   NameFiboUp[ 7 ]= "FiboUp7 " ;
   NameFiboDown[ 7 ]= "FiboDown7 " ;
   NameFiboUp[ 8 ]= "FiboUp8 " ;
   NameFiboDown[ 8 ]= "FiboDown8 " ;
   NameFiboUp[ 9 ]= "FiboUp9 " ;
   NameFiboDown[ 9 ]= "FiboDown9 " ;
   NameFiboUp[ 10 ]= "FiboUp10 " ;
   NameFiboDown[ 10 ]= "FiboDown10" ;
   NameFiboUp[ 11 ]= "FiboUp11 " ;
   NameFiboDown[ 11 ]= "FiboDown11 " ;
   NameFiboUp[ 12 ]= "FiboUp12 " ;
   NameFiboDown[ 12 ]= "FiboDown12 " ;
   NameFiboUp[ 13 ]= "FiboUp13 " ;
   NameFiboDown[ 13 ]= "FiboDown13" ;
   NameFiboUp[ 14 ]= "FiboUp14 " ;
   NameFiboDown[ 14 ]= "FiboDown14" ;
//---------------------------------------------
NameFiboUp[ 1 ]= "M1 " ;
NameFiboUp[ 2 ]= "M5 " ;
NameFiboUp[ 3 ]= "M15" ;
NameFiboUp[ 4 ]= "H1 " ;
NameFiboUp[ 5 ]= "H4 " ;
NameFiboUp[ 6 ]= "Da " ;
NameFiboUp[ 7 ]= "We " ;
NameFiboUp[ 8 ]= "Mo " ;
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
   int UP= 1 ;
   int Down= 1 ;
   string   nameUP   = "FiboUp" ;
   string   nameDown = "FiboDown" ;
   double FiboDown[ 4 ][ 10 ],FiboUp[ 4 ][ 10 ];   // 2x мерный  массив

   int Fibo_Koll = ObjectsTotal ( 0 , 0 , OBJ_FIBO );     //Запрос колличества объектов Fibo

//_________________________________________________________
   if (Fibo_Koll== 0 ) //Если нет не одного фибо выход        //
       return ;                                               //
//_________________________________________________________//

   string n;
//  ObjectName(0,0,0,OBJ_FIBO); //Вытаскивает имя найденого фибо

   for ( int i= 0 ; i < Fibo_Koll; i++)
     {
      n= ObjectName ( 0 ,i, 0 , OBJ_FIBO );

       //----------------------------------------------------------------------------------------
       double    Fibo_Level_0= ObjectGetDouble (
                                 0 ,           // идентификатор графика
                                n,               // имя объекта
                                 OBJPROP_PRICE ,           // идентификатор свойства
                                 0      // модификатор свойства
                             );


       double    Fibo_Level_1= ObjectGetDouble (
                                 0 ,           // идентификатор графика
                                n,               // имя объекта
                                 OBJPROP_PRICE ,           // идентификатор свойства
                                 1      // модификатор свойства
                             );
       //------------------------------------------------------------------------------------------------------
       if (Fibo_Level_0>Fibo_Level_1)
        {

         //вызов функции расчёта уровня 78.6
         double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
         //--------------------------------------------------------------------
         FiboUp[UP][ 1 ]= 1 ;     // Тип объектов 1 == FiboUp
         FiboUp[UP][ 2 ]=UP;     // Нумерация объектов FiboUp по типу
         FiboUp[UP][ 3 ]=Fibo_78_Up;   // 78.6%
         FiboUp[UP][ 4 ]= 0 ;       // 61.8%
         FiboUp[UP][ 5 ]= 0 ;         // 50%
     //------------------------------------------------------------------
         //Изменение имени объекта
           bool   F = ObjectSetString ( 0 ,n, OBJPROP_NAME ,NameFiboUp[UP]);

         UP++;

        }
       else
        {
         //вызов функции расчёта уровня 78.6
         double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
         //-------------------------------------------------------------------
         FiboDown[Down][ 1 ]= 2 ;     // // Тип объектов 2 == FiboDown
         FiboDown[Down][ 2 ]=Down;     // Нумерация объектов  по типу
         FiboDown[Down][ 3 ]=Fibo_78_Down;   // 78.6%
         FiboDown[Down][ 4 ]= 0 ;       // 61.8%
         FiboDown[Down][ 5 ]= 0 ;         // 50%
         Alert ( "  FiboDown[1][1] = " , FiboDown[ 1 ][ 1 ],
               "  FiboDown[1][3] = " , FiboDown[ 1 ][ 3 ],
               "  FiboDown[2][1] = " , FiboDown[ 2 ][ 1 ],
               "  FiboDown[2][3] = " , FiboDown[ 2 ][ 3 ]);
         //------------------------------------------------------------------
         //Изменение имени объекта
         bool   F = ObjectSetString ( 0 ,n, OBJPROP_NAME ,NameFiboDown[Down]);

         Down++;

        }
     }
//+------------------------------------------------------------------+



   Alert ( "  FiboDown[1][1] = " , FiboDown[ 1 ][ 1 ],
         "  FiboDown[1][3] = " , FiboDown[ 1 ][ 3 ],
         "  FiboDown[2][1] = " , FiboDown[ 2 ][ 1 ],
         "  FiboDown[2][3] = " , FiboDown[ 2 ][ 3 ]);

   Alert ( "  FiboUp[1][1] = " , FiboUp[ 1 ][ 1 ],
         "  FiboUp[1][3] = " , FiboUp[ 1 ][ 3 ],
         "  FiboUp[2][1] = " , FiboUp[ 2 ][ 1 ],
         "  FiboUp[2][3] = " , FiboUp[ 2 ][ 3 ]);


  }

//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
double Function_Up( double a, double b)     // имя функции и список параметров
  {
   double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибо
   double Sum_78  = Sum_100 * 78.6 / 100 ;   //Вычисляем 78.6% В пунктах
   return (Sum_78 + b);           // Вычисляем 78.6% в цене инструмента
  }
//+------------------------------------------------------------------+
double Function_Down( double a, double b)     // имя функции и список параметров
  {
   double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибо
   double Sum_78  = Sum_100 * 21.4 / 100 ;   //Вычисляем 78.6% В пунктах
   return (Sum_78 + a);           // Вычисляем 78.6% в цене инструмента
  }
//+------------------------------------------------------------------+
 

누가 이것을 직면했는지

10승

터미널 빌드 2715

Expert Advisor를 최적화한 후 터미널을 닫은 후 에이전트는 계속 프로세스에 매달려 RAM을 소모합니다.


용량 면에서 램이 아무리 중요해도 게임을 시작하면 이 도미토리 떼가 계속해서 메모리에 접근하기 때문에 내 FPS는 최소 20프레임은 떨어집니다.

컴퓨터에 과부하가 걸리거나 프로세스를 종료하기 위해 하나씩 앉아 있어야합니다 ...

솔직히 말하면 짜증나기 시작합니다.

그것이 버그인지 아니면 너무 잉태되었다고 말하십시오. 오프닝 브로커의 터미널을 제외하고는 다른 것을 넣지 않았습니다. 때때로 업데이트될 때마다 조작을 하지 않았습니다.

 
Kira27 :
여기요!!! 말해봐, 내가 따라잡지 않을거야, 아마))) 어떤 이유로 개체 목록의 순서, 개체의 이름을 변경하지 않으면 이 주기를 통해 개체를 선택하고 처리할 때

순서가 유지됩니다. 그러나 이러한 기능으로 이름을 변경하면

다음 개체의 선택은 무작위로 발생합니다 ???

개체의 이름을 바꾸면 다시 생성되기 때문입니다. 하나는 삭제되고 다른 하나는 생성되며 모든 객체 목록에서 생성 시간 순으로 정렬됩니다.

 
Alexey Viktorov :

개체의 이름을 바꾸면 다시 생성되기 때문입니다. 하나는 삭제되고 다른 하나는 생성되며 모든 객체 목록에서 생성 시간 순으로 정렬됩니다.

정말 감사합니다!!! 그것에 대해 어디에서 읽을 수 있습니까?