[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 430

 

¡¡¡¡¡¡¡¡Media hora ayer, y media hora hoy, y media hora en el foro antes de llegar a !!!!!!!! ¡¡¡¡¡¡¡¡¡¡Gracias!!!!!!!!!!

...también puedes ir así: -Sí, gracias. Estoy bien así, ¡función clara y sencilla!

 
Trendy:
Hola, estoy estudiando el tutorial de MQL4 de Sergey Kovalev y aún no he encontrado cómo acceder a las matrices de series temporales de otros pares de divisas. Es decir, necesito cargar en un EA matrices de series temporales de varios pares de divisas. Sé que se puede acceder a algunos datos mediante la función MarketInfo(), pero el problema es que los ID de las solicitudes no contienen el cierre ni otros parámetros de las series de precios. Por favor, aconsejar donde puedo leer cómo organizar el trabajo (si hay) con arrays-series de tiempo y varios instrumentos, o tal vez la forma de eludir esta limitación.
doble iClose( string symbol, int timeframe, int shift)
Devuelve el valor del precio de cierre de la barra especificada por el parámetro shift del gráfico correspondiente(símbolo,marco temporal). En caso de error, la función devuelve 0. Para obtener más información sobre el error, llame a GetLastError().
Para el gráfico actual, la información sobre los precios de cierre se puede encontrar en la matriz predefinida Close[].
Parámetros:
símbolo - Nombre del símbolo. NULL significa símbolo actual.
marco temporal - Período. Puede ser uno de los marcos temporales de un gráfico. 0 significa el período del gráfico actual.
turno - Índice del valor obtenido de la serie temporal (desplazamiento relativo a la barra actual en el número de períodos especificado hacia atrás).
Ejemplo:
 Print("Barra actual para USDCHF H1: ",iTime("USDCHF",PERIOD_H1,i),", ", iOpen("USDCHF",PERIOD_H1,i),", ", iHigh("USDCHF",PERIOD_H1,i),", ", iLow("USDCHF",PERIOD_H1,i),", ", iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i);

Es así.
 

Hay un indicador compilado en ex4 que es un

una franja de puntos azules y rojos como señal de compra o venta.

Necesito un código para una condición que introduzca una operación cuando el gráfico de barras cambie de color.

Estaría muy agradecido, incluso por un esbozo.

 
Hola amigos. Es necesario implementar lo siguiente: el estocástico cruza algún nivel de arriba a abajo n-número de veces y a condición de que ocurra dentro de un determinado intervalo de tiempo se asigna a la variable un valor (+). Pues si por ejemplo en 30 minutos el estocástico cruza 80 tres veces de arriba a abajo. Gracias de antemano)
 

¡Saludos a todos!

Estoy usando este indicador, pero tiende a congelarse después de cada nueva barra que se abre. Creo que es por el gran número de barras que se recalculan. Intenté limitar el número de barras pero no funciona - el indicador cambia su apariencia. ¿Puede alguien ayudarme con esta función? Se lo agradecería mucho.

Archivos adjuntos:
 
Integer:

Lo he probado. EMA en mql y en dll.

Se nota bastante. Si los cálculos son más complejos, se notará más.


Te lo haré saber. También tengo muchos ciclos ahí.
 

El único captador de beneficios en el EA es el Trailing Stop, que efectivamente cierra las operaciones. No hay StopLoss y TakeProfit separados.

Por supuesto, hay situaciones en las que el EA abre en una dirección, mientras que el mercado va en otra.

En estos casos, las operaciones se cierran con un beneficio mínimo, pero dos operaciones del periodo de prueba se cerraron con pérdidas de -2,40 y -2,50.

En los resultados de la prueba, el StopLoss se fija varios puntos por encima o incluso por debajo del precio de apertura de la operación.

Aquí está el código de arrastre de MacdSample a continuación. Por favor, ayude a entender.

//-------------------------Trailing Stop----------------------------------+
for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
 
skyjet:

Hola...


Probablemente un intercambio.
 
Integer:

Probablemente un intercambio.


La cuestión es que no consigo entender por qué el Trailing Stop cierra una operación antes de que la distancia entre el precio actual y el precio de apertura haya superado el valor del TS, después de que el precio se haya movido en dirección contraria a la apertura y haya vuelto al precio de apertura...

 
Buenas tardes.
Quiero abrir una orden con un volumen de 0,01 en mi cuenta de 12,93 dólares, stop loss y take profit 0, pero el programa dice que no hay suficiente dinero, ¿por qué?