Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1338
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Plantearé la pregunta de forma más correcta.
Hay un bloque de código que explica al Asesor Experto cuántas operaciones debe abrir. Se ve así
int OPEN=1;
if(PedidosTotal())
OPEN=0; // no se pueden abrir más órdenes
if(OPEN==1)
{
//abrir aquí
}
El problema es que abre el número necesario de tratos (1 en este ejemplo) para todos los símbolos. Y tengo que explicarle
que necesita para abrir este número de operaciones en el instrumento ACTUAL . Algo como _Symbol o Symbol (). ¿Cómo se puede hacer? Creo que la solución es sencilla.
Plantearé la pregunta de forma más correcta.
Hay un bloque de código que explica al Asesor Experto cuántas operaciones debe abrir. Se ve así
int OPEN=1;
if(PedidosTotal())
OPEN=0; // no se pueden abrir más órdenes
if(OPEN==1)
{
//abrir aquí
}
El problema es que abre el número necesario de tratos (1 en este ejemplo) para todos los símbolos. Y tengo que explicarle
que necesita para abrir este número de operaciones en el instrumento ACTUAL . Algo como _Symbol o Symbol (). ¿Cómo se puede hacer? Creo que la solución es sencilla.
Hace saltar por los aires un montón de tratos, y en una venta
bueno hay dos opciones:
1. mostrar todo el código
2. unirse al club de telépatas
bueno hay dos opciones:
1. mostrar todo el código
2. unirse al club de telépatas:)
:)
He descubierto cómo abrir tanto la compra como la venta. Pero el número de ofertas no se abre en cada tictac
int inicio()
{
double a=iOpen(NULL,PERIOD_D1,0);
doble d=_ORDEN*0,00001;
doble c=d+1;
doble s=c*a;
double limit= NormalizeDouble(s,_Digits);
// Imprimir("nivel de límite= ",límite);
doble e=_STOP*0.00001;
doble n=e+1;
doble m=n*a;
double SL= NormalizeDouble(m,_Digits);
//Print("nivel de parada= ",SL);
doble p=_TP*0,00001;
doble f=p+1;
doble z=f*a;
double TP= NormalizeDouble(z,_Digits);
double w=iOpen(NULL,PERIOD_D1,0);
doble q=_ORDEN*0,00001;
doble j=q+1;
doble v=w/j;
double limit1= NormalizeDouble(v,_Digits);
// Imprimir("nivel de límite= ",límite);
doble k=_STOP*0.00001;
doble y=k+1;
doble u=w/y;
double SL1= NormalizeDouble(u,_Digits);
//Print("nivel de parada=",SL);
doble g=_TP*0,00001;
doble _f=g+1;
doble _m=w/_f;
double TP1= NormalizeDouble(_m,_Digits);
if(Hora()==Nac)
{
if(iOpen(NULL,PERIOD_D1,0)<iOpen(NULL,PERIOD_D1,1))
{
if(!isTradeToDay(Symbol()))
{
int ticket1=OrderSend(Symbol(),OP_SELLSTOP,1.5,limit1,3,SL1,TP1,NULL,0,0,clrRed); //abrir aquí
}
}
if(iOpen(NULL,PERIOD_D1,0)>iOpen(NULL,PERIOD_D1,1))
{
if(isTradeToDay(Symbol()))
{
int ticket=OrderSend(Symbol(),OP_BUYSTOP,1.5,limit,3,SL,TP,NULL,0,0,0,clrBlueViolet); //abrir aquí
}
}
}
if(Hora()==Kon)
{
resultado bool;
error int;
//----
while(PedidosTotal()>0)
{
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY)
result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS),3,CLR_NONE);
if(OrderType()==OP_SELL)
result=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
if(OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
OrderDelete(OrderTicket());
if(resultado!=TRUE)
{
error=GetLastError();
Print("ÚltimoError = ",error, ",Symbol());
}
si no
error=0;
}
si no
Print("Error al seleccionar el pedido ", GetLastError());
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
return(0);
}
Aquí está el código sin ninguna variable declarada.
el código debe ser insertado Alt+S
y ¿dónde está la función?
¿cómo lo has compilado? ¿no hay errores?
hay que insertar el código Alt+S
y ¿dónde está la función?
¿cómo lo has compilado? ¿no hay errores?
La función está en la parte inferior. La compilación no presenta errores. La parte vendedora logró ajustar las aperturas de una operación en un instrumento específico, incluso si hay abiertas en otros
instrumentos. Pero el lado de la bahía dispara oficios en cada garrapata y eso es todo
hay que insertar el código Alt+S
y ¿dónde está la función?
¿cómo lo has compilado? ¿no hay errores?
Por el momento el código es así. El lado de la venta está bien, pero el lado de la compra cada tick es una operación
en el lado de la compra se debería hacer lo mismo
lo mismo debería hacerse en el lado de la compra
No encuentro lo que hay que cambiar en la función isTradeToDay para que sea igual en el lado de la compra que en el de la venta. Todavía la parte de compra no funciona :(