Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 159

 

Hola estimados programadores por favor ayúdenme a retocar este EA.



1. Apertura de pedidos de forma automática.
2.Cuando llega a + abre una orden en el mismo lado con el lote inicial.
3. Cuando llega al - invierte la orden (abre la orden en el sentido en que se recibió).
Archivos adjuntos:
 
¡Saludos, colegas!
¿Pueden informar si alguien se ha encontrado con este problema?
1) Probado en la cooperativa MT4. Hay Error a la orden modificar1 en el registro. ¿Cuál es la razón del error al pedir modify1 y cómo corregirlo?
2) No puedo instalar y ejecutar el EA. Muevo el EA a la ventana del gráfico y no se pega a la esquina superior derecha, o se queda pegado, pero no arranca. En lugar de un colobo, ¡es un rectángulo! (Ver la captura de pantalla)
3) ¿Cómo puedo instalar correctamente MT4 en mi ROSA (Linux)? Tengo MT4 instalado en c/Archivos de programa (x86)/MT4 . ¿Tengo que copiar los archivos de c/Archivos de programa (x86)/MT4 a c/users/xxl/AppData/ y a _c/users/xxl/Application Data/MetaQuotes/? Si es así, ¿qué archivos debo poner en las carpetas LocalLow y Roaming y cuáles en las carpetas Terminal y WebInstall?
Gracias por la respuesta detallada. )

 

Hola a todos. Esta es la conclusión. Hay un punto de intersección del caimán con la barra N. Tenemos que encontrar el ángulo entre el caimán y, por ejemplo, el mínimo de la primera barra desde este punto de intersección. La dificultad estriba en que tenemos dos valores incompatibles: el número de barras y el precio. Quería, como sugirió alguien, bailar sobre el tamaño de una celda del gráfico. Pero si el número de barras del cuadrado es proporcional al cambio de escala, el precio no tiene esa proporción.

Tengo dos preguntas basadas en lo anterior:

1. Quizás alguien haya conocido o conozca la solución a este problema.

2. ¿El Asesor Experto trabaja con una determinada escala del gráfico, o sólo con el precio?

 
Alexander Dubovik:

Una observación más para los desarrolladores.

La documentación de la construcción del lenguaje typedef (así como del propio typedef) es desconcertante.

typedef char My_Char; - no compila.

De la documentación:"La palabra clave typedef en C++ le permite crear tipos de datos personalizados .....". Disculpe, pero ¿POR QUÉ haría una referencia a C++ en la documentación sobre MQL, si de hecho MQL sólo contiene declaración de punteros a funciones?

En MQL4/5 typedef está castrado y sirve sólo para declarar punteros a funciones y no sirve para nada más.


typedef int (*TFunc)(int,int);

int add(int x,int y) 
{
    return(x+y); 
}

void OnStart()
{
    TFunc pfunc = add;   
    Print(pfunc(4,5));    
}
 
Alex Pirate:

Hola a todos.

Tengo un EA sencillo, es simple, algo está mal, me da un error... Quiero adjuntarle un arrastre pero ni siquiera se abre... dice que - el valor de retorno de 'OrderSend' debe ser comprobado

¿por qué sigue comprobando? ¿qué pasa? parece que los programadores y los que son buenos para ayudar a todo el mundo aquí.... Qué pena ((!)

https://translate.google.ru/?hl=ru&tab=TT#en/ru/return%20value%20of%20'OrderSend'%20debe%20estar%20marcado

Google Переводчик
  • translate.google.ru
Бесплатный сервис Google позволяет мгновенно переводить слова, фразы и веб-страницы с английского на более чем 100 языков и обратно.
 
Alex Pirate:

Hola a todos.


 
Artyom Trishkin:


Gracias, soy consciente de ello... esa es la pregunta traducida que hice al final... no es lo que dice me pregunto... ¿por qué? ¿qué hay de malo en el código? ¿qué he escrito mal?

 
Alex Pirate:

Gracias, soy consciente de ello... Esa es la pregunta traducida que hice al final... Me pregunto por qué... ¿Qué hay de malo en el código?

 
Artyom Trishkin:

extern int    MA_1_Period   = 22;
extern int    MA_1_MAShift  = 1;
extern int    MA_1_Method   = 1;
extern int    MA_1_Price    = 1;
extern int    MA_1_Shift    = 0;

extern int    MA_2_Period   = 55;
extern int    MA_2_MAShift  = 1;
extern int    MA_2_Method   = 1;
extern int    MA_2_Price    = 1;
extern int    MA_2_Shift    = 0;

extern int    MA_3_Period   = 163;
extern int    MA_3_MAShift  = 1;
extern int    MA_3_Method   = 1;
extern int    MA_3_Price    = 1;
extern int    MA_3_Shift    = 0;

extern double lot           = 0.1;
extern int    TP            = 60;
extern int    SL            = 40;
extern int    Slippage      = 5;
extern int    Magic         = 888;

int timeprev;

//+------------------------------------------------------------------+
int init()
{ 
   if (Digits == 3 || Digits == 5)
   {
     TP           *= 10;
     SL           *= 10;
     Slippage     *= 10;
     
   }

   return(0); 
}
//+------------------------------------------------------------------+
int deinit() 
{
   return(0);
}
//+------------------------------------------------------------------+

int start()
{
   if (timeprev == Time[0]) return(0);
   timeprev = Time[0];
   
   double MA_1_1 = iMA(Symbol(), 0, MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   double MA_1_2 = iMA(Symbol(), 0, MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   
   double MA_2_1 = iMA(Symbol(), 0, MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   double MA_2_2 = iMA(Symbol(), 0, MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   
   double MA_3_1 = iMA(Symbol(), 0, MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
   double MA_3_2 = iMA(Symbol(), 0, MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )
   
      {
         OrderSend(Symbol(), OP_BUY , lot, Ask, Slippage, SL, TP, "", Magic,0, Green);
      }
// продаём
   
   if (CountBuy() + CountSell() == 0 && MA_1_1 < MA_1_2 && MA_2_1 < MA_2_2 && MA_3_1 < MA_3_2 )
   
      {
         OrderSend(Symbol(), OP_SELL, lot, Bid, Slippage, SL, TP, "", Magic,0, Red);
      }
          
   return(0);
}
//+------------------------------------------------------------------+
int CountBuy()
{
   int count = 0;
   
   for (int i = OrdersTotal() - 1; i >= 0; i --)
   {
      if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
      {
        if (OrderSymbol() == Symbol() && OrderMagicNumber() ==  Magic && OrderType() == OP_BUY)
           count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
int CountSell()
{
   int count = 0;
   
   for (int i = OrdersTotal() - 1; i >= 0; i --)
   {
      if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES))
      {
        if (OrderSymbol() == Symbol() && OrderMagicNumber() ==  Magic && OrderType() == OP_SELL)
           count++;
      }
   }
   return(count);
}
//+------------------------------------------------------------------+
 
Alex Pirate:

¿Qué comparas con qué?

   double MA_1_1 = iMA(Symbol(), 0, MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   double MA_1_2 = iMA(Symbol(), 0, MA_1_Period, MA_1_MAShift, MA_1_Method, MA_1_Price, MA_1_Shift);
   
   double MA_2_1 = iMA(Symbol(), 0, MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   double MA_2_2 = iMA(Symbol(), 0, MA_2_Period, MA_2_MAShift, MA_2_Method, MA_2_Price, MA_2_Shift);
   
   double MA_3_1 = iMA(Symbol(), 0, MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
   double MA_3_2 = iMA(Symbol(), 0, MA_3_Period, MA_3_MAShift, MA_3_Method, MA_3_Price, MA_3_Shift);
     
 //+------------------------------------------------------------------+  
 // покупаем
 
   if (CountBuy() + CountSell() == 0 && MA_1_1 > MA_1_2 && MA_2_1 > MA_2_2 && MA_3_1 > MA_3_2 )

Si 0 > 0 y 0 > 0 y 0 > 0