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

 
Olá a todos, alguém tem um arquivo .exe para o metatrader 4? Exatamente dos desenvolvedores, não ligados a nenhuma dc
 
a.lxrn:
Olá a todos, alguém tem um arquivo .exe para o metatrader 4? Exatamente dos desenvolvedores, não vinculados a nenhum dc

o arquivo não é vinculado, pegue metatrader.exe e metaeditorium.exe de qualquer dtz e execute-o a partir de uma pasta separada e crie a conta. Não há um instalador 4ka no site. Mas para que serve?

 
Igor Makanu:

Soltar um indicador fractal e um Expert Advisor de teste com esta função em um gráfico

e reimprimir os valores encontrados passando-os para minha funçãoMODE_UPPER e MODE_LOWER

Você precisa se lembrar da hora do bar, no aparecimento de um novo bar a numeração mudará, e o tempo de abertura do bar é sempre constante

Isto é, quando você executar meu código, lembre-se da hora da barra onde o fractal foi detectado, então execute-o novamente, encontre a barra e compare a hora da barra com a lembrada - a hora é diferente, significa um novo fractal

Eu o fiz assim:

if((Hour()>=9 && Minute()==15) && Hour()<23)
   {
    Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);;Alert("secondtime1 = ",secondtime1);
      secondprice1=iHigh(NULL,0,barfrup_1);Alert("secondprice1 = ",secondprice1);
      firsttime1=iTime(NULL,0,barfrup_2);Alert("firsttime1 = ",firsttime1);
      firstprice1=iHigh(NULL,0,barfrup_2);Alert("firstprice1 = ",firstprice1);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }}}

Traça uma linha. Se eu acrescentar:

if(barfrup_1>3)  ObjectsDeleteAll();

Ele apaga esta linha e pronto. O que está errado?

 
novichok2018:

Eu o fiz assim:

Traça uma linha. Se eu acrescentar:

ele apaga essa linha e pronto. O que está errado?

Em um de seus cargos anteriores, você reclamou que não obteve resposta. Lembre-se de quantas vezes lhe foi dito para ler a documentação e as perguntas elementares vão desaparecer por si mesmas. Esta pergunta é novamente da série "fumar a documentação", fumar cuidadosamente sem perder uma palavra ou mesmo uma frase.

Você acha que tem um homônimo completo? Tão completo que seu ano e aniversário coincidem, sem mencionar seu sobrenome, nome e patronímico.

ObjectCreate - Графические объекты - Справочник MQL4
ObjectCreate - Графические объекты - Справочник MQL4
  • docs.mql4.com
[in]  Индекс окна, в которое будет добавлен объект. Окно должно существовать (индекс окна должен быть большим или равным 0 и меньшим, чем WindowsTotal()), иначе функция возвратит false. При использовании функции на собственном графике осуществляется прямой доступ к графику (как это всегда было в MQL4) и возврат true означает успешное создание...
 
novichok2018:

Eu o fiz assim:

Traça uma linha. Se eu acrescentar:

ele apaga essa linha e pronto. O que está errado?

ler meu primeiro post, quem dará à linha um nome diferente? ou mover a linha

esboçado, rapidamente, desenha algo, não entendo, tente usar este código para fazer seu trabalho

//+------------------------------------------------------------------+
//|                                                 FractalTrend.mq4 |
//|                                                            IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#include <ChartObjects\ChartObjectsLines.mqh>
CChartObjectTrend *UPLine, *DNLine;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   delete UPLine;
   delete DNLine;
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
   static datetime bar1 = 0;
   if(bar1 != Time[1])
   {
      delete UPLine;
      delete DNLine;
      int last_fractal = GetLastFractals(0, MODE_UPPER);
      int prev_fractal = GetLastFractals(last_fractal + 1, MODE_UPPER);
      UPLine = DrawTrendLine(MODE_UPPER, "UPLineFractal", prev_fractal, last_fractal, clrRed);
  
      last_fractal = GetLastFractals(0, MODE_LOWER);
      prev_fractal = GetLastFractals(last_fractal + 1, MODE_LOWER);
      DNLine = DrawTrendLine(MODE_LOWER, "DNLineFractal", prev_fractal, last_fractal, clrYellowGreen);
      bar1 = Time[1];
   }

}
//_______________________________________________________________________
CChartObjectTrend* DrawTrendLine(const int MODE, const string obj_name, const int bar2, const int bar1, const color clr)
{
   CChartObjectTrend *obj = new CChartObjectTrend;
   obj.Create(0, obj_name, 0, Time[bar2], MODE == MODE_UPPER ? High[bar2] : Low[bar2], Time[bar1], MODE == MODE_UPPER ? High[bar1] : Low[bar1]);
   obj.Color(clr);
   return obj;
}
//_______________________________________________________________________
int GetLastFractals(int bar, int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
{
   int i = bar;
   while(i < Bars && iFractals(NULL, 0, mode, i) < _Point) i++;
   return(i);
}
//_______________________________________________________________________
 
Alexey Viktorov:

Em um de seus cargos anteriores, você reclamou por não obter uma resposta. Lembre-se de quantas vezes você foi enviado para ler a documentação e as perguntas elementares desaparecerão por si só. Esta pergunta é novamente de uma série de "fumar a documentação", fumar cuidadosamente sem pular palavras e ainda mais sem pular sentenças.

Você acha que tem um homônimo completo? Tão cheio que seu ano e aniversário são os mesmos, para não mencionar seu sobrenome, nome e patronímico.

Sim, há muito compreendi de seus primeiros "conselhos" às minhas perguntas que você é o cara mais duro aqui, e se abaixar para explicar o que lhe parece elementar é "fora de lugar" para você. Mas não se pode deixar de afofar a cauda. Onde mais, senão na linha do recém-chegado!

 
Igor Makanu:

ler meu primeiro post, quem dará à linha um nome diferente? ou mover a linha

esboçou, apressadamente, algo desenha, não entendeu, experimente este código para fazer para sua tarefa

Obrigado! Vou continuar cavando.

 
novichok2018:

Desde seus primeiros "conselhos" até minhas perguntas, há muito compreendi que você é o cara mais difícil aqui, e é "fora de lugar" para você se abaixar para explicar o que lhe parece elementar. Mas não se pode deixar de afofar a cauda. Onde mais, mas em um fio para os recém-chegados!

Olhe, você não pode ser tão ignorante que mesmo estas palavras

Nome único do objeto.

na documentação não pode ver ou entender. É exatamente isso que eu tenho tentado dizer a vocês. Mas, aparentemente, em vão. Da próxima vez, tentarei dizer tudo o que penso sobre você em um sussurro. Alguns novatos permanecem novatos para sempre. Esse deve ser seu destino. Serra, Shura, serra...

 

Senhores camaradas@novichok2018 e@Alexey Viktorov, não fiquem muito emocionados! Eles são prejudiciais ao diálogo construtivo! ....

)))))))))))

 
Igor Makanu:

ler meu primeiro post, quem dará à linha um nome diferente? ou mover a linha

esboçou, rapidamente, algo desenhou, não entendeu, experimente este código para fazer sua tarefa

Fizemos isso:

Fun_New_Bar();
    if(New_Bar)      
     {
     barfrup_1 = GetLastFractals(1,MODE_UPPER);Alert("barfrup_1 = ",barfrup_1);
     barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);Alert("barfrup_2 = ",barfrup_2);
     if(barfrup_1==3)
     {
      secondtime1=iTime(NULL,0,barfrup_1);
      secondprice1=iHigh(NULL,0,barfrup_1);
      firsttime1=iTime(NULL,0,barfrup_2);
      firstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,firsttime1,firstprice1,secondtime1,secondprice1);
     }
      if(barfrup_1>3)  ObjectsDeleteAll();
      if(TimeCurrent()>secondtime1)
      {
      datetime Nsecondtime1=iTime(NULL,0,barfrup_1);
      double  Nsecondprice1=iHigh(NULL,0,barfrup_1);
      datetime Nfirsttime1=iTime(NULL,0,barfrup_2);
      double  Nfirstprice1=iHigh(NULL,0,barfrup_2);
      //рисуем новую трендовую линию High
      ObjectCreate("HighLine",OBJ_TREND,0,Nfirsttime1,Nfirstprice1,Nsecondtime1,Nsecondprice1);
      }
      }
 

Na minha opinião, é mais simples. Funciona bem com a história. Vou verificar online a demonstração, acho que também vai funcionar. Será que vai funcionar de verdade desde sua experiência?