Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 756
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
Estoy acostumbrado a mi propio sistema de archivo.
Buenas tardes.
He escrito un programa de ejercicios. Por alguna razón no funciona.
Lo probé en el probador de estrategias entre el 29 de septiembre y el 15 de octubre.
El programa debería funcionar así: hago una compra. Cuando el precio cae a 0,010 debería vender con pérdidas.
Se produce una compra. No hay venta. Empiezo a visualizar y veo que el precio no es sólo 0,010 más bajo, sino mucho más alto. Extraño.
// -------- variables --- Inicio -----
extern double L1=0.01; // tamaño del lote para comprar
extern double L1n=0.01; // tamaño del lote para comprar (lote normalizado)
extern double AktualAsk=0.0; // precio de oferta actual
extern double AktualBid=0.0; // precio de venta real
extern int int ticketlackmus=1; // indicador de la apertura exitosa de la orden.
extern int ticket1=0; // ticket
extern bool PozOtk1=true;
// -------- variables --- Fin -----
int init()
{
return(0);
}
int inicio()
{
si (PozOtk1==true)
{
//posición abierta
ticketlackmus=1;
while (ticketlackmus>0)
{
Alerta (" Abrir primera posición ");
RefreshRates();// Actualizar datos
AktualAsk=NormalizeDouble(Ask,Digits); //para el precio
L1n=NormalizeDouble(L1,2); //para el lote.
ticket1=Enviar orden ("GBPUSD", OP_BUY, L1n, AktualAsk, 5, 0, 0, 0, 0, CLR_NONE);
si (ticket1>0) ticketlackmus=-1;
{
Alert (" ORDER OPEN ", ticket1, ", ticketlackmus);
}
}
PozOtk1=false;
Alerta (" PozOtk1 ", PozOtk1);
}
RefreshRates();// RefreshRates()
AktualBid=NormalizeDouble(Bid,Digits); //para el precio
if (AktualBid<=AktualAsk-0.010 && PozOtk1==false)
{
RefreshRates(); // Actualizar datos
OrderSelect(ticket1, SELECT_BY_TICKET;)
L1n=NormalizeDouble(L1,2); //para el lote
OrderClose (ticket1, L1n, AktualBid, 5);
PozOtk1=true;
}
return(0);
}
int deinit()
{
return(0);
}
Ozero.
Por favor, utilice el botón mágico SRC cuando inserte el código:
Insertar correctamente el código en el foro
Si se abre una posición en un determinado símbolo (en este caso - "GBPUSD"), entonces es aconsejable tomar todos los datos también para este símbolo a través de marketinfo, es decir, no sólo AktualAsk=NormalizeDouble( Ask,Digits ); aktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
Y por eso hay que tomar cualquier dato del mercado, para evitarlo.
Si una posición se abre en un símbolo específico (en este caso - "GBPUSD"), entonces es aconsejable tomar todos los datos también en este símbolo a través de marketinfo, es decir, no sólo AktualAsk=NormalizeDouble( Ask,Digits); aktualAsk=MarketInfo( "GBPUSD",MODE_ASK);
Y por eso hay que tomar cualquier dato del mercado, para evitarlo.
¡Gracias Evillive!
He hecho cambios. Pero ya he empezado a comprar. No hay venta después de los cambios. Prueba M15 del 30 de septiembre de 2014 a mediados de octubre.
¡Gracias, Evillive!
Hice el cambio. Pero, la compra seguía adelante de todos modos. Después de los cambios, no se produce ninguna venta. Prueba M15 del 30 de septiembre de 2014 a mediados de octubre.
OrderClose (ticket1, L1n, AktualBid, 5);