MetaTrader 4. Build 151. - страница 3

 
Slawa , ответите что-нибудь по ф-циям?
Переписывать мне или ждать исправления?
 
komposter, переписывайте. сложный случай. разбираемся. но обязательно исправим.
 
Aborigen, Вы правы. но не забывайте, что конец массива в данном случае понятие логическое, а не физическое. то есть, если Вы проведёте ряд операций
ArraySetAsSeries(arr,FALSE);
ArrayResize(arr,n+1);
ArraySetAsSeries(arr,TRUE);


то Вы освободите место под 0 элемент, сдвинув данные назад.

 
Все понятно. Спасибо. Сам бы до такого решения не догадался.
А догадается ли другой пользователь? Ведь не каждый читает (и выписыват возможные решения) данный форум. Получается несколько громоздкое решение.
Может имеет смысл при ArraySetAsSeries(arr,TRUE); сразу наделять данный массив свойствами индикаторного? (имеется ввиду размерностью Bars и сдвигом данных с каждым новым баром)
 
Открытие или модификация ордера.
При вводе значений (Стоп, Профит) цифры до запятой и после запятой "ведут себя по разному". До запятой добавляются, а после запятой - вводятся в режиме "замены".
Нельзя ли установить однозначность действий?
А то с йеной проблемы. Вместо 102 получается 1032, т.к. с левой частью числа автоматически начинаешь работать так же как и с правой. Потому как с правой частью работаешь чаще.
 
Разработчикам
Билд 151. Решил подключиться к Альпари. Вставил в поле "Data Center" их IP - ничего. Тогда вставил IP в поле "Server", в след. окне появился этот адрес с пингом 213 мс. Нажал кн. Далее, потом Ок. В Навигаторе появился новый аккаунт 1704 и терминал завис наглухо. При следующих поптытках запустить терминал, он не запускался, но в списке задач появлялся процесс terminal.exe столько раз, сколько раз "толкнёшь" МТ4. Помогла перезапись файла server.ini из старой сохранёнки (150). Терминал запускается нормально. В Навигаторе есть логин Альпари, если его выбрать в поле "Server" появляется надпись Alpari-Demo. Коннекта нет, но, правда, и с вашим сервером сегодня тоже коннекта нет.
 
Разработчикам
Ситуация:В индикаторе использую 8 буферов (IndicatorBuffers(8);), 5 из которых используются, как индикаторные (#property indicator_buffers 5) и 3 для промежуточных значений (как в вашем примере OsMA). При добавлении 9-го буфера (индикаторного: #property indicator_buffers 6; IndicatorBuffers(9);) он рисуется на экране нормально, но 2 предыдущих индикаторых буфера перестают рисоваться.
Вопрос:С чем связано ограничение на 8 индикаторных массива? Вы дали прекрасный инструмент MQL4, который сущщественно расширил горизонт. А это ограничение этот горизонт стремится вернуть обратно. Проблема с ограничением заключается в том, что я не могу (например) "забить" в одну программу все нужные мне индикаторы. И через параметры какие-то включать, какие-то выключать (для визуализации), а в эксперте иметь все сигналы, забитые в этот индикатор.
 
Билд 151. Решил подключиться к Альпари. Вставил в поле "Data Center" их IP - ничего. Тогда вставил IP в поле "Server", в след. окне появился этот адрес с пингом 213 мс.

Вставка неправильных значений в поле Data Server сродни перенаправлению соединений в никуда.
Все что угодно туда ставить нельзя, "их IP" - это адрес главного торгового сервера, а не датасервера!
Поле Data Server в 99% случаев вообще трогать нельзя! Система сама все найдет и наилучшим образом использует. Это поле нужно менять, если только используется приватный локальный датасервер у себя в локалке.
 
С чем связано ограничение на 8 индикаторных массива?

Неужели 8 выводимых линий мало для композитного индикатора?
Буферов, памяти, как и денег - всегда мало :-)
 
Неужели 8 выводимых линий мало для композитного индикатора?

Ренат, не поверите, мало. Когда в самом начале прочитал, что вы сделали 8 массивов (линий) в индикаторе, появилось ощущение обеспеченности до конца дней :) Увы, уже сижу и репу чешу, что выбросить, что оставить, или перенести в другую программку с другим названием, читайте - в другой индикатор. Знаете, Ренат, может уберёте ограничения, или (если совсем никак) дадите побольше - 24,32. Кто не будет создавать такое количество массивов, у того всё будет ок. А у меня (и мне подобным:) если тормоза начнутся, то я лучше ещё 512-1024 метра добавлю. Да и, кстати, 8 линий не получается. Конструкция такая:
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 Yellow
#property indicator_color2 DeepSkyBlue
#property indicator_color3 Red
#property indicator_color4 Lime
#property indicator_color5 Red
//---- buffers
double _MA[],_High[],_Low[],Up[],Dn[],vMA[],vHigh[],vLow[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//|------------------------------------------------------------------|
int init()
{
  IndicatorBuffers(8);

  SetIndexBuffer(0,_MA);       //рисуемые
  SetIndexBuffer(1,_High);
  SetIndexBuffer(2,_Low);
  SetIndexBuffer(3,Up);
  SetIndexBuffer(4,Dn);
  .....................................
  SetIndexBuffer(5,vMA);      // для промежуточных значений
  SetIndexBuffer(6,vHigh);
  SetIndexBuffer(7,vLow);
  return(0);
}


И если добавить еще один "рисуемый" буфер, т.е. #property indicator_buffers 6 и IndicatorBuffers(9) и даже если дальше по тексту программы его не использовать, (т.е. просто объявили) 4 и 5 индикаторы (3 и 4 буферы) перестают рисоваться. Если в 6 индикаторный массив что-то впихнуть, рисуется прекрасно. Если удалить обьяву этого доп. массива, снова 4 и 5 индикаторы рисуются нормально. Наиболее вероятное предположение (имхо), что обьявленные через SetIndexBuffer буферы для промежуточных значений считаются индикаторами и попадают в рамки огрничений на 8 массивов. Первая мысль - "утащить" промежуточные буферы в тело программы, и обьявить их как обычные массивы и посмотреть, что из этого получится. Но до экспериментов руки пока не дошли.

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