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 1174

 

Tenho uma pergunta sobre a chamada de indicadores através do iCustom.

1. Há a possibilidade de excluir alguns parâmetros indicadores da lista de parâmetros passados ao iCustom. Por exemplo, não quero passar algum parâmetro de corda ou qualquer outro. um parâmetro externo indicador com o modificador de sinput deve também ser especificado no iCustom ao ligar de um Expert Advisor?

2. Qual é a melhor solução, se o indicador tem muitos parâmetros (cerca de centenas)? Existe uma solução pronta, como chamar este indicador?

Obrigado.

 

Quero que a EA feche as posições abertas quando o preço cruzar o MA.

Por favor, informe como implementar isto.

Obrigado

 
RichLux:

Quero que a EA feche as posições abertas quando o preço cruzar o MA.

Por favor, informe como implementar isto.

Obrigado

void CheckForClose_MA()
  {
   double MA=iMA(NULL,0,ma_period,ma_shift,MODE_SMMA,PRICE_MEDIAN,0);

   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;
        //---- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Low[1]>=MA) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
         break;
        }
     }
//----


duploiMA(
símbolo de corda,// nome do símbolo
inttimeframe,// prazo
intma_period,// período
intma_shift,// média de turnos
intma_method,// método de cálculo da média
intapplied_price,// tipo de preço
intturno// turno
);

 

Como saber quais parâmetros foram enviados para o Expert Advisor através do iCustom. Recebo um valor incorreto do buffer especificado no iCustom, quero verificar se os dados "alcançaram" o indicador após o iCustom ter sido chamado.

Como posso depurar de todo?

 
Александр:

Há uma função.


Cada chamada de função mudará a variável ХХ, e eu preciso que ХХ seja externa (a lógica que eu preciso), mas cada chamada de função iniciada com ХХ sendo 0 e de acordo com isso retornará seu valor (ХХ). Isto é, não entendo como tornar a variável XX externa e a função poderia ser chamada "autonomamente", de forma isolada. Exatamente por meio do MQ4. Obrigado!


Já o li várias vezes, mas ainda não entendo o que você está procurando.

Talvez isto:

double XX = 0;


double x()
{
   double rez = XX;
   XX++;
   return rez;
}
 
Como posso saber se todas as barras estão carregadas na tabela?
É necessário chamar o recálculo do indicador somente quando ele estiver totalmente carregado.

A condição
if(time[0] > TimeCurrent() - 60 * ChartPeriod())
não ajuda a resolver o problema.
 

memorizar e verificar o número total de barras, se o valor não "subir" em poucos segundos, então "aqui vamos nós".

e depois recalcular novamente se

rates_total-prev_calculated > 1
 
Koldun Zloy:

Já o li várias vezes, mas ainda não entendo o que você quer.

Talvez seja:

Há uma função (é um indicador em minha EA, eu preciso dela e não é contestada, esta um indicador e começa a funcionar (contagem regressiva) a partir de um novo pico). O indicador tem vários parâmetros que mudam o tempo todo. Como quero evitar o loop, torno estes parâmetros externos (para a função externa) a fim de não perder seus valores. E em qualquer nova chamada de função, eu vejo apenas a mudança do valor do indicador. Mas eu quero ter uma nova "instância " do indicador de um novo pico, enquanto a velha "instância " continua funcionando e mudando valores. Quero conseguir isto usando os métodos padrão do MQ4, porque sei muito pouco sobre classes, estruturas e outras heranças. Obrigado!
 
Александр:
Eu tenho uma função (é um indicador em meu consultor especializado, eu preciso dela e não é desafiada, esta o peru e começa a funcionar (em contagem regressiva) a partir de um novo pico). Eu tenho um indicador com vários parâmetros que mudam o tempo todo. Como quero evitar um ciclo, torno estes parâmetros externos (para a função externa) a fim de não perder seus valores. E em qualquer nova chamada de função, eu vejo apenas a mudança do valor do indicador. Mas eu quero ter uma nova "instância " do indicador de um novo pico, enquanto a velha "instância " continua trabalhando e mudando valores. Quero conseguir isto usando os métodos padrão do MQ4, porque sei muito pouco sobre classes, estruturas e outras heranças. Obrigado!

Não ajudou.

Você provavelmente deveria aprender o idioma para não ficar confuso sobre os termos, pelo menos.

Não pense que todos entendem o que se chama uma variável externa, o que significa "chamar uma função de forma autônoma".

E o que um loop tem a ver com isso, que você não quer usar, mais uma vez, por razões que só você entende.

Bem, eu não espero entendê-lo.


 
//+------------------------------------------------------------------+
//|           Проверка нажатия клавиш на клавиатуре                  |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_KEYDOWN)
     {
     Alert(lparam);
     }
   }

Você pode me dizer como verificar a combinação, por exemplo, Shift+A !