Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 895

 
lil_lil:

Не совсем, хотя это пригодится для теста. Хочу чтобы индикатор прикреплялся к онлайн графику после прикрепления к нему советника. Возможно?

Не пробовал. Если теоретически, то вряд-ли получится. Может по этому и не экспериментировал пока. Получится так, что при каждой загрузке советника, применяется шаблон на котором вновь запускается советник. И всё повторяется, применяется шаблон, запускается новая копия советника и т.д.

Может лучше, если уж хочется так, что зубы сводит, сделать скрипт который будет применять шаблон с советником и индикаторами.

 
Спасибо всем за участие. Попробую в ините вызвать ChartApplyTemplate()  в глобальной терминала присвою значение переменной, но перед вызовом ChartApplyTemplate() проверю её значение.
 

Привет,

Как я могу создать бары, используя 30 тиков каждого PERIOD_M1?

Я хочу создать нового персонажа для моего анализа.

 
Здравствуйте! Помогите, пожалуйста, решить проблемку, у меня не получается. Необходимо в коде советника, работающего на активном графике символа 1, прописать рисование горизонтальных линий в другом, НЕ активном графике символа 2. Имеется в виду, что график символа 2 открыт на экране. Например, для второго символа SUI30 я сделал так:
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
но метаэдитор выдает сообщение implicit conversion from 'string' to 'number'. Что у меня неправильно, и как решить? Спасибо.

 
novichok2018:
Здравствуйте! Помогите, пожалуйста, решить проблемку, у меня не получается. Необходимо в коде советника, работающего на активном графике символа 1, прописать рисование горизонтальных линий в другом, НЕ активном графике символа 2. Имеется в виду, что график символа 2 открыт на экране. Например, для второго символа SUI30 я сделал так: но метаэдитор выдает сообщение implicit conversion from 'string' to 'number'. Что у меня неправильно, и как решить? Спасибо.

Надо использовать другую перегрузку функции

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

А этот идентификатор графика надо найти перебором графиков от ChartFirst();

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

Пример из документации

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

Надо использовать другую перегрузку функции

Спасибо, пытаюсь разобраться.

 
Alexey Viktorov:

Надо использовать другую перегрузку функции

А этот идентификатор графика надо найти перебором графиков от ChartFirst();

Пример из документации

К моему сожалению, попытки разобраться ни к чему не привели. Просто к уже имеющимся сообщениям добавились ошибки, связанные с применением ф-и ChartNext(). Не понимаю сути.

 
novichok2018:

К моему сожалению, попытки разобраться ни к чему не привели. Просто к уже имеющимся сообщениям добавились ошибки, связанные с применением ф-и ChartNext(). Не понимаю сути.

Ну, для облегчения задачи можно использовать постоянный ID графика. Напишите скрипт

Print(ChartID());

Запустите его на график на котором надо рисовать эти линии. Затем впишите это значение в функцию в качестве идентификатора графика.

А по хорошему, пример из документации, это не готовая функция, типа бери и пользуйся. Надо в цикле перебора делать проверку на символ и период. Если найден нужный, то выход из цикла и применение полученного идентификатора.

 

в подключаемом инклюднике OPENCL cl_ есть константа и она равна #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 перепроверив степень двойки в 1024 получил. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 И тут же ниже число Пи

после

#define CL_M_PI 3.141592653589793115998

                            3.141592653589793238462643383279502884197169

обьясните почему так ????

 
Alexey Viktorov:

Ну, для облегчения задачи можно использовать постоянный ID графика. Напишите скрипт

Запустите его на график на котором надо рисовать эти линии. Затем впишите это значение в функцию в качестве идентификатора графика.

А по хорошему, пример из документации, это не готовая функция, типа бери и пользуйся. Надо в цикле перебора делать проверку на символ и период. Если найден нужный, то выход из цикла и применение полученного идентификатора.

Спасибо. Со скриптом все получилось, линии рисует.

Причина обращения: