Errori, bug, domande - pagina 1718

 
Come si disattiva il salvataggio Unicode nel meta-editor? Ha bisogno di ANSI.
 
fxsaber:
Come si disattiva il salvataggio Unicode nel meta-editor? Ha bisogno di ANSI.

Perché questo bisogno?

L'editor salva automaticamente i file in Unicode se il testo contiene caratteri dalla gamma 128-255.

 
Alexey Da:

Perché questo bisogno?

L'editor salva automaticamente i file in Unicode se il testo ha caratteri nell'intervallo 128-255.

Ho tutti i file ora grandi il doppio. Li salvo in notepad in ANSI - ok. Dopo di che apro in meta editor e salvo - di nuovo unicode.

Prova ad aprire e salvare questo file allegato.

 
Ho diversi indicatori con le stesse stringhe
#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

Ho deciso di metterli in mqh e collegarli a "save". Si scopre che questo non può essere fatto - la #proprietà può essere impostata solo nel file sorgente mq5.

Perché una tale restrizione?

 

Non posso allegare allegati nei messaggi privati.

Almeno ex4 di 4.9 Mb

 
fxsaber:
Ho diversi indicatori che contengono le stesse stringhe

Ho deciso di metterli in mqh e collegarli a "save". Si scopre che questo non può essere fatto - la #proprietà può essere impostata solo nel file sorgente mq5.

Perché una tale restrizione?

In effetti, queste proprietà sono proprietà di un progetto indicatore MQL.

Al momento, il file di progetto di un programma MQL è il file sorgente *.mq5(4).
Inoltre, gli utenti possono usare file *.mqh di terzi che possono contenere queste proprietà.
 
Alexey Da:

Perché questo bisogno?

L'editor salva automaticamente i file in Unicode se il testo contiene caratteri dalla gamma 128-255.

Questo è qualcosa di nuovo. Perché non prendere la codifica per i caratteri a singolo byte dalle impostazioni di sistema? Questo è stato il default fino ad ora.

Di nuovo, si potrebbe fare un'opzione in modo che coloro che ne hanno bisogno possano abilitare il formato a due byte.

 
Ilyas:
Inoltre, gli utenti possono usare file *.mqh di terzi, che possono contenere queste proprietà.

È possibile impostarli in mqh, ma non saranno letti come se non esistessero.

 
Karputov Vladimir:
Quando avremo un esempio, combineremo tutto in un post: problema, esempio, dati del sistema operativo e del terminale.

Fatto! Ora sono sotto Win764bit, ma il problema è lo stesso. In tempo reale tutto è come dovrebbe essere, ma nel tester nella visualizzazione il punto sinistro della linea rimane fermo e quello destro si muove.

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; 
     } 


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


Forum sul trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

Alexey Kravchenko, 2016.10.04 09:09

Ciao!

Ho un problema che non capisco.

Disegno una normale TrendLine tra i punti di chiusura di due barre precedenti (su ogni nuova 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; 
     } 

Tutto funziona bene in tempo reale. Ma nella modalità di visualizzazione nel tester, il punto sinistro della linea è attaccato all'inizio del riferimento e non si muove affatto. Qual è il problema?

Z.U. Non mi sembra di avere questo problema con MT4.


Forum sul trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

Alexey Kravchenko, 2016.10.04 09:57

C'è un problema con l'esempio. La stessa shell bolt prende diversi file. Ne farò uno più semplice la sera quando torno a casa.

WinXP SP3. Costruire 1434

LE 0 14:55:39.873 Terminale MetaTrader 5 build 1434 avviato (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminale Microsoft Windows XP (PC basato su 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 Terminale C:\Programmi\MetaTrader 5

Z.U. In ogni caso, okromo quelle manipolazioni che ho dato sopra, non si fa altro. Quando viene rilevata una nuova barra, tutto viene cancellato e viene disegnata una nuova linea. Ma un esempio completo da compilare lo farò.


ж

 
Alexey Kravchenko:

Fatto! Ora sono sotto Win764bit, ma il problema è lo stesso. In tempo reale tutto è come dovrebbe essere, ma nel tester nella visualizzazione il punto sinistro della linea rimane fermo e quello destro si muove.


Riconoscimento. C'è un po' di cattiveria nel tester.