[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 329

 
Zhunko:

Desgraciadamente, todas las variantes sin DDE están condenadas a perder ticks de los paquetes. Se pueden recuperar por aproximación, pero ésta no es muy buena.

Hay una opción para recuperar vía DDE directamente desde Exel.


Vadim, gracias. Voy a echar un vistazo.
 
granit77:
1. https://www.mql5.com/ru/articles/1368
2. https://www.mql5.com/ru/forum/100028/page58#94290

Y en la primera aproximación, eso es suficiente.

Víctor, gracias de todo corazón. Definitivamente, estudiaré este artículo y las recomendaciones de Rosh.
 

¡Hola a todos! Intento #3 :))

¡¡¡Estimados profesionales!!!

Mira, por favor, no entiendo cuál es el problema. Al intentar colocar una orden pendiente, se colocan dos órdenes.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 orden pendiente de compra

Alert ("Error en el ciclo",GetLastError()); Alert ("TIK2= ",Ticket2;)

Dormir(500);

}

Gracias de antemano a todos los que respondan.

 
demlin:

¡Hola a todos! Intento #3 :))

¡¡¡Estimados profesionales!!!

Mira, por favor, no entiendo cuál es el problema. Al intentar colocar una orden pendiente, se colocan dos órdenes.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 orden pendiente de compra

Alert ("Error en el ciclo ",GetLastError()); Alert ("TIK2= ",Ticket2;)

Dormir(500);

}

Gracias de antemano a todos los que respondan.


Añadir banderas ( presencia de órdenes pendientes) en condición al número de ticket, es decir, primero bandera - falsa, luego en condición - mientras ticket < 0 y bandera==falsa - poner pendiente y poner bandera en verdadera. Después de que la orden pendiente se dispare en el mercado o se borre la orden pendiente - restablecer la bandera a falso. Inténtalo de esta manera...
 

Hay una cuestión: cómo mostrar el precio en los bordes de la línea de tendencia. O tener el marcador de precio derecho (izquierdo) magnetizado a la Línea de Tendencia o a la barra Baja (Alta), como lo hace la propia Línea de Tendencia. Me gustaría utilizar las herramientas gráficas estándar de MT4. Pero si esto no es posible, tal vez necesito un indicador que adjunte las etiquetas de precio de la derecha (izquierda) a todas las líneas de tendencia en la ventana (utilizo 4 líneas de tendencia y todas necesitan precios en los bordes). La línea de tendencia no tiene rayo y los bordes están unidos a las barras altas o bajas, naturalmente de forma manual. Una cadena de cuatro líneas de tendencia es similar al indicador ZigZag. No tengo experiencia en la redacción de indicadores. De hecho, estoy escribiendo por ello. No tengo experiencia en la redacción de indicadores.

 
demlin:

¡Hola a todos! Intento #3 :))

¡¡¡Estimados profesionales!!!

Mira, por favor, no entiendo cuál es el problema. Al intentar colocar una orden pendiente, se colocan dos.

while (Ticket2<0)

{

RefreshRates();

Ticket2=OrderSend(Symbol(),2,Lots_New*2,price,2,0,TP,"",MN); //1 orden pendiente de compra

Alert ("Error en el ciclo ",GetLastError()); Alert ("TIK2= ",Ticket2;)

Dormir(500);

}

Gracias de antemano si me permite responder.

La lógica es muy sencilla:

Si no hay ninguna orden pendiente con el tipo correcto, entonces establézcala. ESO ES TODO...

 

Tengo una pregunta, hay un determinado indicador que da una señal cuando se alcanza una determinada condición,

Mi pregunta es cómo hacer que abra una orden en lugar de una señal,

Este es el código de la señal y el mensaje

if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
         Alert("Открываем Селл ",Symbol()," ",Period());
        alertTag = Time[0];

He intentado poner sólo un lugar para que la alerta se abra no funciona,

Si tengo un EA con descripción de lo que hay que adjuntar del indicador estaré muy agradecido.

 
FoxUA:

Tengo una pregunta, hay un determinado indicador que da una señal cuando se alcanza una determinada condición,

Mi pregunta es cómo hacer que abra una orden en lugar de una señal,

Este es el código de la señal y el mensaje

if (SoundON==true && i==1 && CrossUp[i] > CrossDown[i] && alertTag!=Time[0]){
         Alert("Открываем Селл ",Symbol()," ",Period());
        alertTag = Time[0];

He intentado poner sólo un lugar para que la alerta se abra no funciona,

Si no supiera cómo hacer un pedido, no daría una alerta y nunca daría una alerta.

El indicador no puede abrir órdenes. Este es el trabajo de la EA. Si este código pertenece al indicador, tenemos que escribir los datos en su buffer creado especialmente para estos datos. Cuando no hay señal, se escribe un cero o un valor vacío en el buffer. Cuando llega una señal (como en tu ejemplo), en lugar de Alert(); escribe el valor en el buffer.
Por ejemplo:
+1 para comprar y
-1 para vender.
A continuación, lea los datos del búfer en el Asesor Experto utilizando iCustom();.

O escriba todas estas condiciones directamente en el Asesor Experto.

 

¡Buenos días!

Por favor, avise, abro el pedido todos los días

Magic_b++; OrderSend (Symbol(), OP_BUY, Loot,Ask, 50, SL, TP,NULL,Magic_b,0,L) (o Magic_s++; OrderSend (Symbol(), OP_BUY, Loot,Bid, 50, SL, TP,NULL,Magic_s,0,L; dependiendo de las condiciones);

Quiero cerrar una orden abierta cada día a una hora determinada. Para ello utilizo el siguiente esquema (excepto los viernes)

if ((DayOfWeek () == 1) | (DayOfWeek () == 2) | (DayOfWeek () == 3) | (DayOfWeek () == 4 ))

{if (((timecur > "23:59:00") && (timecur < "23:59:04")) && (iOpen(Symbol (), PERIOD_H4, 0)

!= iOpen(Symbol (), PERIOD_D1, 0))

{if (iOpen(Symbol (), PERIOD_H4, 0) > iOpen(Symbol (), PERIOD_D1, 0))

{ Alerta ("el precio es mayor");

for(i=Total de pedidos()-1;i>=0;i--)

{ OrderSelect(i, SELECT_BY_POS

if(OrderMagicNumber()==Magic_b)

{Alert ("orderticket",OrderTicket();

OrderClose(OrderTicket(),Loot,Bid,80,R);

Alerta ("GetLastError");

Control = 0;

Magic_b++;

} } }

if (((timecur > "22:59:00") && (timecur < "22:59:04")) && (iOpen(Symbol (), PERIOD_H4, 0)

!= iOpen(Symbol (), PERIOD_D1, 0))

{if (iOpen(Symbol (), PERIOD_H4, 0) < iOpen(Symbol (), PERIOD_D1, 0))

{ Alerta (" el precio es mayor");

for(i=Total de pedidos()-1;i>=0;i--)

{ OrderSelect(i, SELECT_BY_POS

if(OrderMagicNumber()==Magic_s)

{Alert ("orderticket",OrderTicket();

OrderClose(OrderTicket(),Loot,Ask,80,R);

Alert(GetLastError);

Control = 0;

Magic_s++;

} } } } }

Pero en el probador por alguna razón no se cierra todos los días (por ejemplo, en la prueba de 23.08-23.10 2010) cerró sólo 27.09. Y 24.08, a pesar del hecho de que no implementado nytp, no SL- el comercio no se cierra. ya tercer día dolor de cabeza, no puedo pensar lo que está mal. por favor ayuda

P.D. la condición de entrar siempre coincide con una condición de cerrar (excepto por la hora por supuesto, se puede admitir que aquí la hora de octubre 22:01:00)

 
¿Tal vez porque el alcance es demasiado pequeño, sólo 4 segundos? En este momento hay pocos ticks en la barra y es posible que el probador no llegue al intervalo establecido.
Razón de la queja: