Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 627
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
¿Pueden decirme cómo calcular la garantía de una transacción?
He intentado dos enfoques
(0.1 * Ask*MarketInfo(Symbol(),MODE_LOTSIZE))/AccountInfoInteger(ACCOUNT_LEVERAGE)
Y este
FreeMarginCheck=AccountFreeMarginCheck(Symbol(),OP_BUY,0.1);
double val=AccountFreeMargin()-FreeMarginCheck;
El primero da resultados extraños en EURJPY si mi moneda de depósito es USD. ¿Tengo que añadir algo a la fórmula?
El segundo también funciona sólo una vez, a veces da el valor correcto, a veces da alguna tontería (depende del depósito)
La segunda variante es la forma correcta de calcular el depósito. Para ser más exactos, la variable val muestra el valor de los fondos libres después de que se haya realizado el pedido y la variableFreeMarginCheck muestra el valor del propio depósito
La segunda opción es la forma correcta de calcular el margen, es decir, se obtiene el valor de los fondos libres en la variable val después de colocar una orden, y la variableFreeMarginCheck es el valor del margen mismo
¿Está seguro?
AccountFreeMarginCheck
Devuelve la cantidad de fondos libres que quedarán después de que se abra la orden especificada al precio actual en la cuenta corriente.
También hay una sutileza:
Si las contraoperaciones están abiertas, es decir, si hay un bloqueo total o incompleto en la cuenta, la función puede dar valores incorrectos.
¿Está seguro?
Sí, tienes razón, es exactamente así:
Devuelve la cantidad de fondos libresque quedan después de abrir la orden especificada al precio actual en la cuenta corriente.
sobre las operaciones abiertas, hay que comprobar, no lo recuerdo, pero lo más probable es que lo que escribe el terminal, debe coincidir con los datos calculados: el número total de lotes en cada dirección de las operaciones (BAY/SELL) para todos los símbolos y luego llamar a cada símbolo
AccountFreeMarginCheck() pasando lotes en cada dirección y sumando estos resultados
El mercado funciona hoy, es fácil comprobarlo, así
Saludos, ¿podríais decirme qué pasa con la función? La función realiza una pausa comercial por tiempo, los parámetros incluyen el inicio de la pausa y el final de la misma.
La función lee la hora no del servidor del corredor sino del ordenador, a pesar de que TimeCurrent está prescrito. En general, las operaciones se cierran durante la pausa, es decir, la función no funciona.
Saludos, ¿podríais decirme qué pasa con la función? La función realiza una pausa comercial por tiempo, los parámetros son inicio de pausa y fin de pausa.
La función lee la hora no del servidor del corredor, sino del ordenador, a pesar de que TimeCurrent está prescrito. En general, las operaciones se cierran durante una pausa, significa que la función no funciona.
DesimprimirTimeStart yStrToTime(TimeStart);
entonces unprintTimeCurrent()
¿suTimeStart no está en formato de fecha completa, es decir, la hora siempre será el día, mes y año actuales cuando ejecute el EA, y luego cambiará?
Y globalmente... para determinar las horas y minutos de negociación se debe comparar con la hora y minutos del servidor, sólo se compara el hecho de que la hora del servidor sea mayor que la especificada
SZZ: para evitar confusiones, puedespensar en datetime como un int, que es y al comparar 2datetime, estás comparando 2 int
PSPS:
tu código probablemente funcionará, deberías probarlo así:
Suelo contar el tiempo de esta manera:
int h = HoraHora(HoraActual());
int m = TimeMinute(TimeCurrent());
y luego compararlo con la configuración del EA
Gracias, trataré de averiguarlo, soy un principiante), con la opción && en lugar de || aún no he probado online, por cierto en tester este código funciona, lee el tiempo desde el terminal, no se cierran las órdenes durante la pausa, pero online es diferente.
Hola. El terminal no se inicia en el probador de estrategias. Pongo la fecha, por ejemplo (2017,04,01 a 2018,05,29), pulso start, inmediatamente da un stop. En el registro dice lo siguiente,
TestGenerator: no hay datos del historial 'EURUSD30' desde 2017.04.01 hasta 2018.05.29. Y así en cualquier segmento. Mi ordenador funciona, pensé que no tenía suficiente RAM. Lo mismo en el ordenador de casa, reiniciar no sirve de nada, pero funciona un rato. He descargado el Asesor Experto del Mercado, de prueba. Si alguien sabe la razón, por favor, aconséjelo.
Hola. El terminal no se inicia en el probador de estrategias. Pongo la fecha, por ejemplo (2017,04,01 a 2018,05,29), pulso start, inmediatamente da un stop. En el registro dice lo siguiente,
TestGenerator: no hay datos del historial 'EURUSD30' desde 2017.04.01 hasta 2018.05.29. Y así en cualquier segmento. Mi ordenador funciona, pensé que no tenía suficiente RAM. Lo mismo en el ordenador de casa, reiniciar no sirve de nada, pero funciona un rato. He descargado el Asesor Experto del Mercado, de prueba. Si tengo alguna idea de la razón, ¿puede darme una pista?
Creo que el probador dice que no hay datos de la historia, pulse F2 y descargar la historia, a continuación, reiniciar el terminal
Hola. El terminal no se inicia en el probador de estrategias. Pongo la fecha, por ejemplo (2017,04,01 a 2018,05,29), pulso start, inmediatamente da un stop. En el registro dice lo siguiente,
TestGenerator: no hay datos del historial 'EURUSD30' desde 2017.04.01 hasta 2018.05.29. Y así en cualquier segmento. Mi ordenador funciona, pensé que no tenía suficiente RAM. Lo mismo en el ordenador de casa, reiniciar no sirve de nada, pero funciona un rato. He descargado el Asesor Experto del Mercado, de prueba. Si conozco la razón, por favor, aconséjeme.
¿Significa algo laausencia de datos históricos?
Creo que el probador te está diciendo que no hay datos del historial, pulsa F2 y descarga el historial, luego vuelve a cargar el terminal
Gracias. Lo intentaré. ¿Afecta la actualización del terminal de alguna manera? Si se actualiza o no, aunque te lo dirá ella misma......