[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 39

 
Cod:

Y aquí, ¿el AG está aumentando el número de carreras? ¿Es eso posible?

¡Uy!

Caso extremadamente interesante...)

 
DhP:

¡Vaya!

Caso extremadamente interesante...)


No hay más opciones que las posibles
 

Gracias, lo he buscado pero no he entendido nada. Por ejemplo:

Una operación no se ejecuta si se incumple alguno de los requisitos especificados

SellLimit

1) OpenPrice-Bid StopLevel

2) SL-PrecioAbierto ≥NivelStop(más adelante en el ejemplo)

3) OpenPrice-TP ≥ StopLevel

¿Qué significa "La operación comercial no se ejecuta"? Si una orden pendiente no es colocada (aceptada) o si ya está colocada, no se activa (¿qué pasa con ella - es eliminada por el corredor)? Repito la pregunta, si las condiciones han cambiado y una orden colocada con éxito una hora más tarde por ejemplo tiene SL-OpenPrice en cambiado por ese momento StopLevel, ¿qué pasará con ella?

Y otra pregunta. Supongamos que el diferencial era de 2 y se ha convertido en 7 puntos. ¿Qué significa: ha cambiado el precio de oferta o de demanda, o el corredor lo selecciona arbitrariamente según su criterio?

 

Al intentar compilar un archivo de inclusión (*.mqh) se produce un error '\end_of_program' - no hay función definida. ¿Qué es lo que falla y cómo solucionarlo?

extern double Lots = 0.0;
extern int Percent = 0;
extern int StopLoss = 100;
extern int TakeProfit = 40;
extern int TrailngStop = 100;

int Level_New;
int Level_Old;

 

He mirado la portada del libro STUDY por todos los lados y sigo sin entender nada...)

Lo veo escrito así en todas partes:

int Ticket = OrderSend(...);

¿Es justa la escritura de abajo si quiero obtener Price = OrderOpenPrice() para el procesamiento posterior y el establecimiento de Stops?

double Price = OrderSend(...);

A mí me funciona, pero ¿es esto aceptable?

 
Vinin:

No hay funciones incorporadas, sólo tiene que escribir su propio asistente con el período de cálculo en función del plazo
No hay problema... Pero, ¿cómo determinar el valor actual de TF en el código?
 

¡Buenos días a todos!

Escribiendo por primera vez, si algo está mal, lo siento.

Pregunta, ¿por qué la función (ver abajo) da error: 'A' - elemento de la matriz no puede ser asignado?

double get_init_values(double A[], int index){

int size = 0;

size = ArraySize(A);

if (size < index){

return (0);

}else{

A [index] = Ask;

return (A);
}

}
Gracias de antemano.
 
Saltan:

Al intentar compilar un archivo de inclusión (*.mqh) se produce un error '\end_of_program' - no hay función definida. ¿Qué es lo que falla y cómo solucionarlo...?

No hace falta que lo intentes. Los archivos .mqh se colocan en include y se quedan ahí tranquilamente. Cuando se compila el EA en el que están escritos, el compilador une automáticamente los elementos de código necesarios y los compila juntos.
Cuando intentas compilar por separado el .mqh, el compilador intenta determinar el tipo de producto (Asesor Experto, indicador...) y empieza a preguntar "¿por dónde has empezado?
Debe empezar a tratar con .mqh si se producen errores durante la compilación adecuada.
 

He insertado un nuevo bloque en mi EA para calcular el tamaño del lote de la posición a abrir. La idea es la siguiente:

1. El stop se fija en el máximo del día actual en caso de una posición de venta, y en el mínimo del día en caso de una posición de compra.

2. Cuando la condición de apertura de la orden se dispara, este bloque para el cálculo del lote comienza a ejecutarse. Se calcula la distancia en puntos hasta el Máximo/Mínimo del día y se recorren los lotes a partir de 0,1 para encontrar el lote necesario (5% cuando se ha activado un stop)

Pero en el registro aparecen estas líneas:

2011.01.30 16:59:47 TestGenerator: error de datos no coincidentes (límite de volumen 1107 en 2011.01.13 14:45)

En cuanto apago esta unidad, todo está bien. ¿En qué me equivoco? Por favor, avisa.

Aquí está el código en sí:

double Balance = AccountBalance();
    double DistanceToHighDay = MathAbs(HighDay-Ask)*10000;
    double DistanceToLowDay  = MathAbs(Bid-LowDay)*10000;
    double ExpectedSellLoss;
    double ExpectedBuyLoss;
    double ExpectedSellRisk;
    double ExpectedBuyRisk;
    double LotSell;
    double LotBuy;
    int     Risk = 5;
   
    // Расчёт лота для Sell
    for(int i=0.1; ExpectedSellRisk<Risk; i=i+0.1)
       {
        ExpectedSellLoss = DistanceToHighDay*i*10;         // ожидаемый убыток в $
        ExpectedSellRisk = (ExpectedSellLoss*100)/Balance; // ожидаемый убыток в %
        LotSell=i;
       }
       
    // Расчёт лота для Buy
    for(i=0.1; ExpectedBuyRisk<Risk; i=i+0.1)
       {
        ExpectedBuyLoss = DistanceToLowDay*i*10;         // ожидаемый убыток в $
        ExpectedBuyRisk = (ExpectedBuyLoss*100)/Balance; // ожидаемый убыток в %
        LotBuy=i;
       }
 
Estoy aprendiendo mql4, no puedo escribir un indicador de volumen simple, es decir que calcule cuantos ticks hay en cada barra, si alguien tiene uno, por favor compártalo. Si alguien lo escribe específicamente, muchas gracias.