[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 139

 

Aqui estão os indicadores e modelos. Espero poder ajudar alguém.

http://depositfiles.com/folders/8KVJ9L02I

 

SOS!? Você poderia explicar ao Consultor Especialista

os valores do indicador VolumeHist (volumes verticais), ou seja, para determiná-los no gráfico

ou apenas contando? (se ele o calcula, ele precisa de um bloco para analisar o ~preço do orçamento e calcular o valor deste indicador)

por exemplo, um consultor especializado pensa e o resultado é BUY.LONG

preciso encontrar um par de extremos e escolher o melhor, certo?

Se você tem alguma experiência com este indicador no sistema automatizado, compartilhe plz!


 

Olá.

À primeira vista, não consigo pensar se isso é possível:

Há uma função - ela retorna verdadeiro, quando as condições são cumpridas
por exemplo, C[0]>C[1]+n*Point (exatamente C[0], daí a pergunta).

Como posso especificar nesta função, que mesmo que a condição seja executada uma vez,

condição, verdadeiro retornará uma certa quantidade de tempo (X).

Obrigado.

 
Telemah >> :

Olá.

Eu não consigo pensar à primeira vista se isso é possível :

Há uma função - retornos verdadeiros, quando as condições são cumpridas
por exemplo, C[0]>C[1]+n*Point (exatamente C[0], daí a pergunta).

Como posso especificar nesta função, que mesmo que a condição seja executada uma vez,

execução única de uma condição, verdadeira retornará um certo tempo (X).

Obrigado.


Você não pode. A MQL4 não é um OOP. Portanto, a função pode retornar apenas um valor.

Mas, há várias soluções:


1. Envie um array para a função por referência e armazene os valores requeridos nela durante a execução da função, a fim de lê-los posteriormente.

2. declarar variáveis estáticas, digitar valores durante a execução da função e lê-las após

 
Reshetov >> :

Você não pode. A MQL4 não é um OOP. Portanto, a função pode retornar apenas um valor.

Mas, há várias soluções:


1. Passe uma matriz por referência a uma função e armazene os valores necessários nela durante a execução da função, para que possam ser lidos posteriormente.

Declarar as variáveis estáticas, inserir valores nelas no momento da execução da função e lê-las após

Obrigado por sua resposta.

 
Cavalheiros, avisem qual é o problema, é necessário que cada novo aparecimento pendente apague o anterior, parece certo, mas não funciona como deveria, se há um pendente para compra, então o pendente para venda remove (e vice-versa), e se há para comprar e há uma nova compra (ou seja, na mesma direção) então não trabalhe cheh (com a venda mais venda a mesma coisa). Eu não entendo algo, o que está errado?
bool SELLSTOP; bool BUYSTOP;
  if(...... && BUYSTOP == false)
     {
     int BuyTicketStop = OrderSend(Symbol(),OP_BUYSTOP, Lots, SB,4, SB - StopLoss*Point, SB + TakeProfit*Point,"Покупаем",658932,0,Green);
        if ( BuyTicketStop > 0)
        {
        BUYSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
      }  

  if(....... && SELLSTOP == false)
     {
     int SellTicketStop = OrderSend(Symbol(),OP_SELLSTOP, Lots, SS,4, SS + StopLoss*Point, SS - TakeProfit*Point,"Продаем",658932,0,Red);
        if ( SellTicketStop > 0)
        {
        SELLSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
     }
     
 int M;
 for( M = OrdersTotal() - 1; M >= 0; M--)
     {
     OrderSelect( M, SELECT_BY_POS, MODE_TRADES);
     
          if ( SELLSTOP == true){if(OrderType() == OP_BUYSTOP) 
          {bool ODBS = OrderDelete(OrderTicket());
          if( ODBS){ BUYSTOP = false; PlaySound("ok.wav");}
          else { BUYSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
          
          if ( BUYSTOP == true){if(OrderType() == OP_SELLSTOP) 
          {bool ODSS = OrderDelete(OrderTicket());            
          if( ODSS){ SELLSTOP = false; PlaySound("ok.wav");}
          else { SELLSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
 
 

Boa tarde. Pergunta para os especialistas.

Estou otimizando com spread variável.

Como o testador considera a propagação durante a otimização?

Considera o novo spread atual em cada série?

Ou todas as execuções de otimização são realizadas considerando o spread memorizado pelo testador antes de pressionar o botão OPTIMIZAÇÃO?

 
Rita писал(а) >>

Boa tarde. Pergunta para os especialistas.

Estou otimizando com spread variável.

Como o testador considera a propagação durante a otimização?

Considera o novo spread atual em cada série?

Ou todas as execuções de otimização são baseadas no spread memorizado pelo testador antes de pressionar o botão OPTIMIZAÇÃO?

O último conhecido é utilizado?

 
Rita писал(а) >>

Boa tarde. Pergunta para os especialistas.

Estou otimizando com um spread variável.

Como o testador considera a propagação durante a otimização?

Considera o novo spread atual em cada série?

Ou todas as execuções de otimização são baseadas no spread memorizado pelo testador antes de pressionar o botão OPTIMIZAÇÃO?

O último conhecido é utilizado?

 

Obrigado. Mas ainda não está muito claro.

Conhecido pela última vez antes de cada corrida?

Ou o último conhecido antes do início da otimização ?

Razão: