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
dasio Ya está haciendo un bucle con todas las horas del día actual. Puse el iClose() y el iOpen() sólo como un ejemplo de una llamada de un marco de tiempo diferente de 1 hora. Si quieres acceder a un día diferente al actual entonces sustituye el "0" de la fecha startTime=iTime(NULL,PERIOD_D1,0); por el día que desees que se recojan los datos
Gracias.
Tal vez tengo que estudiar.
No entiendo como puedo hacer cálculos separados para la vela de las 00:00 - 01:00 - 02:00 etc.
Lo siento
Problemas de señalización
Mladen
Gracias, he mirado de cerca....Im todavía experimentar el code.I será notificar cuando a través de.
dasio
Esta parte
establece la i en el turno de la primera vela horaria en el día especificado (por eso se añadió datetime startTime=iTime(NULL,PERIOD_D1,0); para averiguar la hora de inicio del día) después de eso hará un bucle a través de cada valor de la barra de 1 hora hasta que el día siga siendo el mismo (por ejemplo, el viernes no hará un bucle de 24 veces, sino de 22 o 23 dependiendo de su corredor)
Si usted necesita sentir alguna matriz que tiene que ser hecho un poco diferente Ilet mí ahora uf que era su idea)
Gracias.
Tal vez tengo que estudiar.
No entiendo como puedo hacer cálculos separados para velas 00:00 - 01:00 - 02:00 etc.
Lo siento¿Cómo hacer una parada experta?
Hola codificadores,
¿Cómo codificar algunas líneas de codificación extra para que un Experto se detenga después de una operación ganadora?
Los pips están en la bolsa, entonces hacer las paradas de Expertos ...
Muchas gracias
Tomcat98
dasio
Esta parte
establece la i en el turno de la primera vela horaria en el día especificado (por eso se añadió datetime startTime=iTime(NULL,PERIOD_D1,0); para averiguar la hora de inicio del día) después de eso hará un bucle a través de los valores de cada barra de 1 hora hasta que el día siga siendo el mismo (por ejemplo, el viernes no hará un bucle de 24 veces, sino de 22 o 23 dependiendo de su corredor)
Si necesitas sentir algún array que se tenga que hacer de forma un poco diferente déjame saber uf esa era tu idea)Gracias,
Estoy entendiendo un poco más.
Sin embargo lo necesito por ejemplo.
Debo asociar a las variables algo así:
(vela 00:00 ; Variable = Close+High
vela 01:00 ; Variable1 = Close+Open
vela 02:00 ; Variable2 = alta+baja;
Y así sucesivamente para todas las velas horarias del día.
Así que las variables están definidas como dobles.
Después tengo que hacer algún cálculo matemático con la variable y asociar el resultado a un buffer (no es un problema )
El problema para mi es la asociación de variables ....
Otro problema...estoy tratando de estudiar la programación y a veces (solo a veces...eheh) necesito ayuda.
Si tengo un ea que coloca dos ordenes pendientes como puedo codificar si quiero que cuando se abra una orden pendiente se elimine la otra orden pendiente?
Gracias
Tienes que utilizar 2 bucles:
Primero tienes que contar las órdenes para saber si alguna de las órdenes pendientes se ha convertido en una orden "normal" (por lo que tienes que hacer un recuento regular de las órdenes que tienen tipos OP_BUY u OP_SELL y, si quieres, contar también el resto de órdenes).
Si hay órdenes abiertas, entonces tiene que hacer un bucle de nuevo y eliminar todas las órdenes que no sean de tipo OP_BUY u OP_SELL.
El código podría ser algo así:
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
}Otro problema...estoy tratando de estudiar la programación y a veces (solo a veces...eheh) necesito ayuda.
Si tengo un ea que coloca dos ordenes pendientes como puedo codificar si quiero que cuando una orden pendiente se abra la otra orden pendiente debe ser eliminada?
GraciasCerrar todas las posiciones de venta o todas las posiciones de compra (cuando se alcanza el objetivo de beneficio)
Hola a todos .. soy nuevo en FX y EA. He tratado de encontrar un EA para "cerrar todas las ventas" o "cerrar todas las compras" cuando se alcanza el objetivo, pero no pude encontrar. Sólo he encontrado cerrar todas las ventas o todas las compras sin el "HIT TARGET o PROFIT". Es posible si alguien puede ayudarme a crear 1 EA con las siguientes características
1)Cerrar todas las ventas si el beneficio alcanza el objetivo X.
2)Cerrar todas las compras si el beneficio alcanza el objetivo X.
3)Incluir trailing stop (Si es posible, si no se puede no hay problema)
4) No cerrar si la equidad o el nivel de margen es inferior a X% si cerrar todas las compras o cerrar todas las ventas (Si es posible, si no puede no hay problema)
Nota:
Si no hay 4 es bastante difícil de codificar por lo que sólo no 1, 2 y 3 en un EA.
Si no hay 4 y 3 es difícil, así que sólo no hay 1 y 2 en un EA
Si sigue siendo difícil, cree los números 1 y 2 por separado.
Estaría muy agradecido si alguien pudiera proporcionarme lo anterior.
Gracias de antemano
Hola a todos .. im nuevo en FX y EA. He tratado de encontrar un EA para "cerrar todas las ventas" o "cerrar todas las compras" cuando se alcanza el objetivo, pero no pude encontrar. Sólo he encontrado cerrar todas las ventas o todas las compras sin el "HIT TARGET o PROFIT". Esposible si alguien puede ayudarme a crear 1 EA con las siguientes características:-
1)Cerrar todas las ventas si el beneficio alcanza el objetivo X.
2)Cerrar todas las compras si el beneficio alcanza el objetivo X.
3)Incluir trailing stop (Si es posible, si no puede no hay problema)
4)No cerrar si el nivel de equidad o margen es menor al X % si se cierran todas las compras o se cierran todas las ventas (Si es posible, si no puede no hay problema)
Nota:
Si no hay 4 es bastante difícil de codificar por lo que sólo no 1, 2 y 3 en un EA.
Si no hay 4 y 3 es difícil, así que sólo no hay 1 y 2 en un EA
Si sigue siendo difícil, cree los números 1 y 2 por separado.
Estaría muy agradecido si alguien pudiera proporcionarme lo anterior.
Gracias de antemanoHola Pipsmonitor,
Tal vez encontró algo aquí en esta página https://www.mql5.com/en/forum/181179 también hizo una búsqueda en Google en la barra de cabecera del foro utilizado cerrado en el beneficio encontrado algunos allí puede ser capaz de utilizar, también podría tratar de una búsqueda de trailing Eas, saber de un Ema trailing y BBand parada trailing Ea.
Hola,
Estoy tratando de fusionar estos dos códigos pero tengo problemas con ellos.
Necesito que cuando una orden pendiente se llene la otra debe ser cancelada.
Gracias por su disponibilidad
int pending =0;
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
opened++;
else pending++;
}
if (opened>0 && pending>0)
{
for(i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() !=Symbol()) continue;
if(OrderMagicNumber()!=Magic) continue;
if(OrderType()!=OP_BUY && OrderType()!=OP_SELL)
OrderDelete(OrderTicket());
}
} [/PHP]
[PHP] extern int Magic = 68415;
extern int Orario_Inizio = 0;
extern int Orario_Fine = 6;
extern int Buffer = 0;
extern double Lotti = 0.1;
extern int TakeProfit = 10;
extern int StopLoss = 50;
double Massimo;
double Minimo;
int BarCount;
int BarStart;
int BarShift;
double MinLot;
double LotSize;
int i;
int ticket;
string Status;
string BuyStatus1;
string SellStatus1;
double Range;
string CommentoRange;
double pipMultiplier = 1;
int init()
{
}
int start()
{
if (Digits==3 || Digits==5)
{pipMultiplier = 10;}
else {pipMultiplier = 1; }
double TakeProfit1 = TakeProfit*Point*pipMultiplier;
double StopLoss1 = StopLoss*Point*pipMultiplier;
double Buffer1 = Buffer*Point*pipMultiplier;
double StopLossPrice = NormalizeDouble(StopLoss1,Digits);
double TakeProfitPrice = NormalizeDouble(TakeProfit1,Digits);
double BufferPrice = NormalizeDouble(Buffer1,Digits);
//CALCOLA LE BARRE DEL RANGE
if(Orario_Inizio>Orario_Fine)
{
BarCount=24+Orario_Fine-Orario_Inizio;
}
if(Orario_Inizio<Orario_Fine)
{
BarCount=Orario_Fine-Orario_Inizio;
}
//CALCOLA IL MASSIMO E IL MINIMO DEL RANGE
if(Hour()>=Orario_Fine)
{
BarStart=Hour()-Orario_Fine;
BarShift=BarStart+BarCount;
Minimo=iLow(NULL,PERIOD_H1,BarStart);
Massimo=0;
for(i=BarStart;i<=BarShift;i++)
{
Massimo=MathMax(Massimo,iHigh(NULL,PERIOD_H1,i));
Minimo=MathMin(Minimo,iLow(NULL,PERIOD_H1,i));
Range=(Massimo-Minimo)/Point;
}
}
else
{
Massimo=0;
Minimo=0;
return(0);
}
//CONTROLLA SE E' L'ORARIO PER POTER TRADARE
if(Hour()==Orario_Fine && OrdersTotal()<2)
{
//CONTROLLA SE IL MASSIMO E' STATO ROTTO. CONDIZIONE BUY
double OpenPriceBuy = NormalizeDouble((Massimo+BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_BUYSTOP,Lotti,OpenPriceBuy,0,OpenPriceBuy-StopLossPrice,OpenPriceBuy+TakeProfitPrice,NULL,Magic,0,Blue);
//CONTROLLA SE IL MINIMO E' STATO ROTTO. CONDIZIONE SELL
double OpenPriceSell = NormalizeDouble((Minimo-BufferPrice),Digits);
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lotti,OpenPriceSell,0,OpenPriceSell+StopLossPrice,OpenPriceSell-TakeProfitPrice,NULL,Magic,0,Red);
if (ticket != -1)
return(0);
}
}