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

 

Qualquer pessoa pode sugerir, instalar o plugin GetTickerHistory no MT-4, roda, mas o download não vai, no Windows 7 x64, é possível baixar os índices externos de outra forma.

Obrigado de antemão.

 
001:
Há uma função para fechar uma posição por tempo.

A posição fecha, mas dá OrderClose erro 138 para cada posição

11:44:49 2000.01.10 07:00 Time+iLowest_old EURUSD,H1: aberto #1 venda 0.10 EURUSD a 1.02940 ok
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.10 14:00 Time+iLowest_old EURUSD,H1: fechar #1 venda 0.10 EURUSD a 1.02940 ao preço 1.02230
11:44:49 2000.01.11 07:00 Time+iLowest_old EURUSD,H1: abrir #2 venda 0.10 EURUSD a 1.02660 ok
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138
11:44:49 2000.01.11 14:00 Time+iLowest_old EURUSD,H1: fechamento #2 venda 0.10 EURUSD a 1,02660 ao preço 1,02890
11:44:49 2000.01.13 07:00 Time+iLowest_old EURUSD,H1: aberto #3 venda 0,10 EURUSD a 1,02860 ok

11:44:49 2000.01.13 14:00 Time+iLowest_old EURUSD,H1: OrderClose error 138 ,

O que pode ser? O mais interessante é que tudo funciona em outra EA.

Você não tem processamento de códigos de retorno de servidores comerciais. Em outras palavras, você não processa solicitações e faltam apenas 3 pontos de deslizamento:

int f=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,Red);

Ah, e as pequenas coisas:

Para fechar em um loop inverso (caso contrário, falhará):

for(int i=OrdersTotal()-1; i>=0; i--)

A verificação deve ser feita no tipo de pedido, caso contrário, tentará fechar também os pedidos pendentes:

if(OrderType()>1) continue;
 
pu6ka:

Existe uma função chamada SetIndexDrawBegin(). Mas ele tem uma característica especial - conta da esquerda para a direita. De qualquer forma, no Init, configure-se na linha SetIndexDrawBegin(0, Bars-p), e veja se isto é o que você precisa.
O indicador lê o último número de barras, ele não tem problemas. Preciso fazer uma janela com o número de barras em que esses movimentos seriam contados e com cada barra a janela se moveria, excluindo a última barra no último cálculo, adicionando uma nova. Algo como alisamento "iMAOnArray", mas o alisamento não é adequado porque produz a média, e eu preciso da soma.
 
artmedia70:

Você não tem nenhum processamento dos códigos de retorno do servidor comercial. Ou seja, você não processa o requote, e faltam apenas 3 pontos de deslizamento:

Ah, e as pequenas coisas:

Fechar em um loop inverso (caso contrário, falhará):

A verificação deve ser feita no tipo de pedido, caso contrário, tentará fechar também os pedidos pendentes:



Muito obrigado! Vou tentar agora. Uma pergunta a mais. O requote no testador é relevante? no meu testador não fecha.
 
001:

Muito obrigado! Vou tentar agora. Uma pergunta a mais. A requota no testador é relevante? no meu testador não fecha.
Em seguida, preste atenção ao preço na ordem comercial. Será fechada a preço de Licitação e vendida a preço de Pedido. Você não tem nenhum tipo de pedido lá e, portanto, nenhuma escolha de preço - Pergunte ou Licite
 

Olá! fiz o download de vários indicadores de LER quase idênticos, multitemporais. Todos eles têm o mesmo problema. Eu defino o indicador em um gráfico de tempo mais baixo com o valor de algum tempo mais antigo. No Testador de Estratégias, os dados já carregados são finalizados, mas se eu começar a testá-los, ele pára de desenhar. Além disso, o sinal é desenhado no gráfico real, mas em cada barra do gráfico real os valores da linha indicadora são diferentes. Ou seja, a renderização dos dados já carregados é escada, mas a renderização é diferente para os dados carregados no modo de tempo real. Favor informar quais mudanças precisam ser feitas para que o indicador desenhe a mesma escada tanto no gráfico real em modo tempo real quanto no testador.

O código do indicador está no arquivo anexo.

Tenho um excelente consultor especializado para este indicador e gostaria de lhe agradecer por isso.

Arquivos anexados:
mtf_rsi.mq4  3 kb
 
Olá, a EA dá erro 1 "Nenhum erro mas nenhum resultado conhecido" quando modificando.Erro 1
void ControlBuylimit(){
  for(int i=OrdersTotal(); i>=0; i--){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
      if(OrderMagicNumber()==Magic){
        if(OrderSymbol()==Symbol()){
          if(OrderType()==OP_BUYLIMIT){
            if(OrderComment()=="MA_1"){
              if(OrderOpenPrice()!=ma1){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma1,Digits),NormalizeDouble(ma1,Digits)-StopLoss*Point,NormalizeDouble(ma1,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
            if(OrderComment()=="MA_2"){
              if(OrderOpenPrice()!=ma2){
                int cnt=0;
                bool res;
                while(cnt<=5){
                  res=OrderModify(OrderTicket(),NormalizeDouble(ma2,Digits),NormalizeDouble(ma2,Digits)-StopLoss*Point,NormalizeDouble(ma2,Digits)+TakeProfit*Point,0,clrNONE);
                  if(!res){
                    int answ=0;
                    answ=ERRORS(GetLastError(),OrderTicket());
                    if(answ==1){continue; cnt++;}
                    if(answ==2)break;
                  }
                  if(res)break;
                }
              }
            }
          }
        }
      }
      
    }
  }
}
 
Forexman77:
Não há problema para que o indicador leia o último número de barras. Preciso fazer uma janela com o número de barras em que estes movimentos seriam contados e com cada barra a janela se moveria, excluindo a última barra no último cálculo, adicionando uma nova. Algo como alisamento "iMAOnArray", mas o alisamento não é adequado porque produz a média, e eu preciso da soma.

Jogue este indicador na M1, conforme aparecem novas barras, as linhas do jacaré à esquerda "são apagadas". Precisa disso?

Arquivos anexados:
 
Example2:
Olá, a EA dá erro 1 "Nenhum erro mas nenhum resultado conhecido" quando modificando.

O mais provável é que você esteja modificando com o preço antigo que já está prescrito no pedido.
 
pu6ka:

O mais provável é modificar o preço antigo que já está prescrito no mandado.


Mas há uma verificaçãose(OrderOpenPrice()!=ma2)

Razão: