Scrivere in una cartella comune a tutti i terminali. Uno scrive, gli altri leggono e creano un grafico. Si tratta di una generalizzazione approssimativa.
è chiaro, ma in vindex quando un file viene utilizzato per la modifica, cioè al momento della scrittura l'accesso alla lettura è chiuso, e se il carico sulla CPU è grande, può essere lungo, dovrebbe essere preso in considerazione in qualche modo.
Quando in word360 o google l'accesso generale e la modifica generale lì il problema con la coda è risolto. Digitare non è la scrittura, autosave e salvare manualmente. E c'è una coda.
E così, sì, certo, la cartella Commons non è nella sandbox, è fuori.
SuhanovDM94 creerò un indicatore che leggerà un file con le quotazioni di USDTRY dalla memoria condivisa, quindi calcolerà lo spread e lo disegnerà su questo "singolo" grafico come una linea regolare. Non ho ancora pensato a nulla di meglio. Grazie a tutti per i suggerimenti).
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
Buon pomeriggio programmatori! Vi prego di aiutarmi con uno script. Ho bisogno che lo script disegni una moltitudine di linee verticali sul grafico per un elenco di date. Cioè, per esempio: inserisco nel corpo del codice un elenco di 100 date, per esempio, e lo script disegna solo una linea verticale per ogni data.
Ho iniziato a provare qualcosa qui, ma in qualche modo risulta essere molto macchinoso, e si tratta di una sola linea.
#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;
}
Buon pomeriggio programmatori! Vi prego di aiutarmi con uno script. Ho bisogno che lo script disegni una moltitudine di linee verticali sul grafico per un elenco di date. Cioè, per esempio: inserisco nel corpo del codice un elenco di 100 date, per esempio, e lo script disegna solo una linea verticale per ogni data.
Ho iniziato a provare qualcosa qui, ma in qualche modo risulta essere molto macchinoso, e si tratta di una sola linea.
La data in stringa attraverso il separatore.
Poi dividere questa stringa in un array.
Quindi eseguire un ciclo attraverso l'array a ogni iterazione chiamando
Non è necessario convertire qualcosa in stringa per disegnare una linea.
Avete descritto il compito, ma non l'avete descritto completamente, quindi le persone devono tirare a indovinare.
Come farete a registrare 100 date?
Li scriverete nel corpo della sceneggiatura?
o le inserirai manualmente all'avvio dell'Expert Advisor?
Ho controllato. Il secondo caso è buono, ma non è adatto a causa della necessità di inserire manualmente ogni data nella finestra, il che richiede molto tempo. Dovrebbe essere semplice: "ctrl-c, ctrl-v".
Nel primo caso, per qualche motivo non vengono disegnate 3 linee, ma solo una, sulla candela più recente. Il motivo non è ancora chiaro, lo sto esaminando.
Scrivere in una cartella comune a tutti i terminali. Uno scrive, gli altri leggono e creano un grafico. Si tratta di una generalizzazione approssimativa.
è chiaro, ma in vindex quando un file viene utilizzato per la modifica, cioè al momento della scrittura l'accesso alla lettura è chiuso, e se il carico sulla CPU è grande, può essere lungo, dovrebbe essere preso in considerazione in qualche modo.
Quando in word360 o google l'accesso generale e la modifica generale lì il problema con la coda è risolto. Digitare non è la scrittura, autosave e salvare manualmente. E c'è una coda.
E così, sì, certo, la cartella Commons non è nella sandbox, è fuori.
Leggi: https://www.mql5.com/ru/articles/115
E anche: https://www.mql5.com/ru/articles/503
Buon pomeriggio!
Potreste dirmi perché è necessario un test di avanzamento?
Buon pomeriggio programmatori! Vi prego di aiutarmi con uno script. Ho bisogno che lo script disegni una moltitudine di linee verticali sul grafico per un elenco di date. Cioè, per esempio: inserisco nel corpo del codice un elenco di 100 date, per esempio, e lo script disegna solo una linea verticale per ogni data.
Ho iniziato a provare qualcosa qui, ma in qualche modo risulta essere molto macchinoso, e si tratta di una sola linea.
Buon pomeriggio programmatori! Vi prego di aiutarmi con uno script. Ho bisogno che lo script disegni una moltitudine di linee verticali sul grafico per un elenco di date. Cioè, per esempio: inserisco nel corpo del codice un elenco di 100 date, per esempio, e lo script disegna solo una linea verticale per ogni data.
Ho iniziato a provare qualcosa qui, ma in qualche modo risulta essere molto macchinoso, e si tratta di una sola linea.
La data in stringa attraverso il separatore.
Poi dividere questa stringa in un array.
Quindi eseguire un ciclo attraverso l'array a ogni iterazione chiamando
Grazie. Dato che sono un programmatore molto superficiale. Inizio a chiedere in ordine sparso.
"Mettere la data in una stringa con un delimitatore".
Utilizzare " stringa TimeToString( ""
????
????
Non è necessario convertire qualcosa in stringa per disegnare una linea.
Avete descritto il problema, ma non l'avete descritto completamente, quindi gli altri devono capirlo.
Come si fa a registrare 100 date?
Le scriverete nel corpo dello script?
Oppure le inserirai manualmente all'avvio dell'Expert Advisor?
Non è necessario convertire qualcosa in stringa per disegnare una linea.
Avete descritto il compito, ma non l'avete descritto completamente, quindi le persone devono tirare a indovinare.
Come farete a registrare 100 date?
Li scriverete nel corpo della sceneggiatura?
o le inserirai manualmente all'avvio dell'Expert Advisor?
Ho controllato. Il secondo caso è buono, ma non è adatto a causa della necessità di inserire manualmente ogni data nella finestra, il che richiede molto tempo. Dovrebbe essere semplice: "ctrl-c, ctrl-v".
Nel primo caso, per qualche motivo non vengono disegnate 3 linee, ma solo una, sulla candela più recente. Il motivo non è ancora chiaro, lo sto esaminando.