Escreva em uma pasta comum de todos os terminais. Um escreve, os outros leem e criam um gráfico. Essa é uma generalização grosseira.
É claro, mas no vindex, quando um arquivo é usado para modificação, ou seja, no momento da gravação, o acesso à leitura é fechado e, se a carga na CPU for grande, pode ser longa, isso deve ser levado em conta de alguma forma.
Quando no word360 ou no acesso geral do google e na edição geral, o problema com a fila é resolvido. Digitar não é escrever, salvar automaticamente e salvar manualmente. E há uma fila.
E assim, sim, é claro, a pasta Commons não está na área restrita, está fora.
SuhanovDM94 criarei um indicador que lerá um arquivo com cotações USDTRY da memória compartilhada, calculará o spread e o desenhará nesse gráfico "único" como uma linha regular. Ainda não pensei em nada melhor. Obrigado a todos pelas dicas).
Данная статья знакомит с реализацией межпроцессного взаимодействия между терминалами MetaTrader 5 посредством именованных каналов (named pipes). Предложен класс CNamedPipes, реализующий возможность использования именованных каналов. Рассмотрен тиковый индикатор для тестирования связи между двумя клиентскими терминалами MetaTrader 5 и измерения общей пропускной способности системы. Представленный метод взаимодействия оказался пригодным для отправки котировок в реальном времени.
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
Boa tarde, programadores! Por favor, me ajudem com um script. Preciso que o script desenhe uma infinidade de linhas verticais no gráfico para uma lista de datas. Ou seja, por exemplo: eu insiro no corpo do código uma lista de 100 datas, por exemplo, e o script desenha apenas uma linha vertical para cada data.
Comecei a tentar algo aqui, mas, de alguma forma, isso acaba sendo muito complicado, e é apenas uma linha.
#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;
}
Boa tarde, programadores! Por favor, me ajudem com um script. Preciso que o script desenhe uma infinidade de linhas verticais no gráfico para uma lista de datas. Ou seja, por exemplo: eu insiro no corpo do código uma lista de 100 datas, por exemplo, e o script desenha apenas uma linha vertical para cada data.
Comecei a tentar algo aqui, mas, de alguma forma, isso acaba sendo muito complicado, e é apenas uma linha.
A data na string por meio do separador.
Em seguida, divida essa string em uma matriz.
Em seguida, faça um loop pela matriz a cada iteração, chamando
Não é necessário converter nada em string para desenhar uma linha.
Você descreveu a tarefa, mas não a descreveu completamente, então as pessoas têm que adivinhar.
Como você vai registrar 100 datas?
Você vai escrevê-las no corpo do script?
ou vai inseri-las manualmente ao iniciar o Expert Advisor?
Eu verifiquei. O segundo caso é bom, mas não é adequado devido à necessidade de inserir cada data na janela manualmente, o que consome muito tempo. Deveria ser simples... "ctrl-c, ctrl-v".
No primeiro caso, por algum motivo, ele não desenha três linhas, mas apenas uma, no candle mais recente. Ainda não está claro o motivo, mas estou investigando.
Escreva em uma pasta comum de todos os terminais. Um escreve, os outros leem e criam um gráfico. Essa é uma generalização grosseira.
É claro, mas no vindex, quando um arquivo é usado para modificação, ou seja, no momento da gravação, o acesso à leitura é fechado e, se a carga na CPU for grande, pode ser longa, isso deve ser levado em conta de alguma forma.
Quando no word360 ou no acesso geral do google e na edição geral, o problema com a fila é resolvido. Digitar não é escrever, salvar automaticamente e salvar manualmente. E há uma fila.
E assim, sim, é claro, a pasta Commons não está na área restrita, está fora.
Leia: https://www.mql5.com/ru/articles/115
E também: https://www.mql5.com/ru/articles/503
Boa tarde!
Você poderia me dizer por que o teste avançado é necessário?
Boa tarde, programadores! Por favor, me ajudem com um script. Preciso que o script desenhe uma infinidade de linhas verticais no gráfico para uma lista de datas. Ou seja, por exemplo: eu insiro no corpo do código uma lista de 100 datas, por exemplo, e o script desenha apenas uma linha vertical para cada data.
Comecei a tentar algo aqui, mas, de alguma forma, isso acaba sendo muito complicado, e é apenas uma linha.
Boa tarde, programadores! Por favor, me ajudem com um script. Preciso que o script desenhe uma infinidade de linhas verticais no gráfico para uma lista de datas. Ou seja, por exemplo: eu insiro no corpo do código uma lista de 100 datas, por exemplo, e o script desenha apenas uma linha vertical para cada data.
Comecei a tentar algo aqui, mas, de alguma forma, isso acaba sendo muito complicado, e é apenas uma linha.
A data na string por meio do separador.
Em seguida, divida essa string em uma matriz.
Em seguida, faça um loop pela matriz a cada iteração, chamando
Obrigado. Como sou um programador muito superficial. Vou começar a perguntar na ordem.
"Coloque a data em uma cadeia de caracteres com um delimitador."
Use " string TimeToString( ""
????
????
Não é necessário converter nada em string para desenhar uma linha.
Você descreveu o problema, mas não o descreveu completamente, então as pessoas terão que descobrir.
Como você vai registrar 100 datas?
Você vai escrevê-las no corpo do script?
Ou você as digitará manualmente ao iniciar o Expert Advisor?
Não é necessário converter nada em string para desenhar uma linha.
Você descreveu a tarefa, mas não a descreveu completamente, então as pessoas têm que adivinhar.
Como você vai registrar 100 datas?
Você vai escrevê-las no corpo do script?
ou vai inseri-las manualmente ao iniciar o Expert Advisor?
Eu verifiquei. O segundo caso é bom, mas não é adequado devido à necessidade de inserir cada data na janela manualmente, o que consome muito tempo. Deveria ser simples... "ctrl-c, ctrl-v".
No primeiro caso, por algum motivo, ele não desenha três linhas, mas apenas uma, no candle mais recente. Ainda não está claro o motivo, mas estou investigando.