[¡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 216

 
No, lo de las bicicletas no encaja. Tengo que hacer una corrección horaria: la diferencia entre las zonas horarias de dos terminales diferentes. Es cuestión de horas. Yo mismo buscaré el fallo.
 
Aleksander:
al inicio - llama a la función para comprobar si hay una orden de compra en el bucle de órdenes SellStop... y eliminarla - si no hay ninguna orden de compra entre las órdenes abiertas...
No entiendo la frase "Laorden de compra está presente en el bucle de la orden SellStop ".
 

ver...

Ronda de órdenes de juego (inicio)

tomamos el pedido

- Si se trata de un SellStop (recuerde su número mágico - también es un ticket de orden de compra {

a través de

El bool OrderSelect( int index, int select, int pool=MODE_TRADES)


comprobamos si la orden existe... - esta es su orden de compra...

Si no está, eliminamos la orden SellStop actual

}

} Fin del bucle de pedido...

 
TheXpert:

InitsializeRealMasterOrders -- busca un fallo aquí.

Y aquí hay algo más - no para hacer una bicicleta - https://docs.mql4.com/ru/convert/timetostr



Sigue siendo un fallo. En la subrutina el código lee los datos de las líneas del documento de texto:

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

La hora de apertura del pedido es el sexto parámetro de la línea. Fue leído en la variable de tipo datetime por los comandos:

Stroka=FileReadString(FileHandle);// Tiempo de apertura
r_master_OpenTime[i]=StrToTime(Stroka);// Hora de apertura

Como resultado, obtuvimos un valor Dios sabe qué en la variable r_master_OpenTime[i]. Pero en cuanto cambié su tipo de datetime a int, todo está bien. Llevo más de cinco años programando con mql4 y todavía no puedo dejar de preguntarme... :)

 
Aleksander:

ver...

Ronda de órdenes de juego (inicio)

tomamos el pedido

- Si se trata de un SellStop (recuerde su número mágico - también es un ticket de orden de compra {

a través de

El bool OrderSelect( int index, int select, int pool=MODE_TRADES)


comprobamos si la orden existe... - esta es su orden de compra...

si no está allí - entonces borre la orden SellStop actual

}

Fin del bucle de pedido...

Escribí esta tontería

  int      i, k=OrdersTotal();
  
   for (i=0; i<k; i++)
 if(OrderType()==OP_SELLSTOP)
    if(OrderMagicNumber()==ticket)
 if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  if(OrderType()==OP_BUY)return(-1); 
      else
        OrderDelete(OrderTicket());
Спасибо вроде работает))
 

drknn: Все равно глюк. В подпрограмме код считывает данные из строк текстового документа:

4;NZDUSD;98537467;1;0.5;1340809155;0;0.7881;0;0.7939;0;0
4;NZDUSD;98537450;1;0.5;1340809147;0;0.788;0;0.7939;0.787;0

La hora de apertura del pedido es el sexto parámetro de la cadena. Se leyó en la variable de tipo datetime por comandos:

Stroka=FileReadString(FileHandlе);// Время открытия
r_master_OpenTime[i]=StrToTime(Stroka);// Время открытия

Como resultado, la variable r_master_OpenTime[i] contendría un valor sin importancia. Pero en cuanto cambié su tipo de datetime a int, todo está bien. Llevo más de cinco años programando con mql4 y todavía no puedo dejar de preguntarme... :)

Desde aquí
datetime StrToTime(string value)
Convierte una cadena que contiene la hora y/o la fecha en el formato "aaaa.mm.dd [hh:mi]" en un número de fecha-hora (número de segundos transcurridos desde el 01.01.1970)
El formato de los datos de entrada no coincide con el formato esperado
 

Por favor, aconseja lo que hay que hacer si:

En el probador funciona bien, todo según lo previsto, pero en el realsk no abre la transacción.

P.D. Realmente necesito ayuda, es una cuestión de vida o muerte

 
Gek34:

Buenos días a todos.

He intentado escribir un indicador, parece que funciona, pero sólo en el historial dibuja como estaba previsto y luego cuando entran nuevas cotizaciones dibuja una máscara habitual.

Se adjunta el código:

int start()
{
int counted_bars=IndicatorCounted();
int i,n;
double Stark=0;
//----
i=Bars-counted_bars-1;//+50;
// n=Bars-counted_bars-1;
while(i>=0)
{
//----

double Ma=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i);
//double Ma1=iMA(NULL,0,PerMa,Shift,MODE_EMA,PRICE_CLOSE,i+1);
if(Stark+Step*Point<Ma)Stark=Ma;
if(Stark-Step*Point>Ma)Stark=Ma;
ABuf[i]=Stark;

//----
i--;
}
return(0);
}


Por favor, ayúdenme a arreglarlo para que siga dibujando pasos.

Se lo agradecería mucho.

Gek.

Dame todo el código del indicador
 
qué ocurre for (f=1;f<Bars;f++)
{
Precio1 =(iClose(Symbol_1,0,0) - iClose(Symbol_1,0,f)) / MarketInfo(Symbol_1, MODE_POINT)
Precio2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,f)) / MarketInfo(Symbol_2, MODE_POINT);
Spread = Precio1 - Precio2;
Print ("Price1="+Price1, " Price2="+Price2);
if (Spread==0){t=f; break;}
}
Precio12 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,t)) / MarketInfo(Symbol_1, MODE_POINT);
Precio22 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,t)) / MarketInfo(Symbol_2, MODE_POINT);
Spread2 = Precio12 - Precio22;


if (MathAbs(Spread2) >= razdvizka && Spread2 < 0) { abre la operación }


Quiero fijar la barra en la que el spread era igual a cero y controlar el spread a partir de ella

 
DanLett:

Por favor, aconseja lo que hay que hacer si:

En el probador funciona bien, todo según lo previsto, pero en el realsk no abre la transacción.

P.D. Realmente necesito ayuda, pregunta de vida o muerte

¿Pueden los asesores negociar?
Razón de la queja: