Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 743

 

Здравствуйте все! Вопрос по MQL5.

Мне хочется вставлять комменты в функцию закрытия сделки по тикету.

Пока пользовался классом CTrade, но он не даёт такую возможность.

То есть надо использовать OrderSend, правильно?

Тут я не понимаю: https://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions#trade_action_deal в примере пишется функция OnStart. Или можно прописать всё в пользовательскую функцию и вызывать её при необходимости?

Надо ли что-то добавлять в OnInit?

И не будет ли конфликтов, если я закрытие напишу через OrderSend, а открытия и модификации оставлю на базе класса CTrade?

Спасибо!

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

Грубо говоря - перечитайте внимательно то, что я вам написал, и выкиньте из своего кода бесконечный цикл.

Вы точно уверены, что загон эксперта в бесконечный цикл - верное решение?

Во-первых, это не решение, а пример для демонстрации сути того, о чем я говорю.

Во-вторых, это не бесконечный цикл, он корректно и безопасно прервется  при завершении программы.

И в-третьих, вы мне пишите про решение совсем другой вещи, для решения которой я могу придумать миллион способов.

Т.е. мой цикл вы посчитали камнем преткновения моей ситуации? Серьезно?

В общем, я понял. Неудачно меня занесло в эту тему...

Но, в любом случае, спасибо!

 
Marat Sultanov:

Во-первых, это не решение, а пример для демонстрации сути того, о чем я говорю.

Во-вторых, это не бесконечный цикл, он корректно и безопасно прервется  при завершении программы.

И в-третьих, вы мне пишите про решение совсем другой вещи, для решения которой я могу придумать миллион способов.

Т.е. мой цикл вы посчитали камнем преткновения моей ситуации? Серьезно?

В общем, я понял. Неудачно меня занесло в эту тему...

Но, в любом случае, спасибо!

При завершении программы - да, прервётся.

Сделайте уж тогда какой-нибудь действительно тяжёлый расчёт, и пытайтесь его прерывать при вызове окна настроек.

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

Попробуйте отслеживать тяжёлый расчёт через таймер. Хотя я тут не уверен что таймер будет вызван в момент расчёта.

Но в любом случае зацикливание для эмуляции длительного расчёта - не удачное решение.

 
Здравствуйте. Подскажите пожалуйста, как массив задать во входных параметрах функции?
double test[];


double Test(.....)
{

}
 
Fresto:
Здравствуйте. Подскажите пожалуйста, как массив задать во входных параметрах функции?

Передать массив в функцию?

Примерно так:

//+------------------------------------------------------------------+
double test[];
ArrayResize(test,2);
ArrayInitialize(test,256);

Print(Test(test));
//+------------------------------------------------------------------+
double Test(double &array[])
{
   if(ArraySize(array)==0) return(WRONG_VALUE);
   array[0]+=array[1];
   return(array[0]);
}
//+------------------------------------------------------------------+

Ну ... вариации на тему ...

 
Artyom Trishkin:

При завершении программы - да, прервётся.

Сделайте уж тогда какой-нибудь действительно тяжёлый расчёт, и пытайтесь его прерывать при вызове окна настроек.

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

Попробуйте отслеживать тяжёлый расчёт через таймер. Хотя я тут не уверен что таймер будет вызван в момент расчёта.

Но в любом случае зацикливание для эмуляции длительного расчёта - не удачное решение.

Спасибо!

Понятно. Но, к сожалению, есть резонная необходимость.

Но в любом случае зацикливание для эмуляции длительного расчёта - не удачное решение.

Бывают ситуации когда например необходимо писать в большой файл или читать из большого файла или все вместе. Если включить фантазию, то очень много баттхёрта можно напридумывать, а при реализации боль увеличивается в квадрате :)

Я считаю странным то, что возможность с помощью _StopFlag отследить прерывание программы есть, а изменения входных параметров нет :(

 
здравствуйте, такой вопрос: можно ли изменить угол отображения комментария на графике?????
 
Dmitry Melnichenko:
здравствуйте, такой вопрос: можно ли изменить угол отображения комментария на графике?????

Нет.

Если только самому создавать графическую метку OBJ_LABEL и изменить его свойство

OBJPROP_ANGLE


 через ф-ю: ObjectSetDouble
 
Ребята помогите разобраться с индикатором 
Файлы:
llassiff.mq5  17 kb
 
Rafael Sahibgareev:
Ребята помогите разобраться с индикатором 
Там есть участок кода, который я не понял. Вам нужно самому его откорректировать.
Файлы:
llassiff.mq5  18 kb
Причина обращения: