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
Siempre ha sido difícil gestionar las órdenes pendientes. en mt4 también. tal vez tratar de alejarse de eso? por ejemplo, hacer órdenes pendientes virtuales (sólo almacenarlos en las variables y abrir en el mercado cuando el precio ha cruzado). El tiempo es importante ahora...
No tengo tiempo... Acabo de depurar el código.
al menos tener tiempo para hacer algunas pruebas y ajustes
Estos errores puntuales no afectarán a la suerte de tu EA en el campeonato. Pero si a falta de dinero realiza repetidos intentos de abrir una posición generando gigas en su registro, como ocurrió en los anteriores campeonatos, será descalificado.
No me gustaría que mi EA fuera excluido de la competencia por este tipo de dependencia de las características recomendadas. Pero entonces, ¿cómo puedo saber el nivel de stop correcto permitido para un determinado símbolo en este momento?
P.D. No me gustaría utilizar la selección con incremento en caso de error, y el número de errores en este caso aumentará.Tengo un problema a la hora de determinar los niveles de stop para las órdenes pendientes. Cuando el mercado está en calma y queremos colocar una orden de stop a un nivel admisible, la función SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL) funciona perfectamente; las órdenes se colocan y todo el mundo está contento, incluido yo. Sin embargo, si el mercado comienza a vibrar fuertemente al principio de una sesión de negociación, esta función deja de funcionar, las órdenes no se colocan y el terminal comienza a generar errores sobre los stops no válidos.
No me gustaría que mi EA fuera excluido de la competencia por este tipo de dependencia de las características recomendadas. Pero entonces, ¿cómo puedo saber el nivel de stop correcto permitido para un determinado símbolo en este momento?
P.D. No me gustaría mucho utilizar una selección con incremento en caso de error, y el número de errores en este caso aumentaría.En el caso de las órdenes pendientes, el error de los stops no válidos también se produce cuando el precio de apertura está más cerca del actual.
Es decir, hay que comprobar no sólo los stops, sino también el precio de apertura.
Creo que hay un error en la función HistoryDealsTotal(), si se inicia después de HistorySelectByPosition() .
Muestra repetidamente el número de operaciones igual a 0, y esto a pesar de tener una posición abierta (variante multidivisa).
Aquí está el código:
void GetDealQuantity(string smbl)
{
long pos_id;
int total, cantidad=0;
ulong ticket=0; newticket;
PositionSelect(smbl);
pos_id=PositionGetInteger(POSITION_IDENTIFIER);
bool select=HistorySelectByPosition(pos_id);
total=HistoryDealsTotal();
Print(__FUNCTION__," select=",select," total=",total);
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
newticket=HistoryOrderGetTicket(i);
if(billete!=nuevo billete) { cantidad++; billete=nuevo billete; }
}
if(smbl==símbolo1) cantidad1=cantidad;
if(smbl==símbolo2) cantidad2=cantidad;
Print(__FUNCTION__," cantidad=",cantidad);
}
Imprime en el diario:
2010.01.04 00:20:05 Obtener la cantidad de la transacción select=true total=0
2010.01.04 00:20:05 GetDealQuantity quantity=0
2010.01.04 00:20:05 EURJPY volumen=0.1 cantidad=0
2010.01.04 00:20:05 GetDealQuantity select=true total=1
2010.01.04 00:20:05 GetDealQuantity quantity=1
2010.01.04 00:20:05 AUDUSD volumen=0.1 cantidad=1
Intenta insertar el código correctamente en tus posts. Intenta rehacer tu ejemplo así:
¿Hay algún script de ejemplo en algún lugar para escribir la última cita en el portapapeles o algo similar?
¿El portapapeles de Windows?
Tengo que mirar en msdn para ver en qué dll están las funciones necesarias...