Пытаюсь считать построенные линии на графике скриптом для записи файлов бин потом пытаюсь вывести через скрипт этот бин файл на график не получается
что не правильно где ошибка
Справка: "Как правильно вставить код".
Благодарен за ответ но вы то написали как код вставить в форум, а мне надо коды скриптов которые считывают эти линии с графика а потом выводят на график , ну с выводом я разберусь а вот считывание пользуюсь этим похоже что то не так им делают пользовательские панели https://www.mql5.com/ru/articles/62
//+------------------------------------------------------------------+ //| Component properties writer.mq5 | //| Copyright Copyright 2010, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property script_show_inputs input int interfaceID=0; //входной параметр - идентификатор сохраняемого интерфейса //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- //откроем файл для записи int handle=FileOpen("Active_Panel_scheme_"+IntegerToString(interfaceID)+".bin", FILE_WRITE|FILE_BIN); if(handle!=INVALID_HANDLE) { //переберём все объекты на экране for(int i=0;i<ObjectsTotal(0);i++) { string name=ObjectName(0,i); //и запишем их свойства в файл FileWriteString(handle,name,100); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_TYPE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_XDISTANCE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_YDISTANCE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_XSIZE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_YSIZE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_COLOR)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_STYLE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_WIDTH)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_BACK)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_SELECTED)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_SELECTABLE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_READONLY)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_FONTSIZE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_STATE)); FileWriteInteger(handle,ObjectGetInteger(0,name,OBJPROP_BGCOLOR)); FileWriteString(handle,ObjectGetString(0,name,OBJPROP_TEXT),100); FileWriteString(handle,ObjectGetString(0,name,OBJPROP_FONT),100); FileWriteString(handle,ObjectGetString(0,name,OBJPROP_BMPFILE,0),100); FileWriteString(handle,ObjectGetString(0,name,OBJPROP_BMPFILE,1),100); FileWriteDouble(handle,ObjectGetDouble(0,name,OBJPROP_PRICE)); } //закроем файл FileClose(handle); Alert("Done!"); } } //+------------------------------------------------------------------+
![Создание активных панелей управления на MQL5 для торговли Создание активных панелей управления на MQL5 для торговли](https://c.mql5.com/36/24/sozdanie-aktivnih-paneley-upravleniya.jpg)
- www.mql5.com
#property script_show_inputs //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int h=FileOpen("Active_Panel_scheme_23.bin",FILE_WRITE|FILE_BIN); if(h==INVALID_HANDLE) Alert("Ошибка открытия файла"); return; }
Мой скрипт вывода BIN файла на график
Мой скрипт вывода BIN файла на график
Почему Open, отчего Bin, зачем Wright?
Учиться, учиться и еще раз учиться. Недолго, лет 5-7.
Почему Open, отчего Bin, зачем Wright?
Учиться, учиться и еще раз учиться. Недолго, лет 5-7.
Вот ищу учителей ))) 5-7 это ты загнул
"Учиться ,Учиться и Учиться (подразумевают всю жизнь) как завещал великий Ленин"
Почему Open, отчего Bin, зачем Wright?
Учиться, учиться и еще раз учиться. Недолго, лет 5-7.
Скрипт вывода правильный? ( там просто вывел бин файл и все)считать с графика не могу
void act(bool save // true если сохраняем ) { int hnd = FileOpen("file_name", save ? FILE_WRITE|FILE_BIN : FILE_READ|FILE_BIN); if(hnd == INVALID_HANDLE) return; long lp[33]; double dp[23]; ArrayInitialize(lp, 0); ArrayInitialize(dp, 0); #define MYSETGETFN(PROP, MODIF, VAR, SW, SUF) Object##SW##SUF(0,name,PROP,MODIF,VAR) #define MYSETGET(SW) \ { \ MYSETGETFN(OBJPROP_TIME, 0, lp[1], SW, Integer); \ MYSETGETFN(OBJPROP_TIME, 1, lp[2], SW, Integer); \ MYSETGETFN(OBJPROP_TIME, 2, lp[3], SW, Integer); \ MYSETGETFN(OBJPROP_COLOR, 0, lp[4], SW, Integer); \ MYSETGETFN(OBJPROP_STYLE, 0, lp[5], SW, Integer); \ MYSETGETFN(OBJPROP_WIDTH, 0, lp[6], SW, Integer); \ MYSETGETFN(OBJPROP_BACK, 0, lp[7], SW, Integer); \ MYSETGETFN(OBJPROP_FILL, 0, lp[8], SW, Integer); \ MYSETGETFN(OBJPROP_SELECTABLE, 0, lp[9], SW, Integer); \ MYSETGETFN(OBJPROP_RAY_RIGHT, 0, lp[10], SW, Integer); \ MYSETGETFN(OBJPROP_RAY_LEFT, 0, lp[11], SW, Integer); \ MYSETGETFN(OBJPROP_LEVELS, 0, lp[12], SW, Integer); \ MYSETGETFN(OBJPROP_PRICE, 0, dp[0], SW, Double); \ MYSETGETFN(OBJPROP_PRICE, 1, dp[1], SW, Double); \ MYSETGETFN(OBJPROP_PRICE, 2, dp[2], SW, Double); \ string tmp_str; \ for(int pos = 0; pos < (int)lp[12]; ++ pos) \ { \ MYSETGETFN(OBJPROP_LEVELVALUE, pos, dp[ArraySize(dp)-1-pos], SW, Double); \ MYSETGETFN(OBJPROP_LEVELCOLOR, pos, lp[ArraySize(lp)-1-pos], SW, Integer); \ tmp_str = DoubleToString(dp[ArraySize(dp)-1-pos]*100, 1); \ MYSETGETFN(OBJPROP_LEVELTEXT, pos, tmp_str, SW, String); \ } \ } if(save) { string name; for(int i = ObjectsTotal(0, 0) - 1; i >= 0; -- i) { name = ObjectName(0, i, 0); lp[0] = ObjectGetInteger(0, name, OBJPROP_TYPE); MYSETGET(Get); FileWriteInteger(hnd, StringLen(name)); FileWriteString(hnd, name); FileWriteArray(hnd, lp); FileWriteArray(hnd, dp); } } else { string name; long min_time = LONG_MAX, max_time = LONG_MAX; while( ! FileIsEnding(hnd) ) { int namesz = (int)FileReadInteger(hnd); name = FileReadString(hnd, namesz); FileReadArray(hnd, lp); FileReadArray(hnd, dp); // lp[4] = (color)lp[4]; // Because ObjectGetInteger works incorrectly. ObjectCreate(0, name, (ENUM_OBJECT)lp[0], 0, 0, 0, 0, 0, 0, 0); MYSETGET(Set); } } FileClose(hnd); #undef MYSETGETFN #undef MYSETGET }
Благодарен ,что проявили интерес к моей теме, но поясните пожалуйста ваш код считывает с графика или помогает вывести файл бин в окно графика
и то и другое. Если save == true, то сохраняем объекты в файл, иначе - объекты из файла на график.
Ох уж этот метод научного тыка при компиляции ошибки у меня
void act(bool save // true если сохраняем
'act' - function can be declared only in the global scope LmnmxAUD_USD.mq5 13 8
мне надо глобальную область ему(скрипту) написать прежде
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пытаюсь считать построенные линии на графике
скриптом для записи файлов бин потом пытаюсь вывести через скрипт этот бин файл на график не получается
что не правильно где ошибка