Пишите чего и как делаете: все подробности. Использую библиотеку каждый день по-черному. Ничего не падает.
А что других методов не нашлось?
marketeer >>:
Пишите чего и как делаете: все подробности. Использую библиотеку каждый день по-черному. Ничего не падает.
Пытаюсь получить вчерашнюю ситуацию. Пока работает. Если упадет отпишу подробноПишите чего и как делаете: все подробности. Использую библиотеку каждый день по-черному. Ничего не падает.
Например?
С файлами не устраивает быстродействие. Планируется передавать данные при каждом тике для прорисовки на своих тайм-фреймах
Сюда загляните. Может быть поможет.
https://www.mql5.com/ru/forum/357
https://www.mql5.com/ru/forum/357
lusp писал(а) >>
Пытаюсь получить вчерашнюю ситуацию. Пока работает. Если упадет отпишу подробно
Пытаюсь получить вчерашнюю ситуацию. Пока работает. Если упадет отпишу подробно
Например?
С файлами не устраивает быстродействие. Планируется передавать данные при каждом тике для прорисовки на своих тайм-фреймах
Очевидно Вы наивно полагаете что ГП живут в памяти? :)
Они также прописываются в файл благодаря чему и срок хранения их 14 дней.
Вы бы хоть объяснили,что надо и кому надо передать.Или надо догадаться?
#include <GlobalArray.mqh> void DeleteArrays(string sy) { // Массивы индикатора М1 GlobalArrayDelete(GlArrayName(sy, PERIOD_M1, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_M5, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_M15, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_M30, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_H1, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_H4, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_D1, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_W1, "TST")); GlobalArrayDelete(GlArrayName(sy, PERIOD_MN1, "TST")); } string GlArrayName(string sy, int tf, string in) { return (StringConcatenate(sy,"-",in,"-",tf)); } double M1[], M5[], M15[], M30[], H1[], H4[], D1[], W1[], MN1[]; //---- input parameters extern int wnd=100; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { DeleteArrays(Symbol()); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { ArrayResize(M1,wnd); ArrayResize(M5,wnd); ArrayResize(M15,wnd); ArrayResize(M30,wnd); ArrayResize(H1,wnd); ArrayResize(H4,wnd); ArrayResize(D1,wnd); ArrayResize(W1,wnd); ArrayResize(MN1,wnd); for(int i = 0; i< wnd; i++) { M1[i] = iClose(Symbol(),PERIOD_M1,i); M5[i] = iClose(Symbol(),PERIOD_M5,i); M15[i] = iClose(Symbol(),PERIOD_M15,i); M30[i] = iClose(Symbol(),PERIOD_M30,i); H1[i] = iClose(Symbol(),PERIOD_H1,i); H4[i] = iClose(Symbol(),PERIOD_H4,i); D1[i] = iClose(Symbol(),PERIOD_D1,i); W1[i] = iClose(Symbol(),PERIOD_W1,i); MN1[i] = iClose(Symbol(),PERIOD_MN1,i); } DeleteArrays(Symbol()); GlobalArraySet(GlArrayName(Symbol(), PERIOD_M1, "TST"), M1, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_M5, "TST"), M5, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_M15, "TST"), M15, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_M30, "TST"), M30, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_H1, "TST"), H1, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_H4, "TST"), H4, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_D1, "TST"), D1, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_W1, "TST"), W1, wnd); GlobalArraySet(GlArrayName(Symbol(), PERIOD_MN1, "TST"), MN1, wnd); return(0); }Это передатчик
#property copyright "Copyright © 2010" #property link "" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Green #property indicator_width1 2 #include <GlobalArray.mqh> double B1[]; int osz = 0; string GlArrayName(string sy, int tf, string in) { return (StringConcatenate(sy,"-",in,"-",tf)); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer (0,B1); SetIndexEmptyValue(0,0.0); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { string nm = GlArrayName(Symbol(), Period(), "TST"); int sz = GlobalArraySize(nm); if (osz != sz) { Print ("Размер глобального массива ",nm," ",sz," элементов"); osz = sz; } if (sz > 0) { ArrayInitialize(B1,0.0); GlobalArrayGet(nm, B1, sz); } else Print ("Глобального массива ",nm," не обнаружено"); return(0); }Это приемник
А Это падение терминала.
Что не так делаю?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Возникла необходимость передавать из советника на одном ТФ данные в индикатор на другом ТФ. Передаваемых данных довольно много (порядка 10 000 значений)
В связи с этим вопрос: Существует ли ограничение на количество GlobalVariables в терминале МТ4
P.S. Библиотеку https://www.mql5.com/ru/code/9350 видел. Попробовал. Терминал завалил.