Графика
Пытаюсь считать построенные линии на графике скриптом для записи файлов бин потом пытаюсь вывести через скрипт этот бин файл на график не получается
что не правильно где ошибка
Справка: "Как правильно вставить код".
Благодарен за ответ но вы то написали как код вставить в форум, а мне надо коды скриптов которые считывают эти линии с графика а потом выводят на график , ну с выводом я разберусь а вот считывание пользуюсь этим похоже что то не так им делают пользовательские панели 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!"); } } //+------------------------------------------------------------------+
- 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
мне надо глобальную область ему(скрипту) написать прежде
Пытаюсь считать построенные линии на графике
скриптом для записи файлов бин потом пытаюсь вывести через скрипт этот бин файл на график не получается
что не правильно где ошибка