[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 58

 
artmedia70:

Você não tem medo de ficar preso a pedidos frequentes? Afinal, a cada 15-30 segundos você terá que abrir uma nova posição além da que você já tem, ou apagar a que você já tem.

Você não poderá alterar o volume de uma posição aberta. Portanto, você terá que dividi-la em várias posições.

Estou interessado na própria EA. Sim, e o volume do comércio já aberto pode ser aumentado pela simples adição de mais e diminuído pelo travamento parcial.
 
sergeev:

Características da EA


17
darsey 08.08.2011 12:40
Olá. É possível programar uma EA em mql4, para que ela ajuste o lote a cada 15-30 segundos?

Uma maneira possível de ajustar o lote:
Abra uma nova pequena posição a cada 15-30 segundos, que você fecha todos juntos quando alcança o lucro desejado.
 
DhP:

Uma maneira possível de ajustar o lote:
Abra uma nova pequena posição a cada 15-30 segundos, que você fecha todos juntos quando alcança o lucro desejado.
Obrigado. Vou pensar sobre isso. Na verdade, tenho duas séries com 100% de correlação, mas com volatilidade diferente. Preciso converter uma série para a outra. Eu não vejo nenhuma saída para a situação como apenas correção de lote de freqüência intra-barras. Alguma idéia sobre isso? Eu gostaria de poder fazer HFT em casa :(
 

Boa tarde.

Existe uma EA, ela tem a capacidade de selecionar uma ordem que foi aberta antes do aparecimento da EA no gráfico. E especificamente para esta encomenda há uma condição de fechamento. Digamos que temos uma ordem de venda e o preço sobe condicionalmente, então esta ordem será fechada assim que a EA for mostrada. Portanto, tudo fecha bem e como esperado. Mas não podemos passar da condição em que há um cheque para o horário de fechamento. Eu alertei sobre esta função antes da condição e ela retorna 0! Por quê? Está escrito na documentação que só abre e as devoluções pendentes são zero. Por que esta função retorna zero para as fechadas também? Tentei fazer uma pausa de um segundo após o fechamento (nunca se sabe, talvez os dados não tenham chegado), mas mesmo assim retornam zero. Aqui está o código desta seção:

if (tempWho == 0 && pos != -1)
{
    if (OrderSelect(pos, SELECT_BY_TICKET))
    {
        ...
        //Тут закрываются ордера
        ...
            
        if (OrderCloseTime() != 0)
        {
            ...
        }
    }
}

Obrigado por sua atenção.

 

Pessoal, favor aconselhar como fazer 2 pedidos de uma só vez. Nada funciona.

// Se o máximo próximo à entrada no mercado, defina uma ordem OP_SELLLIMIT
if (max<min)
{
1 - OrderSend(Symbol(),OP_SELLLLIMIT,lot,cena_sell,3,sl_sell,tp_sell,",1,0,Red);
Alerta (GetLastError()); // Mensagem de erro na colocação do pedido
//order_opened = true; // se o pedido fez efeito, não abra
2 - OrderSend(Symbol(),OP_SELLLLIMIT,lot_1,cena_sell_d_1,3,sl_sell,tp_sell_d_1,""2,0,Vermelho);
Alerta (GetLastError()); // Mensagem sobre erro de configuração do pedido

}
else // otherwise set order OP_BUYLIMIT
{

OrderSend(Symbol(),OP_BUYLIMIT,lot,cena_buy,3,sl_buy,tp_buy,"",5,0,Blue);
Alerta (GetLastError()); // Mensagem de erro na colocação do pedido
//order_opened = true; // se o pedido tiver funcionado, não abra novamente

Por alguma razão, apenas um pedido é aberto:

1 - OrderSend(Symbol(),OP_SELLLIMIT,lot,cena_sell,3,sl_sell,tp_sell,",1,0,Red);
Alerta (GetLastError()); // Mensagem de erro de configuração do pedido

 

para sergey_r:

O que diz nos erros? Especificamente, qual é o código de erro?

 

se estiver definido:

int order = OrdersTotal(); // Verifique se as ordens estão definidas
if (ordem == 0)

abre ou selllimit ou buylimit em condição e eu preciso de duas ordens de selllimit ou uma ordem de buylimit

 

para sergey_r:

Você não entendeu. O que é exibido em Alert(GetLastError();)?

 
Erro 130. Entendi, tentei fazer o selllimit o mesmo e tudo funcionou, vou procurar onde o cachorro está enterrado.
 

para sergey_r:

Como você disse acima, isso tem a ver com o segundo StopLoser. Provavelmente você está calculando incorretamente lá. Verifique cuidadosamente o segmento onde ele é calculado.

Por via das dúvidas, aqui está a transcrição do erro: https://docs.mql4.com/ru/trading/errors