Características úteis da KimIV - página 106

 
vvg:


Eu queria usar esta função mas encontrei a seguinte situação: quando aparece um novo extremo, o nível de preços não muda imediatamente, mas permanece o mesmo por algum tempo. Isso me perturba durante os testes. Como consertá-lo?

Favor fornecer provas materiais: símbolo, data, hora, preço. Gostaria de repetir sua situação.
 
KimIV:
vvg:


Eu queria usar esta função, mas enfrentei a seguinte situação: quando aparece um novo extremo, o nível de preços não muda imediatamente, mas permanece o mesmo por algum tempo.

Impede os testes. Como consertá-lo?

Favor fornecer provas materiais: símbolo, data, hora, preço. Gostaria de repetir sua situação.
Boa noite! anexei um código à minha EA permitindo que ela negoceie em um determinado período de tempo, mas a EA continua a negociar, embora não tenha tido nenhum erro durante a compilação! Não posso fazer negócios com base na volatilidade do mercado (negócios abertos se a volatilidade for maior que 50)! Poderia me mostrar como fazer isso, porque já estou exausto! Obrigado antecipadamente!!!!
Arquivos anexados:
dmx.mq4  3 kb
 

Por que você colocou sua função nas variáveis globais?

// Impedir o Expert Advisor de negociar C e OP
se ( (Hora()===20 && Minuto()>=59) && (Hora()==08 && Minuto()>=59) )
retornar;

Deve ser colocado no início! Provavelmente, quando o laço for iniciado, ele verá a condição errada e sairá sem abrir posições. Isto deve funcionar para você.


Arquivos anexados:
dmx_1.mq4  3 kb
 
LLIAMAH:

Por que você colocou sua função nas variáveis globais?

// Impedir o Expert Advisor de negociar C e OP
se ( (Hora()===20 && Minuto()>=59) && (Hora()==08 && Minuto()>=59) )
retornar;

Deve ser colocado no início! Provavelmente, quando o laço for iniciado, ele verá a condição errada e sairá sem abrir posições. Isto deve ajudar você.


Obrigado, mas infelizmente nenhuma mudança
 
dimas7469:
Obrigado, mas infelizmente nenhuma mudança

if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) ) 
return;

Estou vendo...

if (Hour()>=21 || Hour()<=9) 
return;

É assim que deve ser.
Não é preciso complicar o que pode ser simplificado...

 
todem:
para que serve o apersand ao final de "double&".
Isto indica que um array declarado nas variáveis EA é passado para a função por referência. Depois de retornar da função, esta matriz conterá os valores que esta função escreveu nela.
 
Boa tarde. Prezado KimIV. Seu e-News-Lucky$ EA abre ordens de parada. Você pode refazê-lo para abrir limites? Não sou especialista em programação de computadores :)), portanto, estou pedindo sua ajuda. Eu ficaria feliz.
Arquivos anexados:
 

Como fazer:

Se a Condição1 for atendida, então não a verifique novamente, e verifique a Condição2 nos próximos ticks e assim por diante?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
Você pode me dizer se há um roteiro no tema que fecha todas as ordens abertas quando o lucro total de n pips é alcançado?
 

Olá Igor. Estou usando sua função IniFiles.mqh, ela é perfeita para meus propósitos. Muito obrigado.

Você tem (pronto e disposto a comprar)))) o mesmo, mas por trabalhar com a excel? Tentei várias opções como esta https://www.mql5.com/ru/code. Mas a leitura de um arquivo de célula é acompanhada por uma abertura explícita do arquivo na área de trabalho a cada tick. É possível programar a leitura de dados celulares como em IniFiles? Eu preciso disto para ler os dados de um DDE rápido.