[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 117

 
TarasBY:

Assim:

O ZigZag extrema desde a hora atual até o Time_Control são coletados em uma matriz.


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++;
        }
    }
//---- 
}

Você pode me dizer como contar todos os ziguezagues, quantos são?

 

Olá,

desculpe antecipadamente pela gramática :/. Minha pergunta é: como reescrever o histórico das citações (via código)? Gostaria de usar o MT4 para analisar dados de outro corretor.
 
berezhnuy:

Você pode me dizer como contar todos os ziguezagues, quantos são?




Escrito na variável li_IND, ou como esta
count=ArraySize(lda_Extremum);
 
berezhnuy:

Você pode me dizer como contar todos os ziguezagues, quantos são?

Se fizermos o seguinte:

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);
}
- a função retornará o número de extrema encontrados desde fdt_TimeControl.
 

Obrigado

 

Olá,

É possível inserir um horário com um peso fixo 1:1 nos ajustes?

Se for possível, por favor, me diga como.

Gostaria de agradecer antecipadamente a vocês.

 
Por favor, você pode me dizer, meus castiçais mudam de cor a cada poucos segundos na tabela para colorido e de volta para preto e branco. Isto nunca tinha acontecido antes. Existe alguma maneira de desligá-lo?
 

Boa tarde.

Eu escrevi código para abrir duas ordens pendentes (BuyStop e SellStop) nas condições a=true e b=true e após algum tempo a EA fecha ambas as ordens, até que um novo sinal apareça, mas às vezes a EA abre 2 ordens pendentes na mesma direção. Por que isso acontece e como evitar esse "bug"?



if (a=verdadeiro && b=verdadeiro)
{
int OrderCount = OrderTotal();
if (OrderCount>1) devolução(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);

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

retorno(0);

}


Você pode me dar uma dica?

Agradecemos antecipadamente.

 
r772ra:



Os valores dessas variáveis são armazenados nas caixas de rastreamento das matrizes.

Quero dizer, você tem isso assim.

Termos e condições,

Obrigado, vou tentar dessa forma)
 
Shixan:

Boa tarde.

Eu escrevi código para abrir duas ordens pendentes (BuyStop e SellStop) nas condições a=true e b=true e após algum tempo a EA fecha ambas as ordens, até que um novo sinal apareça, mas às vezes a EA abre 2 ordens pendentes na mesma direção. Por que isso acontece e como evitar esse "bug"?

Por favor, informe.

Agradecemos antecipadamente.

Talvez aqui:

if (OrderCount>0) return(0);

Na verdade, tanto não é "dormir" - Sleep(1000*59*TimeFrame); - um novo tick entrou, seu código começou, duas ordens abertas, depois pausa por "2 horas" (condicionalmente), e então você tenta fechar se de repente uma das ordens se tornar comercializável aos preços que você recebeu 2 horas atrás - ORIGINAL!!! QUEM LHE ENSINOU ISSO?

Você pode fixar em uma variável global o tempo de abertura dos pedidos e controlar a diferença entre m³ TimeCurrent() e o tempo fixo.

Razão: