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

 
Artyom Trishkin:

Был уже когда-то такой вопрос:


Alexey Viktorov:

лот = (абсолютная_величина(профит_ордера) + желаемая прибыль) / (размер_стандартного_контракта * ТР * поинт)

Спасибо, Artyom Trishkin.

Спасибо, Alexey Viktorov.

 
Karputov Vladimir:
Вы само определение "асинхронная операция" понимаете? Если понимаете, то вопросов не должно быть.
Отлично понимаю! Поэтому и вопрос. Меряться письками компетенцией с вАМИ не намерен.
 

Коллеги, помогите начинающему программисту

Пытался состряпать код пользовательской функции так, чтобы задавая время в настройках в привычном формате "13:45" для трех тайм-сессий у меня функция возвращала значение true или false. Идея была в том, чтобы вставлять функцию в Эксперт вначале. Он бы проверял значение, ну и если true, то можно торговать, идем дальше...

И вроде все хорошо шло, все возвращаемые параметры проверял через Alert, чтобы на всех этапах все четко было, но в конце уперся в то, что я видимо неправильно ее объявляю в ф-и Start, потому что выдает ошибку "wrong parameters count".

 Код длинный, приведу основное:

-------------------------------- 

void OnTick()

  {

  bool TradingAllowed = false;

  TradeTimeAllowed (TradingAllowed);

  

  if (TradingAllowed = true)  { Alert ("Buy 1 lot");}

  else { Alert ("Торговля запрещена"); }

  }

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //тут собственно функция. я ее проверял, вставляя в OnTick через Alert. Выдает true или false.

  { ....................}

--------------------- 

 И вторая проблема в самой функции в конце.

Сейчас там стоит неверно:

    if (Trade_Session_1 = true)  TradeTime_Ok = true;

    if (Trade_Session_2 = true)  TradeTime_Ok = true;

    if (Trade_Session_3 = true)  TradeTime_Ok = true;

    return(TradeTime_Ok); 

// т.е. проблема в том, что "кто последний, того и тапки". Если первый период покажет true или второй, а третий false, то в итоге запомнится false. Хотя по задумке надо, чтобы если хотябы один из них true, то конечное значение остается true.

Пробовал прописать так:

 if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true)  TradeTime_Ok = true;  // но так пишет ошибку. Не знаю что ему не нравится. 

Помогите добрым советом, кто может. 


 

Первую проблему решил при помощи добрых людей из соседней ветки. Функция вызывается корректно, выдает нужное значение.

Осталась вторая проблема:

 И вторая проблема в самой функции в конце.

Сейчас там стоит неверно:

    if (Trade_Session_1 = true)  TradeTime_Ok = true;

    if (Trade_Session_2 = true)  TradeTime_Ok = true;

    if (Trade_Session_3 = true)  TradeTime_Ok = true;

    return(TradeTime_Ok); 

// т.е. проблема в том, что "кто последний, того и тапки". Если первый период покажет true или второй, а третий false, то в итоге запомнится false. Хотя по задумке надо, чтобы если хотябы один из них true, то конечное значение остается true.

Пробовал прописать так:

 if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true)  TradeTime_Ok = true;  // но так пишет ошибку. Не знаю что ему не нравится. 

Помогите добрым советом, кто может. 

 

Перенесено

Andrey Koldorkin:

Коллеги, помогите начинающему программисту

Пытался состряпать код пользовательской функции так, чтобы задавая время в настройках в привычном формате "13:45" для трех тайм-сессий у меня функция возвращала значение true или false. Идея была в том, чтобы вставлять функцию в Эксперт вначале. Он бы проверял значение, ну и если true, то можно торговать, идем дальше...

И вроде все хорошо шло, все возвращаемые параметры проверял через Alert, чтобы на всех этапах все четко было, но в конце уперся в то, что я видимо неправильно ее объявляю в ф-и Start, потому что выдает ошибку "wrong parameters count".

 Код длинный, приведу основное:

-------------------------------- 

void OnTick()

  {

  bool TradingAllowed = false;

  TradeTimeAllowed (TradingAllowed);

  

  if (TradingAllowed = true)  { Alert ("Buy 1 lot");}

  else { Alert ("Торговля запрещена"); }

  }

//+------------------------------------------------------------------+

bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //тут собственно функция. я ее проверял, вставляя в OnTick через Alert. Выдает true или false.

  { ....................}

--------------------- 

 И вторая проблема в самой функции в конце.

Сейчас там стоит неверно:

    if (Trade_Session_1 = true)  TradeTime_Ok = true;

    if (Trade_Session_2 = true)  TradeTime_Ok = true;

    if (Trade_Session_3 = true)  TradeTime_Ok = true;

    return(TradeTime_Ok); 

// т.е. проблема в том, что "кто последний, того и тапки". Если первый период покажет true или второй, а третий false, то в итоге запомнится false. Хотя по задумке надо, чтобы если хотябы один из них true, то конечное значение остается true.

Пробовал прописать так:

 if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true)  TradeTime_Ok = true;  // но так пишет ошибку. Не знаю что ему не нравится. 

Помогите добрым советом, кто может. 

 

Перенесено


Andrey Koldorkin:


 Sergei Vladimirov:

1) Функция требует 6 строковых параметров, а вы её вызываете с одним булевым. 2) Знак равенства - "==", а не "=".

 
Да. Все поправил. Ошибки ушли. Спасибо.
 

Перенесено

LeonidB:

Помогите решить проблему!

Не сохраняются настройки категорий новостей. Сброс настроек происходит после перезагрузки терминала. Переустановка не помогает, запуск от имени администратора не помогает. ОС Windpws 10. Файлы, отвечающие за конфигурацию все находил, даты изменения всегда совпадают с датой закрытия терминала, то есть перезапись файлов идет. Насколько я понимаю, за конфигурацию отвечают файлы: terminal.ini, settings.ini, hotkeys.ini, common.ini (расположены в папке config), news.dat (расположен в папке news).

И еще не сохраняется настройка: Показывать - Линию последней цены. Этот момент не критичен в отличии от настроек новостей, но, думаю, это звенья одной цепи.


 

 

Всем добрый день, написал на четвёрке, надеюсь на скорый ответ.... Ребята, посмотрите пожалуйста что не так. Вроде код индикатора в две строчки, но в реал тайме работать не хочет :-(

 Вот ссылка на пост с тремя картинками....

https://forum.mql4.com/ru/56236/page1041

Спасибо!!!! 

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
  Добрый день.   Написал советник на МТ5, который хотел использовать для автоматического поиска нужных  паттернов и ручного открытия позиций. Т.е. в советнике нет торговых функций. Моя проблемма в том, что я не могу установить этот советник на график.   В советнике нет обращений к индикаторам. Все индикаторы написаны в программе. Произвел компиляцию, а затем прогнал в тестере стратегий. Все без проблем. Ставлю советник на график, даю разрешение на торговлю на мониторе, в настройках и в появляющемся окошке самого советника. На ценовом графике вместо смайлика с рожицей появляется иконка советника, а на ней зеленый кружок, внутри которого  белый треугольничек. Пробовал эту процедуру несколько раз, результаты прежние. Менял на ценовом графике периоды, на мониторе появляется сообщение из функции OnDeinit(), т.е. одна свеча обрабатывается в программе и работа прекращается.

   Заглянул в журнал:

              -  при одной из попыток установки советника программа выдала сообщение о смене  Профиля;

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

С профилями я когда-то работал: увеличивал число профилей, на каждом профиле устанавливал свои графики. Если что-то и нарушил там, то этого я, к сожалению, не знаю. Не знаю и что там надо нарушить, чтобы пограмма выдала сообщение о смене профиля. Хотя может быть сбой идет и по другой причине. Мне это не понятно.

   Сегодня ради пробы  создал новый советник (шаблон),  в функциях OnInit(), OnDeinit(const int reason),  OnTick() ничего не записал и попробовал поставить этот советник на график и разрешить торговлю.

Получилась прежняя ситуация.

     Помогите пож. разобраться с ситуацией.      Спасибо !!!!!!

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