[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 419

 
hronik1967:
Se essa algaraviada acima está sendo escrita por novatos!!, então eu devo ser um embrião de comerciante. Fizeram uma pergunta simples e a ignoraram totalmente. Eu provavelmente não sou digno de estar aqui. Eu não sou digno disso. Talvez alguém preste atenção. Vou perguntar novamente, baixei e coloquei um Expert Advisor Forex Cieaner para EURUSD, negociei em um intervalo de 30 minutos, mas não vejo nenhuma negociação. Eu coloquei Ilan 1.6 em GBRUSD antes disso, tudo é normal lá. O que eu não fiz? QUALQUER PESSOA LÁ FORA, POR FAVOR ME DIGA!!!

Muitas pessoas não conhecem tal conselheiro. Eles não querem procurá-lo e descarregá-lo. Há mais perguntas sobre o código.
 
hronik1967:
Se essa algaraviada acima está sendo escrita por novatos!!, então eu devo ser um embrião de comerciante. Fizeram uma pergunta simples e a ignoraram totalmente. Eu provavelmente não sou digno de estar aqui. Eu não sou digno disso. Talvez alguém preste atenção. Vou perguntar novamente, baixei e coloquei um Expert Advisor Forex Cieaner para EURUSD, negociei em um intervalo de 30 minutos, mas não vejo nenhuma negociação. Eu coloquei Ilan 1.6 em GBRUSD antes disso, tudo é normal lá. O que eu não fiz? QUALQUER PESSOA LÁ FORA, POR FAVOR ME DIGA!!!
O carro está na estrada, não vai. Pessoal, me ajudem, o que há de errado com isso? Isso é aproximadamente o tamanho de sua pergunta EA.
Você não recebe uma resposta porque há pelo menos duas dúzias de razões da mais variada natureza. O Expert Advisor de outra pessoa no terminal de outra pessoa de um comerciante com qualificações desconhecidas.
 

Ajuda.

Eu quis dizer (dois posts acima) na revista imprime ou não imprime.

Print("newZZ_240=",Curr_zz240) não imprime;

Imprime("newTime",mn240, ",TimeToStr(CurrTime240)) imprime;

Isso significa que algo está errado com o NewZigZag H4 . Não entendo como ou o quê. Parece ser assim, mas não há nenhuma impressão.

Tenho feito muitos estudos diferentes sobre ZZ. Tenho obtido resultados diferentes em diferentes TFs. Agora eu quero juntar tudo. Eu tenho muitos cálculos e se eu os fizer por carrapatos ou barras novas, ele irá carregar fortemente meu computador. Basta processar os dados quando um novo ZZ extrema aparece.

Arquivos anexados:
mtfqprint.mq4  19 kb
 
Graças ao gince e ao granit77 pelas respostas. Eles parecem sugerir que um especialista deveria ser chamado para a casa. É basicamente o que eu pensava, não se pode explicar com os dedos.
 
FAQ:

Uma característica - uma pequena inconsistência, que, no entanto, não interfere, e às vezes até oferece oportunidades sem documentação, como OrderClosePrice() - se você fechar um pedido com este parâmetro no preço de fechamento, ele fechará, sem necessidade de se preocupar em determinar o preço por tipo de pedido.

Bug - bug no programa (característica incorrigível)

Servidec - um lugar onde os usuários escrevem cartas com os bugs detectados. Ele está localizado no quinto fórum de seu perfil (é necessário um registro adicional)

Grosse danke schoen))))
 

Boa tarde. Minha pergunta é a seguinte. No livro MQL4.community, na seção "Standard Functions" (Funções Padrão) da seção "String Functions and Data Conversion Functions" (Funções de Conversão de Dados e Funções de String), é dado o seguinte exemplo de strings.mq4 Expert Advisor (dado na íntegra do livro)

//--------------------------------------------------------------------
// strings.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
extern int Quant_Bars=100;             // Количество баров
datetime   Time_On;
string     Prefix    ="Paint_";
//--------------------------------------------------------------- 2 --
int init()                             // Спец. функция init()
  {
   int Ind_Bar;                        // Индекс бара
   Time_On=Time [Quant_Bars];          // Время первого раскрашенного
   for(Ind_Bar=Quant_Bars-1; Ind_Bar>=0; Ind_Bar--)// Цикл по барам
     {
      Create(Ind_Bar,1);               // Нарисуем тонкую линию
      Create(Ind_Bar,2);               // Нарисуем толстую линию
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из init()
  }
//--------------------------------------------------------------- 3 --
int start()                            // Спец. функция start
  {
   datetime T1, T2;                    // 1 и 2 координаты времени
   int Error,Ind_Bar;                  // Код ошибки и индекс бара
   double P1, P2;                      // 1 и 2 координата цены
   color Col;                          // Цвет созданного объекта
//--------------------------------------------------------------- 4 --
   for(int Line=1; Line<=2; Line++)    // Цикл по видам линий
     {
      string Nom_Lin =Line + "_";      // Строка с номером линии
      //    string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
      for(Ind_Bar=0; ;Ind_Bar++)       // Цикл по барам
        {
//--------------------------------------------------------------- 5 --
         datetime T_Bar= Time[Ind_Bar];// Время открытия бара
         if (T_Bar < Time_On) break;   // Заграничные не раскрашиваем
         string Str_Time=TimeToStr(T_Bar);       // Строка со временем
         string His_Name=Prefix+Nom_Lin+Str_Time;// Имя объекта
//--------------------------------------------------------------- 6 --
         T1=ObjectGet(His_Name,OBJPROP_TIME1);// Запрос коорд. t1
         Error=GetLastError();         // Получение кода ошибки
         if (Error==4202)              // Если объекта нет :(
           {
            Create(Ind_Bar,Line);      // Вызов ф-ии создания объекта
            continue;                  // На следующую итерацию
           }
//--------------------------------------------------------------- 7 --
         T2 =ObjectGet(His_Name,OBJPROP_TIME2); // Запрос коорд. t2
         P1 =ObjectGet(His_Name,OBJPROP_PRICE1);// Запрос коорд. p1
         P2 =ObjectGet(His_Name,OBJPROP_PRICE2);// Запрос коорд. p1
         Col=ObjectGet(His_Name,OBJPROP_COLOR); // Запрос цвета
         if(T1!=T_Bar || T2!=T_Bar || // Не те координаты или цвет:
            (Line==1 && (P1!=High[Ind_Bar] || P2!=  Low[Ind_Bar])) ||
            (Line==2 && (P1!=Open[Ind_Bar] || P2!=Close[Ind_Bar])) ||
            (Open[Ind_Bar] Close[Ind_Bar] && Col!=Red)  ||
            (Open[Ind_Bar]==Close[Ind_Bar] && Col!=Green)  )
           {
            ObjectDelete(His_Name);    // Удаляем объект
            Create(Ind_Bar,Line);      // Создаём правильный объект
           }
//--------------------------------------------------------------- 8 --
        }
     }
   WindowRedraw();                     // Перерисовка изображения 
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объектов
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --
int Create(int Ind_Bar, int Line)      // Пользовательская функция..
  {                                    // ..создания объекта
   color Color;                        // Цвет объекта
   datetime T_Bar=Time [Ind_Bar];      // Время открытия бара
   double   O_Bar=Open [Ind_Bar];      // Цена открытия бара
   double   C_Bar=Close[Ind_Bar];      // Цена закрытия бара
   double   H_Bar=High [Ind_Bar];      // Максимальная цена бара
   double   L_Bar=Low  [Ind_Bar];      // Минимальная цена бара
 
   string Nom_Lin =Line + "_";         // Строка - номер линии
   // string Nom_Lin  = DoubleToStr(Line,0)+"_";// Можно и так
   string Str_Time=TimeToStr(T_Bar);   // Строка - время откр.     
   string His_Name=Prefix+Nom_Lin+Str_Time;// Имя созаваемого объект
   if (O_Bar < C_Bar) Color=Blue;      // Выбор цвета в зависимости..
   if (O_Bar >C_Bar) Color=Red;        // .. от характеристик бара
   if (O_Bar ==C_Bar) Color=Green;
 
   switch(Line)                        // Тонкая или толстая линия
     {
      case 1:                          // Тонкая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,H_Bar,T_Bar,L_Bar);
         break;                        // Выход из switch
      case 2:                          // Толстая линия
         ObjectCreate(His_Name,OBJ_TREND,0,T_Bar,O_Bar,T_Bar,C_Bar);
         ObjectSet(   His_Name, OBJPROP_WIDTH, 3);// Стиль     
     }
   ObjectSet(    His_Name, OBJPROP_COLOR, Color); // Цвет
   ObjectSet(    His_Name, OBJPROP_RAY,   false); // Луч
   ObjectSetText(His_Name,"Объект создан экспертом",10);// Описание
   return;                             // Выход из польз. ф-ии
  }
//-------------------------------------------------------------- 11 –
 

... continuou...

No final da subseção Função StringSubstr entre parênteses está a seguinte frase: "separadamente devemos observar que no primeiro para loop (minha nota: deve ser deinit() pois não há outra maneira de apagar objetos) não podemos apagar objetos, pois após cada deleção o número total de objetos e sua numeração mudará e alguns nomes de objetos serão ignorados". Mas na citada EA não há nenhum segundo para o loop. Além disso, a variável Quant_Del definida na função deinit() antes do for loop é inicializada com zero, enquanto a variável i não foi definida em nenhum lugar antes do for loop.

   for(int k=0; k<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
         ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве

acontece que o código acima omite apenas trivialmente várias linhas de programa.

Então a primeira pergunta é a seguinte: foi realmente uma omissão trivial de várias linhas ou é um programa tão complicado que um novato não consegue entender seu significado sem ajuda externa?

Além disso... No mesmo capítulo da mesma seção, há um link para o mesmo Expert Advisor (no arquivo anexo) antes do texto citado que, ao ser clicado, abre o mesmo Expert Advisor no MetaElitor. Mas o texto deste Expert Advisor é diferente: a função deinit() se parece com isto

//--------------------------------------------------------------- 9 --
int deinit()                           // Спец. функция deinit()
  {
   string Name_Del[1];                 // Объявление массива
   int Quant_Del=0;                    // Количество удаляемых объекто
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   ArrayResize(Name_Del,Quant_Objects);// Необходимый размер массива
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Найден объект, ..
        {                              // .. начинающийся с Paint_
         Quant_Del=Quant_Del+1;        // Колич имён к удалению
         Name_Del[Quant_Del-1]=Obj_Name;//Запоминаем имя удаляемого
        }
     }
   for(int i=0; i<=Quant_Del; i++)     // Удаляем объекты с именами,.. 
      ObjectDelete(Name_Del[i]);       // .. имеющимися в массиве
   return;                             // Выход из deinit()
  }
//-------------------------------------------------------------- 10 --

Então, se "combinar" a frase "Separadamente, note que você não pode excluir objetos no primeiro para loop, porque neste caso o número total de objetos e sua numeração mudará após cada exclusão, e alguns nomes de objetos serão pulados como resultado" E texto deinit() função da última variante, tenho a segunda pergunta:

Pergunta. Por que não posso apagar objetos no primeiro para loop colocando a função ObjectDelete(Object_Name) dentro da declaração if...? Algo parecido:

int deinit()                           // Спец. функция deinit()
  {
   int Quant_Objects=ObjectsTotal();   // Cтолько всего ВСЕХ объектов
   for(int k=0; k<Quant_Objects; k++)  // По количеству объектов 
     {
      string Obj_Name=ObjectName(k);   // Запрашиваем имя объекта
      string Head=StringSubstr(Obj_Name,0,6);// Извлекаем первые 6 сим
      if (Head==Prefix)                // Если найден объект, …
        {                              // ... начинающийся с Paint_,
         ObjectDelete(Obj_Name);       // … то его и удаляем
        }                              //конец if
     }                                 //конец for
   return;                             // Выход из deinit()
  }                                    //конец deinit
//-------------------------------------------------------------- 10 --

Por que depois de cada eliminação "... O número total de objetos vai mudar"...? Porque neste caso, a variável Quant_Objects, que determina o número total de objetos, obtém seu valor igual a ObjectsTotal(), FORWARD the for loop?

P.S. Obrigado antecipadamente pela resposta, a fim de não desperdiçar o fórum.



Arquivos anexados:
strings.mq4  7 kb
 

Rapazes, um pouco fora de tópico, mas ainda assim...

É possível "amigo" computadores/laptops com 32 e 64 bit Win7 via LAN ?
Tenho três laptops e um desktop (todos em casa) em dois laptops Win7(64 bits) e eles não são vistos de forma alguma na rede 32-bit Win7 Ultimate desktop. E a partir daí gostaria de administrar toda a multidão...

Alguma opção?

 
moskitman:

Rapazes, um pouco fora de tópico, mas ainda assim...

É possível "amigo" computadores/laptops com 32 e 64 bit Win7 via LAN ?
Tenho três laptops e um desktop (todos em casa) em dois laptops Win7(64 bits) e eles não são vistos de forma alguma na rede 32-bit Win7 Ultimate desktop. E a partir daí gostaria de administrar toda a multidão...

Alguma opção?

Em uma rede, não importa o tamanho do computador ou do sistema. Algo está errado com as configurações.
 
Zhunko:
Na rede, não importa o tamanho dos bits dos computadores e do sistema. Há algo de errado com as configurações.

Sim, eu mesmo pensei assim... Mas o fato é que, 64 vê todos na rede, 32 vê apenas 32. WTF???

sub: Poderia estar relacionado ao fato de que somente a área de trabalho (32) está nesta rede via cabo RG45, e todas as outras via wireless?

Mais ou menos o mesmo: