Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 214

 
Vladimir Tkach:

Há dois dias, tenho feito um belo painel. Mas acabou não sendo possível alterar os parâmetros do Expert Advisor definidos como entradas através dele.

O que eu faço agora?

sem imaginação alguma?

input double _PARAM=1.0; // да, input менять в коде нельзя, они типа const

double PARAM=0;         // но никто не заставляет использовать только и исключительно их

int OnInit()

{

   if (MoonPhaze()==0 && _PARAM>0.1) {

       PARAM=_PARAM;       // всё что задаёт пользователь через input должно проверяться и использоваться только внутри OnInit - это просто хороший тон

   }

}
 

Parece que sou mal compreendido.

Eu altero os parâmetros no painel (que está no gráfico), mas eles não mudam no Expert Advisor. Tristeza, tristeza.


 
Embora seus valores mudem ao longo do programa. OK, tudo bem.
 
missha32:

Por favor me ajude, estou completamente confuso ao escrever esta função

Eu preciso da função para devolver o número de pedidos fechados em um dia


Eu o escreveria assim:

int CountInHistoryCloseOrder() 
{
int kp=0;
for(int i=OrdersHistoryTotal(); i>=0; i--) 
 {
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) 
   {
    if(OrderSymbol()==Symbol() && OrderMagicNumber()==mn) 
     {//mn - должна быть глобальной
      if(TimeToString(OrderCloseTime(),TIME_DATE)==TimeToString(TimeCurrent(),TIME_DATE))
       {
        kp++;
       }
     }
   }
 }
return(kp);
 
missha32:

Por favor me ajude, estou completamente confuso ao escrever esta função

Eu preciso da função para devolver o número de pedidos fechados em um dia

int OrdersClosedInDay(datetime time) {

datetime from=time-TimeHour(time)*60*60-TimeMinutes(time)*60-TimeSeconds(time);

datetime to=from+24*60*60;

int count=0;

for(int pos=OrdersHistoryTotal()-1;pos>=0;pos--) {

   if (!OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)) continue;

   if (OrderCloseTime()>=from && OrderCloseTime()<to)   count++;

}

return count;

}

 
Valerius:


Eu o escreveria desta forma:

Obrigado pela ajuda, está começando a fazer sentido, mas somente no início de um novo dia os valores são redefinidos, e precisamos que ele fique até a próxima série de pedidos para ser fechado em um dia

Eu descobri e acrescentei outra função

 
Artyom Trishkin:
Não se pode desenhar objetos. Mas você pode desenhar usando a classe CCanvas - você pode lá
Obrigado!
 
Vladimir Tkach:

Parece que sou mal compreendido.

Eu altero os parâmetros no painel (que está no gráfico), mas eles não mudam no Expert Advisor. Tristeza.


Se você não quiser criar instâncias duplicadas e usá-las posteriormente no programa, você sempre pode definir parâmetros do usuário como "externos" - seus valores podem ser mudados programmaticamente no processo de trabalho.
 
Por favor, informe. Como faço para que minha EA feche na próxima vela?
 
AlGuru:
Por favor, informe. Como especificar na EA para fechar na próxima vela?
Se a barra em que a posição foi aberta for 1, então feche essa posição.
Razão: