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.
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.
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.
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.
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.
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; // Флаг нового бараconstlong chart_ID=0; // ID графика conststring nname="TrendLine"; // имя линии constint 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; // Поймался новый бар
}
}
//=============================================================================================================intOnInit()
{
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 |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
ObjectsDeleteAll(0," ",-1,-1);
Print("------------Работа эксперта завершена!------------");
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
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;
}
}
//--------------------------------------------------------------------------------
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.
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
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.
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.
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.
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 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
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?
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.
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.
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.
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.
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).
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.
ж
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.