Fehler, Irrtümer, Fragen - Seite 1718

 
Wie kann ich das Speichern von Unicode im Meta-Editor deaktivieren? Es braucht ANSI.
 
fxsaber:
Wie kann ich das Speichern von Unicode im Meta-Editor deaktivieren? Es braucht ANSI.

Warum diese Notwendigkeit?

Der Editor speichert Dateien automatisch in Unicode, wenn der Text Zeichen aus dem Bereich 128-255 enthält.

 
Alexey Da:

Warum diese Notwendigkeit?

Der Editor speichert Dateien automatisch in Unicode, wenn der Text Zeichen im Bereich 128-255 enthält.

Ich habe jetzt alle Dateien doppelt so groß. Ich speichere sie in Notepad in ANSI - ok. Danach öffne ich im Meta-Editor und speichere - wieder Unicode.

Versuchen Sie, diese angehängte Datei zu öffnen und zu speichern.

 
Ich habe mehrere Indikatoren mit denselben Zeichenfolgen
#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

Ich beschloss, sie in mqh zu speichern und sie mit "Speichern" zu verknüpfen. Es stellt sich heraus, dass dies nicht möglich ist - #property kann nur in der mq5-Quelldatei gesetzt werden.

Warum eine solche Einschränkung?

 

Ich kann in privaten Nachrichten keine Anhänge anhängen.

Mindestens ex4 von 4,9 Mb

 
fxsaber:
Ich habe mehrere Indikatoren, die die gleichen Zeichenfolgen enthalten

Ich beschloss, sie in mqh zu speichern und sie mit "Speichern" zu verknüpfen. Es stellt sich heraus, dass dies nicht möglich ist - #property kann nur in der mq5-Quelldatei gesetzt werden.

Warum eine solche Einschränkung?

Diese Eigenschaften sind in der Tat Eigenschaften eines MMS-Indikatorprojekts.

Zurzeit ist die Projektdatei eines MQL-Programms die *.mq5(4)-Quelldatei.
Darüber hinaus können Benutzer *.mqh-Dateien von Drittanbietern verwenden, die diese Eigenschaften enthalten können.
 
Alexey Da:

Warum diese Notwendigkeit?

Der Editor speichert Dateien automatisch in Unicode, wenn der Text Zeichen aus dem Bereich 128-255 enthält.

Das ist etwas Neues. Warum wird die Kodierung für Ein-Byte-Zeichen nicht aus den Systemeinstellungen übernommen? Dies war bisher die Standardeinstellung.

Auch hier könnte eine Option vorgesehen werden, damit diejenigen, die dies benötigen, das Zwei-Byte-Format aktivieren können.

 
Ilyas:
Darüber hinaus können Benutzer *.mqh-Dateien von Drittanbietern verwenden, die diese Eigenschaften enthalten können.

Es ist möglich, sie in mqh zu setzen, aber sie werden nicht gelesen, als ob sie nicht existieren würden.

 
Karputov Vladimir:
Wenn wir ein Beispiel haben, werden wir alles in einem Beitrag zusammenfassen: Problem, Beispiel, Daten des Betriebssystems und des Terminals.

Erledigt! Ich arbeite jetzt unter Win764bit, aber das Problem ist dasselbe. In Echtzeit ist alles wie es sein soll, aber im Tester in der Visualisierung bleibt der linke Punkt der Linie fest und der rechte bewegt sich.

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 zum Thema Handel, automatisierte Handelssysteme und Strategietests

Wanzen, Wanzen, Fragen

Alexey Kravchenko, 2016.10.04 09:09

Hallo!

Ich habe ein Problem, das ich nicht verstehe.

Ich zeichne eine normale Trendlinie zwischen den Schlusspunkten zweier vorheriger Balken (auf jedem neuen Balken).

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

In Echtzeit funktioniert alles einwandfrei. Im Visualisierungsmodus des Testers ist der linke Punkt der Linie jedoch an den Anfang der Referenz gebunden und bewegt sich nicht. Was ist das Problem?

Z.U. scheine ich dieses Problem mit MT4 nicht zu haben.


Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Wanzen, Wanzen, Fragen

Alexey Kravchenko, 2016.10.04 09:57

Es gibt ein Problem mit dem Beispiel. Dort nimmt bolt shell selbst mehrere Dateien auf. Ich werde abends, wenn ich nach Hause komme, eine einfachere Version machen.

WinXP SP3. Gebäude 1434

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 gestartet (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (X86 basierter PC), 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:\Programmdateien\MetaTrader 5

ZY. in jedem Fall okrozme diese Manipulationen, die ich oben gab, nichts anderes getan wird. Wenn ein neuer Takt erkannt wird, wird alles gelöscht und eine neue Linie gezeichnet. Aber ein komplettes Beispiel zu kompilieren werde ich tun.


ж

 
Alexey Kravchenko:

Erledigt! Ich arbeite jetzt unter Win764bit, aber das Problem ist dasselbe. In Echtzeit ist alles wie es sein soll, aber im Tester in der Visualisierung bleibt der linke Punkt der Linie fest und der rechte bewegt sich.


Danksagung. Der Tester hat einige Gemeinheiten auf Lager.