Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 23

 
scomoroh:
Да, спасибо, все исправил, без ошибок. Тормозит, да, очень. Не подскажите в каком направлении двигаться, чтобы оптимизировать, или все переписывать придется?

Слишком уж много объектом создаётся и стирается на каждом тике, нужно как-то ограничивать, например, стирать не все объекты, а только нарисованные на последних 1-2 барах.

Я например, в аналогичном случае, вместо ObjectsDeleteAll() в start() использовал такую функцию:

void deletelast()
{
   for(int i=ObjectsTotal()-1;i>=0;i--)
   {
      string name=ObjectName(i);
      if(StringFind(name,"Shadows.",0)>-1)
      {
         datetime crtm=(datetime)ObjectGetInteger(0,name,OBJPROP_CREATETIME);
         if(crtm>=iTime(Symbol(),0,1))
         if(!ObjectDelete(name)) Print("ObjectDelete error# ",_LastError);
      }
   }
}
 

подскажите, можно ли из советника управлять разрешением на торговлю этим советником

то есть использовать переменную MQL_TRADE_ALLOWED ?

допустим если большой спрэд, то запрещать торговлю(но не прекращать работу советника) 

Просто я не знаю как эту переменную выставлять. Прямое присвоение 1 или 0 не получается сделать.
 
harbor:

подскажите, можно ли из советника управлять разрешением на торговлю этим советником

то есть использовать переменную MQL_TRADE_ALLOWED ?

допустим если большой спрэд, то запрещать торговлю(но не прекращать работу советника) 

Просто я не знаю как эту переменную выставлять. Прямое присвоение 1 или 0 не получается сделать.

Это состояние

https://www.mql5.com/ru/docs/runtime/tradepermission

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Программы MQL5 / Разрешение на торговлю - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Но управлять можно.

Нужно просто составить алгоритм программы.

В любом месте алгоритма и по любому условию можно выйти из программы командой

return(0);
 
Здравствуйте! Я новичок в этом не лёгком деле и постоянно сталкиваюсь с новыми препятствиями. Сейчас пытаюсь написать советника, но никак не могу решить проблему с тайм фреймом индикатора который использует для входа мой советник. Суть проблемы в следующем: По условиям мне необходимо, что бы на 15 минутном тайм фрейме по индикатору Stochasstic линия Signal была ниже уровня 20. Именно на 15 мин. ТФ! По факту получается, что линия signal пересекает уровень 20 на других тайм фреймах (1;5;30 мин.) и мой советник ложно срабатывает. Мне необходимо от фильтровать все тайм фреймы и оставить только 15 мин. Что бы советник не учитывал пересечений на других ТФ. Буду признателен за помощь 
 
TimBerg:
Здравствуйте! Я новичок в этом не лёгком деле и постоянно сталкиваюсь с новыми препятствиями. Сейчас пытаюсь написать советника, но никак не могу решить проблему с тайм фреймом индикатора который использует для входа мой советник. Суть проблемы в следующем: По условиям мне необходимо, что бы на 15 минутном тайм фрейме по индикатору Stochasstic линия Signal была ниже уровня 20. Именно на 15 мин. ТФ! По факту получается, что линия signal пересекает уровень 20 на других тайм фреймах (1;5;30 мин.) и мой советник ложно срабатывает. Мне необходимо от фильтровать все тайм фреймы и оставить только 15 мин. Что советник не учитывал пересечений на других ТФ. Буду признателен за помощь 
покажите фрагмент кода, как Вы в советнике считываете сигнал с индикатора
 
Renat Akhtyamov:
покажите фрагмент кода, как Вы в советнике считываете сигнал с индикатора
По памяти не вспомню, как доберусь до дома обязательно скину
 
Renat Akhtyamov:

Но управлять можно.

Нужно просто составить алгоритм программы.

В любом месте алгоритма и по любому условию можно выйти из программы командой

return(0);

тогда выполнение программы прекратится, а мне надо чтобы продолжалось

видимо придется городить кучу условий 

 
harbor:

тогда выполнение программы прекратится, а мне надо чтобы продолжалось

видимо придется городить кучу условий 

Что можно продолжать, если повысился спред? Если нужно продолжать, то при чём здесь спред? 

(с)то запрещать торговлю(но не прекращать работу советника)   = Если запрещать торговлю, то как он будет продолжать работать?, какой в этом смысл?

 
harbor:

тогда выполнение программы прекратится, а мне надо чтобы продолжалось

видимо придется городить кучу условий 

Ну правильно, это же программа)