![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Volviendo al tema de la determinación de stoplosses y takeprofits en el evento OnTradeTransaction. Tengo el siguiente registro de salida de todos los campos de las estructuras (tomado del ejemplo de MetaQuotes), y esto ya no es un probador sino un concurso en línea. Aquí tenemos una compra:
Y aquí se cierra en Take Profit:
Lo único que une a estas transacciones es el precio(el precio de cierre es igual al precio TP). Pregunta: ¿es esa la forma de determinar el hecho de la TP? Imho, inconveniente y ambigua (si no recuerdo mal, el precio exacto de TP puede no suceder y TP se cerrará en el otro precio más cercano).
¡Buenas tardes! Me disculpo de antemano, tal vez estoy siendo obtuso, o no entiendo algunas cosas obvias. Estoy tratando de utilizar el indicador iMA, tratando de escribir de acuerdo a los ejemplos que he leído.
En general, intento hacerlo así. Declaro en la parte superior, por encima de todas las funciones de EA.
Entonces uso una función que funcione en la función OnTick(). En la muestra, la propia función se encuentra en la parte inferior. De hecho, por ahora, sólo utilizaré el último valor cero de la matriz.
Sólo utilizaré el último valor cero.
Error 'a_timeframe' - no se puede convertir el enum Owl.mq5 2009 28
Con respecto a esta variable imino, está en la instrucción de tipo cadena, ves que está brillando en azul por sí misma...
Escribe error 'a_timeframe' - no se puede convertir el enum Owl.mq5 2009 28
¡¡¡Gracias!!! ¿Es lo mismo que double, string o int? No entiendo, perdón, ¿dónde pongo este tipo?
De acuerdo, ¡gracias!
Esto es puramente un error de los probadores. El campo Trans.price_tp en caso de TRADE_TRANSACTION_DEAL_ADD puede contener 0 o cualquier basura. El comercio en línea produce todo correctamente.
Por favor, indique por qué la línea request.type_filling=ORDER_FILLING_AON; en el EA contiene el error 'ORDER_FILLING_AON' - identificador no declarado cs2011.mq5 127 28 en la versión 697
Por favor, indique por qué la línea request.type_filling=ORDER_FILLING_AON; en el EA contiene el error 'ORDER_FILLING_AON' - identificador no declarado cs2011.mq5 127 28 en la versión 697
Porque el lenguaje ha cambiado desde que se escribió la EA.
ponga request.type_filling=ORDER_FILLING_AON en esta línea;
request.type_filling=ORDER_FILLING_FOK; y buena suerte.
O simplemente puedes poner 0
request.type_filling=0;
también funcionará.
PS o alternativamente (para evitar tener que editar todo el EA) puedes poner un parche en la parte superior de todo
#define ORDER_FILLING_AON ORDER_FILLING_FOK
Esto es sólo en caso de que ORDER_FILLING_AON se mencione varias veces.
Por alguna razón veo la siguiente imagen: cuando pego en el terminal un indicador desde el Navegador a un gráfico, aparece un área vacía para el indicador en el gráfico, el indicador en sí no se muestra, pero si abro la lista de índices del gráfico, aparece allí con la nota "Depuración". ¿Qué es este bicho y cómo lo afronto?
Buena gente, ¡ayuda!
Tome el código más simple.
#property copyright "Copyright 2011,"
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double Vhod;
Vhod=linfunc(15);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
double linfunc(int b) // имя функции и список параметров
{
double a;
while((a/b)<1 && !IsStopped())//---------
{
a=a+1;
}
double f=a+b;
// составной оператор
return(a+b); // возвращаемое значение
}
Lo compilamos en la compilación 687 y obtenemos Vhod=0 en el depurador.
¿Cómo lo entiende? Al mismo tiempo, a veces tengo Vhod=30. (extraño pero cierto).
devuelve alguna tontería...
¿Qué son estos fallos o me estoy perdiendo algo?