[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 193

 
olis:

Hola,

Por favor, dame el ejemplo más fácil para abrir una orden (inmediatamente, sin ningún tipo de if).
El tutorial es muy complicado.

EnviarPedido()

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Función básica utilizada para abrir una posición o colocar una orden pendiente.
Devuelve el número de billete asignado a la orden por el servidor de comercio, o -1 en caso de fallo. Para obtener más información sobre el error, debe llamar a la función GetLastError().
Notas.
Cuando se abre una orden de mercado (OP_SELL u OP_BUY), sólo se pueden utilizar como precio de apertura los últimos precios Bid (para vender) o Ask (para comprar). Si la operación se realiza para un instrumento financiero, diferente del actual, entonces para obtener las últimas cotizaciones de este instrumento, se debe utilizar la función MarketInfo() con el parámetro MODE_BID o MODE_ASK. No puede utilizar un precio estimado o no normalizado. Si el precio de apertura solicitado no estaba en el flujo de precios o el precio solicitado no está normalizado según el número de decimales, se generará el error 129 (ERR_INVALID_PRICE). Si el precio de apertura solicitado está muy desfasado, se generará un error 138 (ERR_REQUOTE) independientemente del valor del parámetro de deslizamiento. Si el precio solicitado está desfasado pero sigue presente en el flujo de precios, la posición se abrirá al precio actual y sólo si el precio actual entra en el rango de precio+deslizamiento.

Los precios StopLoss y TakeProfit no deben colocarse demasiado cerca del mercado. La distancia mínima del stop en pips puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. El error 130 (ERR_INVALID_STOPS) se genera en caso de paradas erróneas o no normalizadas.

Al colocar una orden pendiente, el precio de apertura no puede estar demasiado cerca del mercado. La distancia mínima del precio pendiente del precio actual del mercado en puntos también puede obtenerse utilizando la función MarketInfo() con el parámetro MODE_STOPLEVEL. Si el precio de apertura de la orden pendiente es incorrecto, se generará el error 130 (ERR_INVALID_STOPS).

En algunos servidores comerciales se puede establecer una prohibición de vencimiento de órdenes pendientes. En este caso se generará un error 147 (ERR_TRADE_EXPIRATION_DENIED) al intentar establecer un valor distinto de cero en el parámetro de caducidad.

En algunos servidores comerciales se puede establecer un límite en el número total de órdenes abiertas y pendientes. Si se supera este límite, no se abrirá una nueva posición (no se establecerá ninguna orden pendiente) y el servidor de operaciones devolverá el error 148 (ERR_TRADE_TOO_MANY_ORDERS).
Parámetros:
símbolo - Nombre de un instrumento financiero negociado.
cmd - Operación comercial. Puede ser cualquiera de los valores comerciales.
volumen - Cantidad de lotes.
precio - Precio de apertura.
deslizamiento - Máximo deslizamiento de precios permitido para las órdenes de mercado (órdenes de compra o venta).
stoploss - El precio de cierre de una posición cuando se alcanza la pérdida (0 si no hay pérdida).
Aprovechar el beneficio - El precio de cierre de una posición cuando se alcanza el nivel de rentabilidad (0 si no hay nivel de rentabilidad).
comentario - Ordene el texto de los comentarios. La última parte del comentario puede ser modificada por el servidor de comercio.
magia - Número mágico de la orden. Puede utilizarse como identificador definido por el usuario.
caducidad - Hora de vencimiento de la orden pendiente.
color_flecha - Color de la flecha de apertura en el gráfico. Si el parámetro está ausente o su valor es CLR_NONE, la flecha de apertura no se muestra en el gráfico.
 
ULAD:

No sé cómo calcular el tiempo de vida desde la formación del patrón hasta 0 bar.

Si el patrón existe y no hay una referencia dura de precio y tiempo.

El patrón no siempre existe. Se formó en algún momento. Aquí hay un enlace a la hora de su formación y la hora de la barra actual o a la barra de su formación y la barra actual. ¿Puedes encontrar la diferencia entre la formación del patrón y la hora actual?
 
olis:

Hola,

Por favor, dame el ejemplo más sencillo para abrir una orden (inmediatamente, sin ningún tipo de if).
El libro de texto es muy complicado.


//--------------------------------------------------------------------
// simpleopen.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                                  // Спец. функция start()
  {                                          // Открытие BUY
   OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
   return;                                   // Выход из start()
  }
//--------------------------------------------------------------------
 
Roll:


Gracias, ¡funciona!
 

Estoy tratando de entender un ejemplo del libro de S.K., rocseparate.mq4 Expert Advisor Inicio una prueba, mostrar un gráfico. En la parte inferior hay una ventana rocseparada, pero está vacía. Por favor, aconsejar cómo hacer un indicador dibujado en la ventana principal? El código es como en el libro:

//-------------------------------------------------------------- 5a --
   double L_1=iCustom(NULL,0,"rocseparate",H,P,B,A,1,0);
   double L_5=iCustom(NULL,0,"rocseparate",H,P,B,A,5,0);
//-------------------------------------------------------------- 5b --
   if (L_5<=-Level && L_1>L_5)
     {
      Opn_B=true;                               // Критерий 
 
ScioMe:

Estoy tratando de entender un ejemplo del libro de S.K., rocseparate.mq4 Expert Advisor Inicio una prueba, mostrar un gráfico. En la parte inferior hay una ventana rocseparada, pero está vacía. Por favor, aconsejar cómo hacer un indicador dibujado en la ventana principal? El código como en el libro:


Tutorial:
"...El indicador personalizado rocseparate.mq4 de la tasa de cambio del precio en el marco temporal actual, en el más próximo y en el siguiente... es un análogo completo del indicador roc.mq4, pero se muestra en una ventana independiente. Esto ha permitido calcular los valores de las líneas de velocidad para los diferentes marcos temporales, no con respecto a la referencia MA, sino con respecto a la línea cero horizontal".

 
Roll:


Tutorial:
".. .El indicador personalizado rocseparate.mq4 de la tasa de cambio del precio en el marco temporal actual, el más próximo y el siguiente se muestra en una ventana separada... es el análogo completo del indicador roc.mq4, pero se muestra en una ventana independiente. Esto ha permitido calcular los valores de las líneas de velocidad para los diferentes marcos temporales, no en relación con la referencia MA, sino en relación con la línea cero horizontal".


Sí, totalmente correcto: lo suelto en el gráfico, rocseparate aparece en la parte inferior en su propia ventana. Pero cuando hago clic en "Abrir gráfico" después de la prueba, la ventana del gráfico está vacía. No entiendo qué pasa.
 
A continuación, pulse Fin en el teclado (EA shared.mq4) y observe su indicador (la ventana no está vacía).
 

Buenas tardes, señores.

Sigo necesitando su consejo sobre esta cuestión:

Estoy escribiendo un EA y me encontré con un problema. Según TS, el Asesor Experto debe realizar cálculos cada minuto durante un número determinado de minutos. Después de eso, todos los datos deben ser reiniciados y los cálculos deben comenzar desde el principio.

Y así el ciclo por ciclo. El ciclo de tiempo es de 1 a 60 minutos. Por favor, aconséjeme cómo describir esto correctamente en el código. ¿Cómo puedo hacer que el siguiente código sea cíclico y con la capacidad de establecer la duración del ciclo de 1 a 60 minutos?

Hasta ahora, mi bucle de 5 minutos tiene este aspecto:

if ((TimeMinute(TimeCurrent()))==time1)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time2)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time3)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time4)

Price20=koef_10;

if ((TimeMinute(TimeCurrent()))==time5)

Price20=koef_10;


Le agradecería su ayuda.

 
extralifes:

Buenas tardes, señores.

Sigo necesitando su consejo sobre esta cuestión:

Estoy escribiendo un EA y me encontré con un problema. Según TS , el Asesor Experto debe realizar cálculos cada minuto durante un número determinado de minutos. Después de eso, todos los datos deben ser reiniciados y los cálculos deben comenzar desde el principio.

Y así el ciclo por ciclo. El ciclo de tiempo es de 1 a 60 minutos. Por favor, aconséjeme cómo describir esto correctamente en el código. ¿Cómo puedo hacer que el siguiente código sea cíclico y con la capacidad de establecer la duración del ciclo de 1 a 60 minutos?

Hasta ahora mi bucle de 5 minutos se parece a esto :


Le agradecería su ayuda.

Este es su puesto repetido.

Me parece que la gente no entiende lo que pide.

intente reformular las frases resaltadas

Razón de la queja: