[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 39

 
hoz:
Честно сказать, я вообще даже не представляю зачем такое может понадобится. Видимо и разработчики об этом не думали. 
Очень хорошо, что есть вещи, о которых разработчики не думали. Если такие вещи собрать и объединить воедино, то можно 
 
Kobalerro:

 Спасибо за совет, но что-то через чур мудрено. И потом в вашем варианте получается работают все, а требуется 10 проверяют условие для входа,

а открывают только пять, которые первыми успели и далее при закрытии одной, открывается опять таки одна, первая подходящая по условиям,

а не ограниченная  EURUSD      1  ,    GBPUSD      1 ,     EURGBP      0.

По моему должно быть более простое решение. На подобие подсчет общего количества ордеров с условием ограничения заданным параметром.

И ограничение либо по символу, либо по магику не более одного.

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


Да уж пожалуй согласен !  Я уж тут точно исхитрился, можно и без писанины на диск обойтись влегкую ! 
Я тут просто вяжу поводья от стандартного терминала на еще один 
который наваял под себя как душа просит ну вот и пошел по накатанной тропке :)

Прошу меня простить, однако мы эту беду по-любому наваяем
ибо как завешал нам сэр Фреди Меркьюри
Show must go on !!! 

Значит так давай уточним техзадание 
Как я это понял  :

1. На одном счету открыты хренова туча окон (10 штук) с любым набором графиков валютных пар

2. На каждом графике сидит рабочая лошадка - советник, который чиво то там делает

3. На счету должны соблюдаться следующие условия:

3.1 Общее количество открытых рыночных ордеров на счету  не должно превышать 5
     при этом ордера типа horse (отложенные) за людей не считаем (думается мне так но ты же это не уточнил)
3.2  исходя из набора графиков на счету сформировано некий список символов,

типа фининструментов по которым ведется торговля, при этом каждый из инструментов

в любой момент времени может иметь не более одного открытого ордера.

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

Вот что то типа этого!  Посмотри все ли тут правильно!
Далее уточни пожалуйста на каком языке надо это наваять  (типа mq4 или mq5 )
и еще список инстументов, по которым ведется торговля  - фиксированный или каждый раз свой 

Думаю что коротенкая вставка в текст каждого советника

  (которую потом при желании можешь оформит как процедуру) позволит ему 

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

 За сим разрешите откланяться ибо у меня сейчас 5 утра  :))

madzx 

 

 

 

 

 


 

 
Kobalerro:

 Спасибо за совет, но что-то через чур мудрено. И потом в вашем варианте получается работают все, а требуется 10 проверяют условие для входа,

а открывают только пять, которые первыми успели и далее при закрытии одной, открывается опять таки одна, первая подходящая по условиям,

а не ограниченная  EURUSD      1  ,    GBPUSD      1 ,     EURGBP      0.

По моему должно быть более простое решение. На подобие подсчет общего количества ордеров с условием ограничения заданным параметром.

И ограничение либо по символу, либо по магику не более одного.

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



Не пАрьтесь в трёх соснах. Разводите сделки экспов под уникальные магики (присваиваете СВОЙ магик ордерам СВОЕГО экспа на выбранных символах). Далее уже, применяя условный оператор if - else, подключаете фильтр по символам и магикам, используя с разными вх. значениями эту функцию от Ким И.В:

Функция NumberOfOrders().

. Всё.

 
hoz:


ХМ. Пока не дочитал до конца не понимал, что вы имеет ввиду :) На выходе нужен какой тип данных?

По ходу, я вижу решение данной ситуации так:

1. Переводим числа int 59 и 17 в тип string

2. Далее происходит конкатенация данных получившихся строк.

3. То что вышло переводим снова в тип int

Может есть и другие варианты, но я по другому не мыслю на данный момент.


Великолепный ответ - просто и доступно - а других вариантов и НЕ НАДО ибо и этот 
очень хорош .... :))
 

Еще раз попытаю счастье. 

Здравствуйте Есть индикатор https://www.mql5.com/ru/code/7176

хорошо работающий на истории. В реале он очень разодранный и т.п.

Есть ли Возможность перерисовывать/пересчитывать этот индикатор  каждый к примеру бар или каждый отрезок времени?

К примеру торгуя по м5 и ждя сигнала его может не поступить сидишь ждешь 15-20 минут. переключаешься на любой другой таймфрейм потом снова на м5 и опа оказывается сигнал был. 10 минут назад. Как можно автоматом сделать этот перечет без переключения таймфрейма?

 

 Появился забавный вопрос. Например, я решил открыть ордер на покупку по условию:

1. быстрая машка1 пересекла медленную машку2 снизу вверх. (Нам важно не момент пересечения, а то что быстрая машка1 находится выше медленной машки2).

2. Свеча коснулась быстрой машки1, значит открывается ордер на покупку.

 Я думал над этим, и так понимаю, что нужно создать условия, что если цена свечи примерно равна цене быстрой  машки1 видимо с некоторым  заданным отклонением, так?

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

т.е.

if( iMA(fast) > iMA(slow) )
{
  if(low[0] == iMa(fast))
  OrderSend(параметры посыла ордера);
}

 Но в таком случает, не учитывается тот момент, что свеча навряд ли будет на цене iMA(fast) точно, ведь цена может быстро проскачить её и пойти дальше или отскочить. Получается нужно задать какой-то диапазон.

 Как это правильно реализовать? 

 
Twilight:

Еще раз попытаю счастье. 

Здравствуйте Есть индикатор https://www.mql5.com/ru/code/7176

хорошо работающий на истории. В реале он очень разодранный и т.п.

Есть ли Возможность перерисовывать/пересчитывать этот индикатор  каждый к примеру бар или каждый отрезок времени?

К примеру торгуя по м5 и ждя сигнала его может не поступить сидишь ждешь 15-20 минут. переключаешься на любой другой таймфрейм потом снова на м5 и опа оказывается сигнал был. 10 минут назад. Как можно автоматом сделать этот перечет без переключения таймфрейма?

А Вы внимательно читали авторскую аннотацию к этому индикатору (по ссылке):

Прикол только в том, что этот индикатор, скажем так, динамический. То есть, он может перерисовывать более десяти (!) баров. И то, что вы видите, как зеленое, раньше было красным. И стало зеленым только потому,что тренд пошел вверх.

??? - он и так перерисовывает!!!
 
silatyt:

А Вы внимательно читали авторскую аннотацию к этому индикатору (по ссылке):

Прикол только в том, что этот индикатор, скажем так, динамический. То есть, он может перерисовывать более десяти (!) баров. И то, что вы видите, как зеленое, раньше было красным. И стало зеленым только потому,что тренд пошел вверх.

??? - он и так перерисовывает!!!


Я знаю что он перерисовывает. меня интересует вообще технология пересчета любого индикатора каждый новый бар или заданный интервал времени.

Даже если потом в дальнейшем будет что то другое.

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

 
Twilight:


Я знаю что он перерисовывает. меня интересует вообще технология пересчета любого индикатора каждый новый бар или заданный интервал времени.

Даже если потом в дальнейшем будет что то другое.

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

Вы когда-нибудь внутрь любого индикатора заглядывали??? В общем случае, это выглядит так:

int start()
  {
   int counted_bars=IndicatorCounted();
//----
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--; 
   int limit=Bars-counted_bars;
   for (int i=limit;i>=0;i--)
    {
    //расчёт индикатора
    }
//----
   return(0);
  }

Переменная, определяющая количество пересчитываемых баров - limit. Отсюда и пляшите.

 
silatyt:

Вы когда-нибудь внутрь любого индикатора заглядывали??? В общем случае, это выглядит так:

Переменная, определяющая количество пересчитываемых баров - limit. Отсюда и пляшите.


Вы предлагаете код индикатора засовывать в советник и там его пересчитывать?

А если таких индикаторов 5? 

нет ли возможности как то пересчитать по другому?

я же все индикаторы в советник прикрепляю через  iCustom

 

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

 

Если на графике нажать ПКМ и нажать обновление, то перерисовки тоже нету, она почему то перерисовывается только при смене таймфрейма. 

 

П.С. А программно ПКМ/ обновление как вызывается? 

RefreshRates вроде бы не то.

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