[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 117

 
TarasBY:

Así:

Los extremos del ZigZag desde la hora actual hasta el Time_Control se recogen en un array.


void fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                            int fi_TF,                  // таймфрейм
                            datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                            int fi_ExtDepth = 12,       // ExtDepth         
                            int fi_ExtDeviation = 5,    // ExtDeviation
                            int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//---- 
}

¿Puedes decirme cómo contar todos los zigzags, cuántos hay?

 

Hola,

perdón de antemano por la gramática :/. Mi pregunta es, ¿cómo reescribir el historial de citas (mediante código)? Me gustaría utilizar MT4 para analizar los datos de otro broker.
 
berezhnuy:

¿Puedes decirme cómo contar todos los zigzags, cuántos hay?




Escrito en la variable li_IND, o así
count=ArraySize(lda_Extremum);
 
berezhnuy:

¿Puedes decirme cómo contar todos los zigzags, cuántos hay?

Si hacemos lo siguiente:

int fGet_ExtremumsZZPrice (string fs_Symbol,           // инструмент
                           int fi_TF,                  // таймфрейм
                           datetime fdt_TimeControl,   // время, до которого ищем экстремумы
                           int fi_ExtDepth = 12,       // ExtDepth         
                           int fi_ExtDeviation = 5,    // ExtDeviation
                           int fi_ExtBackstep = 3)     // ExtBackstep
{
    double ld_Value, lda_Extremum[];
    int    li_size = iBarShift (fs_Symbol, fi_TF, fdt_TimeControl), li_IND = 0;
//---- 
    for (int li_Bar = 1; li_Bar < li_size; li_Bar++)
    {
        ld_Value = iCustom (fs_Symbol, fi_TF, "ZigZag", fi_ExtDepth, fi_ExtDeviation, fi_ExtBackstep, 0, li_Bar);
        if (ld_Value != 0.)
        {
            ArrayResize (lda_Extremum, li_IND + 1);
            lda_Extremum[li_IND] = ld_Value;
            li_IND++;
        }
    }
//----
    return (li_IND);
}
- la función devolverá el número de extremos encontrados desde fdt_TimeControl.
 

Gracias

 

Hola,

¿Es posible introducir un horario con un peso fijo 1:1 en los ajustes?

Si es posible, por favor, dígame cómo.

Me gustaría darles las gracias por adelantado.

 
Me pueden decir por favor, mis velas cambian de color cada pocos segundos en el gráfico a color y vuelven a blanco y negro. Esto no ha ocurrido nunca antes. ¿Hay alguna forma de desactivarlo?
 

Por la tarde.

Escribí un código para abrir dos órdenes pendientes (BuyStop y SellStop) en las condiciones a=true y b=true y después de un tiempo el EA cierra ambas órdenes, hasta que aparece una nueva señal, pero a veces el EA abre 2 órdenes pendientes en la misma dirección. ¿Por qué ocurre esto y cómo evitar este "error"?



if (a=true && b=true)
{
int OrderCount = OrdersTotal();
if (OrderCount>1) return(0);
ticket1=OrderSend(Symbol(), OP_BUYSTOP, getLot(), PriceOpen_Buy, slippage, PriceOpen_Sell,0,0,Green);
Sleep(1000);

ticket2=OrderSend(Symbol(), OP_SELLSTOP, getLot(), PriceOpen_Sell, slippage, PriceOpen_Buy,0,0,Green);

Sleep(1000*59*TimeFrame);

for (int i=OrdersTotal()-1; i>=0; i--)
¡{
si (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask,slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
}

return(0);

}


Por favor, dame una pista.

Gracias de antemano.

 
r772ra:



Los valores de estas variables se almacenan en los arrays-traceboxes.

Es decir, lo tienes así .

Condiciones de uso,

Gracias, lo intentaré así)
 
Shixan:

Por la tarde.

Escribí un código para abrir dos órdenes pendientes (BuyStop y SellStop) en las condiciones a=true y b=true y después de un tiempo el EA cierra ambas órdenes, hasta que aparece una nueva señal, pero a veces el EA abre 2 órdenes pendientes en la misma dirección. ¿Por qué ocurre esto y cómo evitar este "error"?

Por favor, avisa.

Gracias de antemano.

Tal vez aquí:

if (OrderCount>0) return(0);

¡¡¡En realidad tanto no es "dormir" - Sleep(1000*59*TimeFrame); - un nuevo tick entró, su código comenzó, dos órdenes se abren, a continuación, la pausa de "2 horas" (condicionalmente), y luego se intenta cerrar si de repente una de las órdenes se convirtió en comercializable en los precios que obtuvo hace 2 horas - ORIGINAL!!! ¿QUIÉN TE ENSEÑÓ ESO?

Puede fijar en una variable global la hora de apertura de las órdenes y controlar la diferencia entre m³ TimeCurrent() y la hora fijada.

Razón de la queja: