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

 

Здравствуйте.

Объясните как написать отзыв на торговый советник или на продавца ?

(если продавец после продажи - свой советник - удалил)

 
ttt480 #:

Здравствуйте.

Объясните как написать отзыв на торговый советник или на продавца ?

(если продавец после продажи - свой советник - удалил)

Если Вас обманули стучите в поддержку
 

Подскажите пожалуйста. Как правильно объединить код в блоке "int OnInit()", если часть кода возвращается оператором  return(0), а другая часть кода возвращается  оператором return(rates_total) ?

 
ttt480 #:

Здравствуйте.

Объясните как написать отзыв на торговый советник или на продавца ?

(если продавец после продажи - свой советник - удалил)

После удаления советника из маркета, он у вас будет работать.

Продавец в маркете имеет право в любой момент скрыть свой товар с витрины и в этом нет нарушений.

 
ttt480 #:

Здравствуйте.

Объясните как написать отзыв на торговый советник или на продавца ?

(если продавец после продажи - свой советник - удалил)

Обратите внимание на сообщение

Volodymyr Zubov #:

После удаления советника из маркета, он у вас будет работать.

Продавец в маркете имеет право в любой момент скрыть свой товар с витрины и в этом нет нарушений.

Не удалить, а скрыть…

 
Игорь #:
часть кода возвращается оператором  return(0)
Вынести отдельной функцией, а из " OnInit() " вызывать
 
Tretyakov Rostyslav #:
Вынести отдельной функцией, а из " OnInit() " вызывать

Вопрос. А номер массива ( SetIndexBuffer ( ?, Up, INDICATOR_DATA) ), также обязан идти по порядку?

? - номер массива

 
Игорь #:

Вопрос. А номер массива ( SetIndexBuffer ( ?, Up, INDICATOR_DATA) ), также обязан идти по порядку?

? - номер массива

Нет

1,2,3 или 3,1,2 все равно

 

Здравствуйте, пытаюсь написать советник которые берет данные из эксель файла и отмечает на графике. Компиляция проходит без ошибок, но на графике ничего нет. Может кто помочь ? Файл csv прикрепляю.

//+------------------------------------------------------------------+
//|                                                           my.mq5 |
//|                                  Copyright 2025, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // Путь к CSV-файлу
   string file_name = "my.csv"; // Имя файла в папке MQL5/Files
   int file_handle = FileOpen(file_name, FILE_READ|FILE_CSV, ',');

   if(file_handle == INVALID_HANDLE)
     {
      Print("Ошибка: Не удалось открыть файл ", file_name);
      return(INIT_FAILED);
     }

   // Чтение данных из файла
   while(!FileIsEnding(file_handle))
     {
      string line = FileReadString(file_handle); // Чтение строки
      string data[]; // Массив для хранения данных
      StringSplit(line, ',', data); // Разделение строки по запятым

      // Проверка, что в строке есть данные
      if(ArraySize(data) > 3) // Колонка C имеет индекс 16 (начиная с 0)
        {
         // Получаем дату и время из колонок A и B
         string date_time = data[0] + " " + data[1]; // Колонка A (дата) + колонка B (время)
         datetime time = StringToTime(date_time); // Преобразуем в datetime

         // Получаем значение из колонки Q
         double value = StringToDouble(data[3]); // Колонка Q (значение)

         // Создаем объект-треугольник на графике
         CreateTriangle(time, value);
        }
     }

   FileClose(file_handle);
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Функция для создания треугольника на графике                     |
//+------------------------------------------------------------------+
void CreateTriangle(datetime time, double price)
  {
   string name = "Triangle_" + TimeToString(time); // Уникальное имя объекта
   ObjectCreate(0, name, OBJ_TRIANGLE, 0, time, price);
   ObjectSetInteger(0, name, OBJPROP_COLOR, clrRed); // Цвет треугольника
   ObjectSetInteger(0, name, OBJPROP_STYLE, STYLE_SOLID); // Стиль линии
   ObjectSetInteger(0, name, OBJPROP_WIDTH, 2); // Толщина линии
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   // Удаляем все объекты при завершении работы советника
   ObjectsDeleteAll(0, -1, OBJ_TRIANGLE);
  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   // Основной код для обработки тиков (если требуется)
  }
Файлы:
my.csv  1 kb
 
Добрый день, программисты! 
Возник вопрос, какой функцией лучше воспользоваться, чтобы получить максимальную скорость и качество проведения анализа экспертом. 
Написать код поиска ситуации в функцию OnTick или же вынести код в отдельный файл и там использовать другую функцию? К примеру void или bool?