Вопросы от "чайника" - страница 208

 
talliy: Подскажите пожалуйста как сделать так, что бы при наступлении определенного условия переменная приняла единожды  значение, а не на протяжении длительности условия?
 А подробнее? Непонятна фраза "а не на протяжении длительности условия".
 
Yedelkin:
 А подробнее? Непонятна фраза "а не на протяжении длительности условия".
Например при нахождении определенного бара. Этот бар в массиве скажем третий. Пока этот бар третий у переменной истина. Он третий согласно таймфрейму. Необходимо скажем внести об этом запись в журнале. С каждым тиком количество записей будет расти пока бар не станет четвертым. Так вот и вопрос, как единовременно совершить присвоение переменной истина и единовременно выполнить дальнейшие условия, а не с каждым тиком пока у переменной истина.
 
доброе утро , подскажите пожалуйста . Подписался на вашем ресурсе на сигнал. Но не совсем понял , как он будет приходит ? И как он будет исполнятся ? И может надо какие то внести настройки в МТ4 или достаточно , подписки , номера счета и сервера брокера для копирования сделок??? А если компьютер -мой был выключен ? Вот такие вопросы .
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 
talliy:
Например при нахождении определенного бара. Этот бар в массиве скажем третий. Пока этот бар третий у переменной истина. Он третий согласно таймфрейму. Необходимо скажем внести об этом запись в журнале. С каждым тиком количество записей будет расти пока бар не станет четвертым. Так вот и вопрос, как единовременно совершить присвоение переменной истина и единовременно выполнить дальнейшие условия, а не с каждым тиком пока у переменной истина.
Может вы имеете в виду, чтобы определять номер нужного вам бара не на каждом тике а только при появления нового бара? Посмотрите тут или поищите на форуме по словосочетанию IsNewBar.
 
talliy: Например при нахождении определенного бара. Этот бар в массиве скажем третий. Пока этот бар третий у переменной истина. Он третий согласно таймфрейму. Необходимо скажем внести об этом запись в журнале. С каждым тиком количество записей будет расти пока бар не станет четвертым. Так вот и вопрос, как единовременно совершить присвоение переменной истина и единовременно выполнить дальнейшие условия, а не с каждым тиком пока у переменной истина.

Как вариант, введите ещё одну переменную, которой будете присваивать значение true, если первая переменная послана на печать.

bool bar_printed=false;
...
if()                     //Проверяете нужное условие
  {
   ...
   if(!bar_printed)
     {
      Print("Нужное условие выполнено");
      bar_printed=true;
     }
  }
 

Здравствуйте, уважаемые пользователи и администрация, не могли бы вы помочь мне со следующей проблемой. Решил протестировать сервис бесплатных торговых сигналов https://www.mql5.com/ru/signals/mt4 выставил параметры как в инструкции, но ничего не происходит. Когда зашел в журнал были следующие ошибки:

2012.11.16 11:04:14    '340421': Signal - synchronization failed, processing of trade actions disabled
2012.11.16 11:04:14    '340421': Signal - synchronization terminated, cannot copy position [#37469421 buy 10.00 USDCHF at 0.9411 sl: 0.9231 tp: 0.0000]
2012.11.16 11:04:14    Symbol: no prices for symbol У‰`˜¤”Б<u}{њW˜р1зfѕцтљУЫЩъµцNЏEДT`P}ш197XT¬нЈ"zІѕ®ЫVЏ—•¶qІ
KЂШ 9ґнхуПh©_Ю6nzj—KSQr-nЖЅ<”МШИхp©±ЇР‹М$eљт*6&SО
.й*‚ГyшP€”„±,emkЊG€а!ЧV®жтвЉГЛЙкҐж>5ґ DP@mи!)'HDњЭ“jў®ћЛF‡…¦aўъ;сpИ


в чем проблема как настроить? Мой брокер - FBS

Торговые сигналы: MetaTrader 4
Торговые сигналы: MetaTrader 4
  • www.mql5.com
Торговые сигналы для MetaTrader 4 с автоматическим исполнением на вашем счете
 
Yedelkin:

Как вариант, введите ещё одну переменную, которой будете присваивать значение true, если первая переменная послана на печать.

В случае котором предлагаете вы, переменная с каждым тиком ложно и уже после выполнения печати в журнал становится истинной. Далее новый тик и оператор onTick() выполняет свою программу сверху в низ. А там переменная опять ложно, а в условии что если переменная ложно то печать. И следовательно журнал полнится записями с каждым тиком. Проверено!!!

Я в попытках логически понять ход выполнения программы в операторе использовал функцию TimeCurrent(), вот код:

В следствии чего в журнал заносятся записи только те, в которых тик имеет время 0 по минуте и 0 по секунде. С часами сложнее. Единственное что меняется это час сигнала. Поставив 0 - будет служить фильтром и выдавать запись если "Молот" в 00 часов, что редкость. При этом количество записей снизилось, но все равно желает лучшего. 

  double r=0;
  double x=0;
  double z=0;
  double rr=0;
  double xx=0;
  double zz=0;
  double a=0;
  r = Open[1];
  x = Close[1];
  z = r - x;
  xx=Low[1];
  a=x-xx;
  zz = 2*z;
MqlDateTime secc;
bool logno = false;
  if (Open[3]<Close[3] && Open[2] <Close[2])         
    if (Open[1]==High[1]&&Close[1]<Open[1])
     if (a>=zz){
    /* if (!logno){
     Print ("На графике свечная модель -Молот");
     logno = true;}*/
     TimeCurrent(secc);
     while(secc.sec==0 && secc.min==0 && !IsStopped())
     {
 Print ("На графике свечная модель -Молот");
 break;
     
        }

 Это быстрая попытка изобразить и найти свечную модель "Молот" на графике. Здесь кстати закоментированн и пример с переменной которая ложно.

Модель молот это : Нижняя тень не менее чем в 2 и не более чем в 3 раза больше тела. Верхней тени нет или она очень короткая (не более 10% диапазона свечи). Цвет тела при долгосрочной игре значения не имеет; при краткосрочной — белый Молот намного сильнее черного.

 

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

Пример: Простой тралл стопа. Мы говорим переменной следить за ценой на расстоянии 20 пунктов(к примеру). Т.е. переменная = цена bid - 20 пунктов(при условии что мы купили). Ценна идет в верх и мы успешно следуем за ней. Далее цена пошла в низ, а нам надо что бы переменная осталась в своем значении на прежнем уровне.

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

 
paladin800:
Может вы имеете в виду, чтобы определять номер нужного вам бара не на каждом тике а только при появления нового бара? Посмотрите тут или поищите на форуме по словосочетанию IsNewBar.

Спасибо!!! Полезная ссылочка!!! Пригодится в дальнейшем.

Но немного не то, хотя.... можно подумать и обхитрить и так. 

 
talliy:

В случае котором предлагаете вы, переменная с каждым тиком ложно и уже после выполнения печати в журнал становится истинной. Далее новый тик и оператор onTick() выполняет свою программу сверху в низ. А там переменная опять ложно, а в условии что если переменная ложно то печать. И следовательно журнал полнится записями с каждым тиком. Проверено!!!

Я в попытках логически понять ход выполнения программы в операторе использовал функцию TimeCurrent(), вот код:

В следствии чего в журнал заносятся записи только те, в которых тик имеет время 0 по минуте и 0 по секунде. С часами сложнее. Единственное что меняется это час сигнала. Поставив 0 - будет служить фильтром и выдавать запись если "Молот" в 00 часов, что редкость. При этом количество записей снизилось, но все равно желает лучшего. 

 Это быстрая попытка изобразить и найти свечную модель "Молот" на графике. Здесь кстати закоментированн и пример с переменной которая ложно.

Модель молот это : Нижняя тень не менее чем в 2 и не более чем в 3 раза больше тела. Верхней тени нет или она очень короткая (не более 10% диапазона свечи). Цвет тела при долгосрочной игре значения не имеет; при краткосрочной — белый Молот намного сильнее черного.


static bool logno = false;
Причина обращения: