Erros, bugs, perguntas - página 1718

 
Como desactivar a poupança Unicode no meta-editor? Precisa de ANSI.
 
fxsaber:
Como desactivar a poupança Unicode no meta-editor? Precisa de ANSI.

Porquê esta necessidade?

O editor guarda automaticamente ficheiros em Unicode se o texto contiver caracteres do intervalo 128-255.

 
Alexey Da:

Porquê esta necessidade?

O editor guarda automaticamente ficheiros em Unicode se o texto tiver caracteres no intervalo 128-255.

Tenho agora todos os ficheiros com o dobro do tamanho. Guardo-os no bloco de notas em ANSI - ok. Abro no meta editor depois disso e salvo - unicode novamente.

Tente abrir e guardar este ficheiro anexo.

 
Tenho vários indicadores com as mesmas cordas
#property indicator_separate_window

#property indicator_plots 1
#property indicator_buffers 1

#property  indicator_type1 DRAW_LINE
#property  indicator_style1 STYLE_SOLID
#property  indicator_color1 clrRed

Decidi colocá-los em mqh e ligá-los para "salvar". Acontece que isto não pode ser feito - #propriedade só pode ser definida no ficheiro mq5- fonte.

Porquê uma tal restrição?

 

Não posso anexar anexos em mensagens privadas.

Pelo menos ex4 de 4.9 Mb

 
fxsaber:
Tenho vários indicadores que contêm as mesmas cordas

Decidiu colocá-los em mqh e ligá-los para "salvar". Acontece que isto não pode ser feito - #propriedade só pode ser definida no ficheiro mq5- fonte.

Porquê uma tal restrição?

Na verdade, estas propriedades são propriedades de um projecto indicador de MQL.

Neste momento, o ficheiro de projecto de um programa MQL é o ficheiro fonte *.mq5(4).
Além disso, os utilizadores podem utilizar ficheiros *.mqh de terceiros que podem conter estas propriedades.
 
Alexey Da:

Porquê esta necessidade?

O editor guarda automaticamente ficheiros em Unicode se o texto contiver caracteres do intervalo 128-255.

Isto é algo novo. Por que não tirar a codificação para caracteres de byte único a partir das definições do sistema? Este tem sido o padrão até agora.

Mais uma vez, poderia ser feita uma opção para que aqueles que precisam dela pudessem activar o formato de dois bytes.

 
Ilyas:
Além disso, os utilizadores podem utilizar ficheiros *.mqh de terceiros, que podem conter estas propriedades.

É possível colocá-los em mqh, mas não serão lidos como se não existissem.

 
Karputov Vladimir:
Quando tivermos um exemplo, combinaremos tudo num só posto: problema, exemplo, dados do sistema operativo e terminal.

Feito! Estou agora sob Win764bit, mas o problema é o mesmo. Em tempo real tudo é como deveria ser, mas no verificador na visualização, o ponto esquerdo da linha cola firmemente e o direito move-se.

datetime prevtime=0,
         time_last_bar[1]={0};

bool    New_Bar=false;      // Флаг нового бара
                 
const long            chart_ID=0;        // ID графика 
const string          nname="TrendLine";  // имя линии 
const int             sub_window=0;      // номер подокна 
datetime              time1=0;           // время первой точки 
double                price1=0;          // цена первой точки 
datetime              time2=0;           // время второй точки 
double                price2=0;          // цена второй точки 
datetime prevbar=0;
double cclose[];
datetime ttime[];

//--------------------------------------------------------------------
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   New_Bar=false;                               // Нового бара нет
   
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   
   if(time_last_bar[0] != prevtime)                        // Сравниваем время
     {
      prevtime = time_last_bar[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }


//=============================================================================================================
int OnInit()
  {
    
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   prevtime = time_last_bar[0];
ArraySetAsSeries(cclose,true);
ArraySetAsSeries(ttime,true);  
ArrayResize(cclose,5);
ArrayResize(ttime,5);   
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  
   ObjectsDeleteAll(0," ",-1,-1);
   Print("------------Работа эксперта завершена!------------"); 
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 Fun_New_Bar();                               // Обращение к ф-ии
 if (New_Bar==false)                          // Если бар не новый..
    return;                                   // ..то уходим
 Print("новый бар !");  

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 


} 
 //--------------------------------------------------------------------------------


Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Insectos, insectos, perguntas

Alexey Kravchenko, 2016.10.04 09:09

Olá !

Tenho um problema que não compreendo.

Desenho uma TrendLine normal entre pontos de fecho de duas barras anteriores (em cada nova barra).

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 

Tudo funciona bem em tempo real. Mas no modo de visualização no testador, o ponto esquerdo da linha está ligado ao início da referência e não se move de todo. Qual é o problema?

Z.U. Parece que não tenho este problema com o MT4.


Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos

Insectos, insectos, perguntas

Alexey Kravchenko, 2016.10.04 09:57

Há um problema com o exemplo. A própria concha do parafuso leva vários ficheiros. Farei uma mais simples à noite, quando chegar a casa.

WinXP SP3. Construir 1434

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 iniciado (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC baseado em X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM: 1150 / 2037 Mb, HDD: 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 Terminal C:\Program Files\MetaTrader 5

Z.U. Em qualquer caso, okromo aquelas manipulações que eu dei acima, nada mais é feito. Quando uma nova barra é detectada, tudo é apagado e uma nova linha é traçada. Mas um exemplo completo a compilar vou fazer.


ж

 
Alexey Kravchenko:

Feito! Estou agora sob Win764bit, mas o problema é o mesmo. Em tempo real tudo é como deveria ser, mas no verificador na visualização, o ponto esquerdo da linha cola firmemente e o direito move-se.


Agradecimento. Há alguma maldade no provador.