Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1676

 
Alexey Viktorov #:

Si necesita cerrar 0,3 y luego 0,7 del 1er lote, es más fácil abrir dos órdenes con diferentes despegues.

Esto no es conveniente, en mi sistema de cuero cabelludo tienes que seguir activamente las operaciones. + puede haber impulsos, y abrir desde diferentes ventanas o cambiar mucho en segundos es una actividad así :) Es más fácil abrir 1 lote, y luego arreglar parcialmente. Pero no se fija manualmente, sino por niveles de precios dados (precio). Si trabajas con 3 Takei, tendrás que tocar el piano al abrir los tratos.
 
TranceFM #:
No es conveniente, en mi sistema de cuero cabelludo tienes que seguir activamente las operaciones. + puede haber impulsos, y abrir desde diferentes ventanas o cambiar de lote en segundos es una actividad así :) Es más fácil abrir 1 lote, y luego arreglar parcialmente. Pero no se fija manualmente, sino por niveles de precios dados (precio). Si trabaja con 3 Takei, tendrá que tocar el piano al abrir las operaciones.
Entonces pida un Asesor Experto
 
MakarFX #:
Entonces pida un asesor.

Entonces, ¿no hay ninguno preparado? De acuerdo. ¿Cuánto costaría un búho como éste?

 

En el guión.

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  
  pi.come(arr,res);
  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

funciona correctamente.

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: Alerta: Destructor

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: uninit reason 0

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 2

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 66

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 65

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 9

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 7

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 4

2021.10.14 17:24:29.321 Eye_12 GBPUSD,M5: 6

2021.10.14 17:24:28.209 Eye_12 GBPUSD,M5: inicializado

2021.10.14 17:24:28.209 Eye_12 GBPUSD,M5: Alerta: Constructor

Las repeticiones se eliminan de la matriz. En owt, si array.

int arr[]= {6,4,6,7,9,65,66,2,2,9,7,7};

es dinámico y aumenta, también funciona correctamente, pero si disminuye, empieza a mentir.

 

No sé con qué fidelidad he reproducido

#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//обьявим класс
class Сleaner
 {
 public:     

         Сleaner() { Alert("Конструктор");
          }
           ~Сleaner() { Alert("Деструктор"); }
  void come(int &array[],int &re[]){ 
        int AS=ArraySize(array);
        int n=0;    
  for(int i=0; i<AS; i++) {
    if(ArraySearch(re, array[i])==-1) {
      n++;
      ArrayResize(re,n);
      re[n-1]=array[i];
     }
   }
 }
 void sleep() { Sleep(1000); }
private:
          int ArraySearch(int& m[], int e)
       {
        for(int i=0; i<ArraySize(m); i++) {
        if(m[i]==e) return(i);
//        Print(" e =",e,", ArraySize(m) =",ArraySize(m)," ,m[i] =",m[i]," ,i =",i );
       }
  return(-1);
    }
 };
Сleaner pi;
int arr[]= {6,6,2};
int res[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   arr[0]= 6;
   arr[1]= 6;

  pi.come(arr,res);
//  pi.sleep();
  for(int z=0;z<ArraySize(res);z++)
  Print(res[z]);
   
  }
//+------------------------------------------------------------------+

pero ese es exactamente el resultado en el búho

2021.10.14 21:11:34.802 Oko_12 GBPUSD,M5: Alerta: Destructor

2021.10.14 21:11:34.802 Eye_12 GBPUSD,M5: uninit reason 0

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: 2

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: 6

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: inicializado

2021.10.14 21:11:34.523 Eye_12 GBPUSD,M5: Alerta: Constructor


 
Hola a todos, señor desarrollador experimentado, ¿podría aconsejar a un principiante? Estoy interesado en el proceso de empaquetar el MQL4 Expert Advisor en un archivo ex4 para subirlo a Market si tengo un indicador personalizado conectado a través de iCustom (y el propio indicador también está conectado a otro indicador, y este último a su vez está conectado a la biblioteca). Me pregunto si hay una manera fácil de trasladar todo esto a un archivo o tendré que integrarlo todo directamente en el código del EA.
 
Aleksandr Kononov indicador personalizado conectado a través de iCustom (y el propio indicador también está conectado a otro indicador, y este último a su vez está conectado a la biblioteca). Me pregunto si hay una manera fácil de trasladar todo esto a un archivo o tendré que integrarlo todo directamente en el código del EA.

tienen que integrar todo

 
Aleksandr Kononov indicador personalizado conectado a través de iCustom (el propio indicador también está conectado a otro indicador, y este último a su vez está conectado a la biblioteca). Me pregunto si hay una manera fácil de trasladar todo esto a un archivo o tendré que integrarlo todo directamente en el código del EA.

Conectar a través de un recurso

 
Vitaly Muzichenko #:

Conectar a través de un recurso

Gracias por leer🤜🤛
 
ENUM_POSITION_TYPE type = PositionGetInteger(POSITION_TYPE);
¿Por qué el compilador da la advertencia de conversión implícita de enum?
Документация по MQL5: Торговые функции / PositionGetInteger
Документация по MQL5: Торговые функции / PositionGetInteger
  • www.mql5.com
PositionGetInteger - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5