Искусственные индикаторные буферы - страница 8

 
Alexey Viktorov:
Вполне в духе демократичности... Так все делают...
Какая тут демократичность? Вы о чём? Чисто личные связи и знание его доброй воли. Я уже говорил: "забудьте о демократии, её не бывает"
 
Slawa:

Повторяю. Выкладывание ex5 без исходников является саморекламой. Тизером. Прикрытием истинных намерений. Бесплатной отладкой членами сообщества перед выкладкой в маркет.

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

Обещания "чуваки, потом стопудово покажу исходники" в большинстве случаев не исполняются.

Хорошо, Ваша позиция ясна.

Давайте предположим, что человек создает тему. В ней заводит обсуждение на N страниц какой-то идеи, возможно, даже говорит, что потом создаст на основе этой ветки код и выложит в маркет. В теме ни кода, ни исходников, только обсуждение самой идеи. Форумчанам интересно поддерживать беседу, они активно ее обсуждают.

Модератор удалит эту тему сразу же, или нужно будет произнести заветное слово "маркет"? Или как?

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

 
Slawa:

Повторяю. Выкладывание ex5 без исходников является саморекламой. Тизером. Прикрытием истинных намерений. Бесплатной отладкой членами сообщества перед выкладкой в маркет.

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

Обещания "чуваки, потом стопудово покажу исходники" в большинстве случаев не исполняются.

Вы неправы и непоследовательны

я тоже непоказываю мои исходники, потому что они мои.

почему вы не опубликуете исходники терминала?

зачем мы обсуждаем работу терминала без исходников?

какие несовсем хорошие намерения в вашем терминале? Backdoor ?

 
pako:

...

почему вы не опубликуете исходники терминала?

...

Вот не так. По крайней мере исходник инструмента линейной регрессии выкладывали. А вы, pako, выкладываете в ex5, то, что в соседней ветке лежит в исходниках.
 
Dmitry Fedoseev:
 А вы, pako, выкладываете в ex5, то, что в соседней ветке лежит в исходниках.

И что?  Пусть идет в соседнюю ветку и возьмет исходник или для него напряг пользоваться поиском?

В документации вообще все лежит в открытом виде , кому ннадо пойдет и возьмет 

 
Alexey Kozitsyn:

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

Не получите Вы ответа.

И этот ответ Вам не нужен, потому что Вы его заранее знаете.

Почему бы Вам не считать, что ex5 выкладывать не нужно? Я уже озвучивал статистику: с самого начала существования MQL5.com (это почти 7 лет? или я ошибаюсь?) на всём ресурсе, в русском и английском подразделах, существует порядка 100 тем, где были выложены ex5. Специально у вебов интересовался.

 
Slawa:

Не получите Вы ответа.

И этот ответ Вам не нужен, потому что Вы его заранее знаете.

Почему бы Вам не считать, что ex5 выкладывать не нужно? Я уже озвучивал статистику: с самого начала существования MQL5.com (это почти 7 лет? или я ошибаюсь?) на всём ресурсе, в русском и английском подразделах, существует порядка 100 тем, где были выложены ex5. Специально у вебов интересовался.

Не задавал бы вопроса, если б знал. Под санкции попасть не хочется. Слава, повторюсь, про ex я уже понял, вопрос о другом: про создание продукта категорически нельзя упоминать - это уже посчитают за потенциальную рекламу, тизер? С удалением ветки и баном?
 
Alexey Kozitsyn:
  С удалением ветки и баном?

Ну вот, блин. Из демократии - да в тоталитаризм.

Ок. Отвечаю только за себя: "А фиг его знает"

 
Бан получил на сутки с формулировкой "Нежелание делиться с сообществом". Спора с модератором не увидел, поэтому просьба, если кто увидел, приведите цитату. Уважительно просил не удалять ex5 (с разъяснением причин его необходимости) - да.

Что касается первого моего MT5-индикатора, то его ex5 выложил в блоге (Админ (и модератор по совместительству) ресурса  разрешил в ЛС). Прямую ссылку не даю, т.к. могу быть в очередной раз обвинен в саморекламе и прочем, на мой взгляд, бреде, что так хорошо укладывается в современное представление о человеке... Возможно, слишком эмоционален, но, как здесь уже сказали, появившийся (совсем неожиданно) упомянутый рвотный рефлекс не позволяет (можно цитировать, как доказательство, что и "не собирался") пока выкладывать исходный код, обязательство выложить который, было мною заявлено изначально. Это именно текущие личные эмоции восприятия принуждения, а не попытка создать тайну. Благодарен всем высказавшим свое мнение.

Индикатор нужен был для демонстрации искусственных индикаторных буферов. Он выводит тиковые данные (история + реал-тайм) на общий чарт. Как можете видеть даже на скрине (а выложен был ради понимания идеи в динамике), в каждом пикселе чарта, а не раз на бар, имеются значения. Лично я ни разу не видел подобных индикаторов, поэтому (могу ошибаться) заявил, что это совершенно новый вид индикаторов (отсутствие в нем стандартных индикаторных буферов не делает его таким). Если ошибаюсь, покажите. Буду благодарен.

Когда индикатор показывает горизонтальные участки тиков, которые явно не соответствуют барам, то это БАГ CopyTicks (лечится перезагрузкой терминала). Чтобы не быть голословным, привожу доказательство в виде советника

#define TRUE true
#define THOUSAND 1000

void OnInit( void )
{
  ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, TRUE);

  return;
}

void OnDeinit( const int Reason )
{
  Comment("");

  return;
}

// Возвращает значение времени, которое показывает CTRL+D
bool  MyChartXYToTimePrice( const long Chart_ID, const int X, const int Y, int &SubWindow, datetime &time, double &Price )
{
  const bool Res = ChartXYToTimePrice(Chart_ID, X, Y, SubWindow, time, Price);

  if (Res)
  {
    const int period = PeriodSeconds(ChartPeriod(Chart_ID));
    const bool NextBar = (time % period > period >> 1);

    time /= period;

    if (NextBar)
      time++;

    time *= period;
  }

  return(Res);
}

string GetTicks( const datetime time, const int Amount = 10 )
{
  MqlTick Ticks[];

  const int AmountTicks = CopyTicks(_Symbol, Ticks, COPY_TICKS_INFO, (ulong)time * THOUSAND, Amount);

  string Str = "Request's time = " + (string)time + ", result:";

  for (int i = 0; i < AmountTicks; i++)
    Str += "\n" + (string)Ticks[i].time + " bid = " + (string)Ticks[i].bid + " ask = " + (string)Ticks[i].ask;

  const int period = PeriodSeconds(_Period);

  if ((AmountTicks > 0) && (Ticks[0].time / period !=  time / period))
    Str += "\nWARNING!!!";

  return(Str);
}

void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam )
{
  if (id == CHARTEVENT_MOUSE_MOVE)
  {
    datetime time;
    double price;
    int SubWindow;

    if (MyChartXYToTimePrice(0, (int)lparam, (int)dparam, SubWindow, time, price))
      Comment(GetTicks(time));
  }

  return;
}

и скрин

 


Через индикатор отлично видно, как такие горизонтальные участки с каждым тиком растут в размерах - видна динамика, если запустить, конечно. Так что индикатор визуализирует и то, что происходит с внутренними тиковыми кэшами в архитектуре терминала.

Также, судя по анимированной картинке

 


индикатор "опережающий" - показывает цены, которые БУДУТ (через секунду и более) показываться на чарте в терминале, как текущие. Но на самом деле это отставание самих чартов от MarketWatch (гипотеза, что индикатор тормозит чарт, отпала - проверял). Поэтому крайне не рекомендую ориентироваться на "текущие" цены/бары, что показывает чарт. Такая болезнь есть и на MT4. Почему-то перебралась в пятерку.

Актуально

comp:

У кого есть ФОРТС и ЕСН, дайте репорт, какие там баги (уверен, их много).

Теперь по сабжу - искусственные индикаторные буферы MT4/5. Хотел иметь буферы, в которые могу записывать по ЛЮБОМУ времени (а не только бара) double-значение. И чтобы эти буферы визуализировались соответственно. Спрашивал, как архитектурно такие буферы лучше создавать. Т.е. какого вида класс нужен, какой интерфейс взаимодействия с ним видится наиболее удобным. И, конечно, есть ли востребованность в такого рода буферах?


Обсуждение (и индикатор) изначально планировал вести только с программерами (не юзерами). Не исключаю, что снова буду забанен после этого поста, т.к. получил в ЛС "ваши пиарные темы буду банить". У меня, к сожалению, не получается объяснить себе, почему воспринимаюсь именно так.
 
comp:
Обсуждение (и индикатор) изначально планировал вести только с программерами (не юзерами). Не исключаю, что снова буду забанен после этого поста, т.к. получил в ЛС "ваши пиарные темы буду банить". У меня, к сожалению, не получается объяснить себе, почему воспринимаюсь именно так.

Спасибо, тема действительно интересная. Эксперимент интересный. Особенно торможение графика. Не ожидал. Правда тиковый у меня открыт все время, и я больше на него смотрю.

Хотя, м.б. у МТ алгоритм такой, что линия Аск перерисовывается по дельте, например. Кстати, тики могут не быть сделками, а изменением Бид-Аск, тогда свечу и дорисовывать не надо.

Что до буферов, то со слов не понял проблемы. В обычный динам массив - что хочешь и сколько хочешь, то и пихай. Где там время?

По мотивам :) надо будет на досуге посмотреть задержки между Бид-Аск и тиковыми значениями в объектах. Лишний пункт не помешает.

ЗЫ Не в тему, но тоже не понимаю, почему свечи идут по Бид, а не по цене последней сделки, как на биржевых графиках.

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