Schreiben Sie in einen gemeinsamen Ordner aller Terminals. Eines schreibt - die anderen lesen und erstellen ein Diagramm. Dies ist eine grobe Verallgemeinerung.
es ist klar, aber in vindex, wenn eine Datei für die Änderung verwendet wird, d.h. im Moment des Schreibens ist der Zugriff auf das Lesen geschlossen, und wenn die Last auf der CPU groß ist, kann es lang sein, sollte es irgendwie berücksichtigt werden.
Wenn in word360 oder google allgemeiner Zugriff und allgemeine Bearbeitung dort das Problem mit der Warteschlange gelöst ist. Tippen ist nicht schreiben, autosave und manuell speichern. Und es gibt eine Warteschlange.
Und so, ja, natürlich, der Commons-Ordner ist nicht in der Sandbox, er ist außerhalb.
SuhanovDM94 einen Indikator erstellen, der eine Datei mit USDTRY-Kursen aus dem gemeinsamen Speicher liest, dann den Spread berechnet und ihn auf diesem "einzelnen" Chart als regelmäßige Linie zeichnet. Etwas Besseres ist mir noch nicht eingefallen. Vielen Dank für die Tipps :)
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
Guten Tag Programmierer! Bitte helfen Sie mir mit einem Skript. Ich brauche das Skript, um eine Vielzahl von vertikalen Linien auf dem Diagramm für eine Liste von Daten zu zeichnen. Das heißt, zum Beispiel: Ich gebe in den Hauptteil des Codes eine Liste von z.B. 100 Daten ein, und das Skript zeichnet einfach eine vertikale Linie für jedes Datum.
Ich habe angefangen, hier etwas auszuprobieren, aber irgendwie erweist es sich als sehr umständlich, und es ist nur eine Linie.
#property strict//--- описание#property description"Скрипт строит графический объект \"Вертикальная линия\"."#property description"Дата точки привязки задается в процентах от ширины"#property description"окна графика в барах."//--- покажем окно входных параметров при запуске скрипта#property script_show_inputs//--- входные параметры скриптаinputstring InpName="VLine"; // Имя линииinputint InpDate=25; // Дата линии в %inputcolor InpColor=clrRed; // Цвет линииinputENUM_LINE_STYLE InpStyle=STYLE_DASH; // Стиль линииinputint InpWidth=3; // Толщина линииinputbool InpBack=false; // Линия на заднем планеinputbool InpSelection=true; // Выделить для перемещенийinputbool InpHidden=true; // Скрыт в списке объектов//+------------------------------------------------------------------+//| Создает вертикальную линию |//+------------------------------------------------------------------+bool VLineCreate(constlong chart_ID=0, // ID графикаconststring name="VLine", // имя линииconstint sub_window=0, // номер подокнаdatetime time=0, // время линииconstcolor clr=clrRed, // цвет линииconstENUM_LINE_STYLE style=STYLE_SOLID, // стиль линииconstint width=1, // толщина линииconstbool back=false, // на заднем планеconstbool selection=true, // выделить для перемещенийconstbool hidden=true) // скрыт в списке объектов
{
//--- если время линии не задано, то проводим ее через последний бар
time=TimeCurrent();
ObjectCreate(chart_ID,name,OBJ_VLINE,sub_window,time,0);
//--- установим цвет линииObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линииObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим толщину линииObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) планеObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения линии мышью//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection//--- по умолчанию равен true, что позволяет выделять и перемещать этот объектObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
return(true);
}
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
datetime time=TimeCurrent();
//--- создадим вертикальную линию
VLineCreate(0,InpName,0,time,InpColor,InpStyle,InpWidth,InpBack,
InpSelection,InpHidden);
return;
}
Guten Tag Programmierer! Bitte helfen Sie mir mit einem Skript. Ich brauche das Skript, um eine Vielzahl von vertikalen Linien auf dem Diagramm für eine Liste von Daten zu zeichnen. Das heißt, zum Beispiel: Ich gebe in den Körper des Codes, eine Liste von 100 Daten zum Beispiel, und das Skript zeichnet nur eine vertikale Linie für jedes Datum.
Ich habe angefangen, hier etwas auszuprobieren, aber irgendwie erweist es sich als sehr umständlich, und es ist nur eine Linie.
Das Datum als String durch das Trennzeichen.
Dann diese Zeichenkette in ein Array aufteilen.
Dann eine Schleife durch das Array bei jeder Iteration durch Aufruf von
Um eine Linie zu zeichnen, müssen Sie nichts in eine Zeichenkette umwandeln.
Sie haben die Aufgabe beschrieben, aber Sie haben sie nicht vollständig beschrieben, so dass die Leute raten müssen.
Wie wollen Sie 100 Daten erfassen?
Werden Sie sie in den Text des Drehbuchs schreiben?
oder geben Sie sie manuell ein, wenn Sie den Expert Advisor starten?
Ich habe es geprüft. Der zweite Fall ist gut, aber er ist nicht geeignet, da jedes Datum manuell in das Fenster eingegeben werden muss, was zeitaufwändig ist. Es sollte einfach sein... "ctrl-c, ctrl-v".
Im ersten Fall werden aus irgendeinem Grund nicht 3 Linien gezeichnet, sondern nur eine, und zwar bei der letzten Kerze. Warum, ist noch nicht klar, ich gehe der Sache nach.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Schreiben Sie in einen gemeinsamen Ordner aller Terminals. Eines schreibt - die anderen lesen und erstellen ein Diagramm. Dies ist eine grobe Verallgemeinerung.
es ist klar, aber in vindex, wenn eine Datei für die Änderung verwendet wird, d.h. im Moment des Schreibens ist der Zugriff auf das Lesen geschlossen, und wenn die Last auf der CPU groß ist, kann es lang sein, sollte es irgendwie berücksichtigt werden.
Wenn in word360 oder google allgemeiner Zugriff und allgemeine Bearbeitung dort das Problem mit der Warteschlange gelöst ist. Tippen ist nicht schreiben, autosave und manuell speichern. Und es gibt eine Warteschlange.
Und so, ja, natürlich, der Commons-Ordner ist nicht in der Sandbox, er ist außerhalb.
Lesen: https://www.mql5.com/ru/articles/115
Und außerdem: https://www.mql5.com/ru/articles/503
Guten Tag!
Könnten Sie mir bitte sagen, warum eine Vorwärtsprüfung notwendig ist?
Guten Tag Programmierer! Bitte helfen Sie mir mit einem Skript. Ich brauche das Skript, um eine Vielzahl von vertikalen Linien auf dem Diagramm für eine Liste von Daten zu zeichnen. Das heißt, zum Beispiel: Ich gebe in den Hauptteil des Codes eine Liste von z.B. 100 Daten ein, und das Skript zeichnet einfach eine vertikale Linie für jedes Datum.
Ich habe angefangen, hier etwas auszuprobieren, aber irgendwie erweist es sich als sehr umständlich, und es ist nur eine Linie.
Guten Tag Programmierer! Bitte helfen Sie mir mit einem Skript. Ich brauche das Skript, um eine Vielzahl von vertikalen Linien auf dem Diagramm für eine Liste von Daten zu zeichnen. Das heißt, zum Beispiel: Ich gebe in den Körper des Codes, eine Liste von 100 Daten zum Beispiel, und das Skript zeichnet nur eine vertikale Linie für jedes Datum.
Ich habe angefangen, hier etwas auszuprobieren, aber irgendwie erweist es sich als sehr umständlich, und es ist nur eine Linie.
Das Datum als String durch das Trennzeichen.
Dann diese Zeichenkette in ein Array aufteilen.
Dann eine Schleife durch das Array bei jeder Iteration durch Aufruf von
Ich danke Ihnen. Da ich ein sehr oberflächlicher Programmierer bin. Ich werde der Reihe nach fragen.
"Setzen Sie das Datum in einen String mit einem Trennzeichen."
Verwenden Sie " string TimeToString( ""
????
????
Sie müssen nichts in eine Zeichenkette umwandeln, um eine Linie zu zeichnen.
Sie haben das Problem beschrieben, aber nicht vollständig, so dass man es selbst herausfinden muss.
Wie wollen Sie 100 Daten aufzeichnen?
Werden Sie sie in den Text des Skripts schreiben?
Oder werden Sie sie manuell eingeben, wenn Sie den Expert Advisor starten?
Um eine Linie zu zeichnen, müssen Sie nichts in eine Zeichenkette umwandeln.
Sie haben die Aufgabe beschrieben, aber Sie haben sie nicht vollständig beschrieben, so dass die Leute raten müssen.
Wie wollen Sie 100 Daten erfassen?
Werden Sie sie in den Text des Drehbuchs schreiben?
oder geben Sie sie manuell ein, wenn Sie den Expert Advisor starten?
Ich habe es geprüft. Der zweite Fall ist gut, aber er ist nicht geeignet, da jedes Datum manuell in das Fenster eingegeben werden muss, was zeitaufwändig ist. Es sollte einfach sein... "ctrl-c, ctrl-v".
Im ersten Fall werden aus irgendeinem Grund nicht 3 Linien gezeichnet, sondern nur eine, und zwar bei der letzten Kerze. Warum, ist noch nicht klar, ich gehe der Sache nach.