Форум » Торговые системы OnLine » Недискрентные рендж-бары » Ответить

Недискрентные рендж-бары

Admin: ...

Ответов - 189, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All

Balbesik:

Balbesik: Scriptong пишет: Его можно получить только на основе своего опыта. или инструмента минимизирую его возможное двоякое толкование. Вариант – исключаем период (выбор которого «от лукавого»), делаем «гладкий» график с минимальным ренджем (получилось путем исключения в Тикколлекторе конструкции NonStandartTFChart::IsNewBarByConvertType(datetime &time) ), Зиг Заг соизмерим со спредом. Т.е. подбор параметров по возможности исключаем. OBV_0 – балансовый обьем по цене Закрытия OBV_1 – балансовый обьем по цене Открытия Volum_Up_Dw – объём по «кратчайшему ходу» (для сравнения). Зиг Заг твой JustZigZag_Evg_Signal с 21 и 41 пункта (для сравнения). Картинки –

Scriptong: Balbesik пишет: делаем «гладкий» график с минимальным ренджем Минимальный - это сколько? Вроде как 1. В таком случае это тиковый график. Если же выше 1, то, опять же, почему именно 2, 3 или 4? Таким образом, и здесь получим "от лукавого". Как ни крути, а от параметров не уйти. Да и зачем от них уходить, если они лишь повышают удобство работы с инструментом? Просто не нужно впадать в другую крайность, создавая десятки параметров. Чрезмерное количество параметров - да, неудобно.


Balbesik: Scriptong пишет: Минимальный - это сколько? Вроде как 1. В таком случае это тиковый график. Если же выше 1, то, опять же, почему именно 2, 3 или 4? Таким образом, и здесь получим "от лукавого". Как ни крути, а от параметров не уйти. Да и зачем от них уходить, если они лишь повышают удобство работы с инструментом? Просто не нужно впадать в другую крайность, создавая десятки параметров. Чрезмерное количество параметров - да, неудобно. Вроде как у нас есть 4 параметра цены O,H,L,С , 1 параметр активности (кол. тиков) и 1 параметр время. Итого 6 доступных параметров, которые должны быть связанны. Минимальный – это 3, т.к. 2 = 0, но учитывая связь с активностью получается 4 – 5. Я показывая примеры брал 4. Это просто для наглядности, как работает дивергенция, т.к. на мои взгляд, когда выбирается МАКД, то мы имеем «производную от цены», а фактически это просто цена! – и вот тут начинается "от лукавого" с т.з. дивергенции. Хотя, возможно и МАКД будет нормально работать, если сделать нормальный «гладкий» график цены – исходные данные!. И время добавить, но конструкция TimeCurrent()-iTime(NULL,0,i) у меня не работает, когда несколько баров внутри стандартного 1 минутного графика.

Scriptong: Balbesik пишет: Вроде как у нас есть 4 параметра цены O,H,L,С , 1 параметр активности (кол. тиков) и 1 параметр время. Итого 6 доступных параметров, которые должны быть связанны. Если мы работаем по рендж-барам, то указанные параметры (OHLC и время) не нужны. Они обусловлены лишь свечным представлением графика, которое просто является данью моде и привычке. А вот высота 4 пункта непонятно, чем обусловлена. Ведь с тем же успехом можно говорить и о 3, и о 5-и пунктах. Но мы отошли от темы топика. Вернемся к ней. По этой причине: Balbesik пишет: на мои взгляд, когда выбирается МАКД, то мы имеем «производную от цены», такое высказывание в данной теме неуместно, ведь по названию темы уже определились, что "работаем по МАКДИ". Обсуждать же целесообразность самого МАКДИ лучше в отдельном топике, ведь никто не запрещает создать его.

Balbesik: Scriptong пишет: А вот высота 4 пункта непонятно, чем обусловлена. Методом "научного втыка" (4 или 400 какая разница, если не понятно). Scriptong пишет: Если мы работаем по рендж-барам, то указанные параметры (OHLC и время) не нужны. Ой - ли? Ну если "команда" - "не нужны", то я балерина. Scriptong пишет: ведь никто не запрещает создать его. А никто и не спорит. А можно и по затмениям Луны работать и пропагандировать методику - "быть Гейем удачней". Я вообще-то пытался разговаривать с человеком с мозгами (не раз обращал внимание, что ответы дают разные люди). Напоминает - если 2 +2 = 4, то я возьму производную, сглажу ее логарифмом и получу 100 и стану богатым (якобы). Ты своего референта смени на более грамотного (а то уши вянут от бреда).

Scriptong: Balbesik пишет: Методом "научного втыка" (4 или 400 какая разница, если не понятно). Ты выше говорил о том, что не требуется набор параметров. Теперь утверждаешь обратное. Параметры ты подобрал. Balbesik пишет: Ой - ли? Ну если "команда" - "не нужны", то я балерина. Не придирайся к словам. Я говорил о том, что рендж-бары не обязательно необходимо представлять в виде свечного графика. В этом плане они больше похожи на крестики-нолики: каждый рендж-бар - это бокс выбранной высоты, у которого в терминах свечей цена закрытия всегда будет совпадать с ценой максимума или минимума. Таким образом привычного OHLC в них нет. Хотя, конечно же, их можно и выделить. Но в любом случае - это уже способ представления рендж-баров, не более. Balbesik пишет: А никто и не спорит. Вот раз никто и не спорит, то я за тебя создал эту тему. А то в теме neval'a этот разговор является оффтопом. Balbesik пишет: Ты своего референта смени на более грамотного (а то уши вянут от бреда). Почему ты меня постоянно принимаешь за другого человека? Если не можешь понять собеседника, то это вовсе не значит, что перед тобой другой человек. К примеру, твои высказывания я понимаю одно на десяток, но ни разу не сказал, что ты говоришь от чужого имени.

Balbesik: Я от хамства успокоился. "Референт" для тебя - любой профи в первую очередь заинтересуется - что не так в его работе? Я написал - конструкция NonStandartTFChart::IsNewBarByConvertType не работает, а зто всего лишь "полочка в магазине по выбору товара", а я структуру не менял и все работает (на это акцент пропущен). Любой профи (*а Игорь, по моим воспоминаниям профи) в первую очередь сделал бы на это акцент. Невозможность зафиксировать время внутри минутного бара - да это вызов любому профи - Любой профи сделал бы на это акцент. Тоже пропуск (а это более интересно для профи). Кроме этого, судя по ответам ты абсолютно не представляешь о чем речь. Я прекрасно понимаю твоя задача, когда "хозяин" отдыхает делать "валовку". Кончится перепечаткой чужого и форум станет нерентабелен (инвесторам с рекламой станет не интересно). Подумай, когда что-то отвечаешь.

Scriptong: Balbesik пишет: Я от хамства успокоился. Жаль... Только-только хотел тебя забанить

Balbesik: Scriptong пишет: Жаль... Только-только хотел тебя забанить "Чуть, что "Косой"..."Косой"..."

Scriptong: Balbesik пишет: "Чуть, что "Косой"..."Косой"..." Ага

Balbesik: Scriptong пишет: Ага "Не "Копченый" мокрушнияать не будет" - НЕ ТО ВОСПИТАНИЕ! Потом о работе.

Balbesik: Расбаланс, дисбаланс или дивергенция, какая разница. Равновысокий бар. Используем, для примера, два параметра (не связанных), но «одной системы». За счет равновысокого бара делаем график движения по активности (второй параметр) – ОBV по медиане. Рассогласование – ОBV по цене открытия (чуть изменен, что Игорь мне делал в Быках-Медведях) . 1 – направление движения ОBV_H_L и рассогласование по ОBV_Open. 1_1 – нет смены направления, нет расогласования, вверх нет входа. 2 – флет - направление вниз, есть рассогласование, но нет входа вверх. 3 – выход с флета вниз.

Balbesik: 4 – направление, рассогласование – ход вверх. 5 – смена направления на «тонком рынке» - активность низкая (просто вариант). 6– смена направления на «тонком рынке» - активность низкая (просто вариант).

Balbesik: Т.е. работа по равновысокому бару может иметь место и имеет свои преимущества, ну и естественно недостатки. Т.е. нет варьируемых параметров, точнее один высота бара и к ней все привязано. А теперь главное – проблема.

Scriptong: Евгений, ты не туда набрал текст последних трех сообщений. От каждого из них есть небольшой заголовок и все. Само сообщение не видно. Рисунок, кстати, тоже не виден.

Balbesik: Вставил на "старые места сообщений". А теперь главное – проблема. Если ставить несколько OBV на несколько графиков, то "грузиться" комп. Пропринтовал конструкцию - на обычном временном графике и на равновысоком Получается, что на равновысоком расчет по одному бару не работает - цикл идет по всей истории постоянно или идет как-то "криво". Игорь! Можно ли, что либо сделать или это в принципе не позволяет МТ?

Scriptong: Balbesik пишет: Получается, что на равновысоком расчет по одному бару не работает - цикл идет по всей истории постоянно или идет как-то "криво". Игорь! Можно ли, что либо сделать или это в принципе не позволяет МТ? Да, помнится Станислав Стариков как-то обращал внимание на то, что IndicatorCounted на оффлайн графиках не работает, т. е. всегда возвращает 0, будто индикатор только что был прикреплен к графику. Выхода из ситуации два: 1. Искусственно ограничивать количество рассчитываемых баров, присваивая nLimit какое-нибудь небольшое значение (до 1000, к примеру). 2. Определять формирование нового бара следующей функцией: bool IsNewBar() { static datetime lastBarTime = 0; static int lastBarsCnt = 0; if (Time[0] == lastBarTime && lastBarsCnt == Bars) return false; lastBarTime = Time[0]; lastBarsCnt = Bars; return true; } Если функция вернет true, то производить полный перерасчет значений индикатора. В итоге полный перерасчет будет происходить только при формировании нового бара, а не на каждом тике.

Balbesik: Так я о чем? Вот есть законы физики - Есть путь ,скорость и время - более ничего нет! Если взять электричество (или иную науку), то ничего не меняется - буковки и названия разные, а суть одна! Так может делом заняться, а не херней? Кстати , Игорь! "быки- медведи" "слетают", я этим заниматься не буду. А вот дело доводить до конца я привык - осюда нелицоприятные высказывания.

Scriptong: Balbesik пишет: Кстати , Игорь! "быки- медведи" "слетают" ОК, слетают, рассказывай, как воспроизвести. Balbesik пишет: я этим заниматься не буду. Если не нужно решение проблемы, то, действительно, зачем этим заниматься. Balbesik пишет: А вот дело доводить до конца я привык - Только чуть выше указано, что заниматься не будешь. Было бы неплохо определиться: не будешь заниматься или привык до конца доводить? Balbesik пишет: осюда нелицоприятные высказывания. Слабое оправдание.

Balbesik: Здорово! Спасибо Игорь! Scriptong пишет: 1. Искусственно ограничивать количество рассчитываемых баров, присваивая nLimit какое-нибудь небольшое значение (до 1000, к примеру). Это понятно. Scriptong пишет: 2. Определять формирование нового бара следующей функцией: Комп разгрузился, все работает! Параллельно решилась еще одна проблема! Изучил наизусть инструкцию - что только не делал. На одном терминале открыто 2 равновысоких графика, на одном стоит индикатор BearBullBalance_OpenZero_AD, поставить на второй график такой же индикатор BearBullBalance_OpenZero_AD не мог ни при каких вариантах. Вставка - Второи индикатор легко встает. Без всяких заморок и все работает! Да, единственное, не подхватывает "чужую" тиковую историю Scriptong пишет: ОК, слетают, рассказывай, как воспроизвести. Сейчас повторно смоделирую, но думаю проблема снялась. Мне кажется в этом плане есть смысл посмотреть тиковые индикаторы и доработать. Это конечно не мое дело, но для равновысоких такая твоя добавка , на мои взгляд, актуальна.

Balbesik: Balbesik пишет: Сейчас повторно смоделирую, но думаю проблема снялась. Нет не снялась. Два равновысоких графика, разница в 2 раза по высоте бара. На одном стоит BearBullBalance_OpenZero_AD - все нормально работает. Ставим на 2 график еще один BearBullBalance_OpenZero_AD. Может начать работать, но перестает - гистограмма строится, но "не сохраняется" и далее только построение на "0" баре (при переходе на 1 бар исчезает). P.S. Когда индикатор стоит один - "слет" имеет случайный характер - тоже самое по картинке.

Scriptong: Balbesik пишет: Нет не снялась. Два равновысоких графика, разница в 2 раза по высоте бара. На одном стоит BearBullBalance_OpenZero_AD - все нормально работает. Ставим на 2 график еще один BearBullBalance_OpenZero_AD. Может начать работать, но перестает - гистограмма строится, но "не сохраняется" и далее только построение на "0" баре (при переходе на 1 бар исчезает). Вот оно как! То есть тиковый индикатор запущен на оффлайн-графике, который, в свою очередь, построен с помощью другого тикового индикатора. Такой компот я не предусматривал при разработке тиковых индикаторов. Завтра проанализирую, какие там подводные камни возникают.

Balbesik:

Balbesik:

Scriptong: Посмотрел код BearBullBalance_OpenZero и не нашел каких-либо несовместимостей при работе на эквиобъемных графиках или на графиках рендж-баров. Чтобы проверить наверняка, поставил два индикатора (один по пунктам, другой - по тикам) на один и тот же график рендж-баров с разными настройками. Оба индикатора проработали чуть более пяти часов. Так что пока какие-либо проблемы замечены не были. Нужно больше информации о предпосылках "слета".

Balbesik: Scriptong пишет: на один и тот же график рендж-баров Balbesik пишет: цитата: "...Два равновысоких графика, разница в 2 раза по высоте бара..." Да на одном и том же графике оба будут работать непонятно сколько - я и написал: ".. имеет случайный характер..", речь шла о двух разных по ренджу графиках (не думаю, что днем более 5 минут проработают). BearBullBalance_OpenZero_AD - штатный TicksCollector_AD - штатный

Scriptong: Balbesik пишет: речь шла о двух разных по ренджу графиках Ясно, буду проверять на двух разных графиках.

Genry: Попалась информация на MQL5. Думал куда поместить... может здесь для нее есть место? Автор: Serhii Shevchuk " Жидкий график" Введение Однажды я обратил внимание на то, что у разных брокеров по-разному выглядят графики с периодом H4 и выше. Причиной тому были разные часовые пояса. В некоторых случаях определенные участки графиков существенно отличались даже при незначительной разнице часовых поясов. На одном был четко виден разворотный паттерн, а на другом в этом месте было что-то неопределенное. Тогда у меня возникла мысль написать индикатор, который будет перестраивать график H1 таким образом, чтобы справа всегда был законченный по времени, закрывающийся бар. В качестве источника цен был выбран период M1. В результате, часовой график перерисовывался каждую минуту, и за час времени я получил 60 разновидностей одного и того же часового графика. Его перетекающая форма плавно менялась, открывая скрытые паттерны в тех местах, где на исходном графике на них не было даже намека. За характерный внешний вид я назвал данный индикатор "жидкий график". В зависимости от режима построения, график "перетекает" (перерисовывается) либо при появлении нового бара базового периода, либо при изменении значения статического сдвига. В данной статье мы рассмотрим принципы построения "жидкого графика", напишем индикатор, а также сравним эффективность применения данной технологии для советников, торгующих по индикаторам, и советников, торгующих по паттернам. PS Тапками не кидайте, лежу в лазарете

Balbesik: Genry пишет: Тапками не кидайте, лежу в лазарете Спасибо, Genry! Очень к месту и любопытно. Конечно можно сказать – это о чем? Если взять Сью Ки Джи это будет одно (но это дорого), а если Альпари, которые берут (по моей информации) у Дуки (Питерские ребята) это абсолютно другое, но это не важно. Если ты заметил, я вопрос времени пока «отложил», хотя Игорю его обозначил. Просто этот вопрос, а время это просто некая градация хоть локальное, хоть астраномическое, но важное. Но это потом. Пока надо разобраться с тем, что имеем. А имеем S = V * t и пока не до t. Пока с нормирован путь - появилась база или точка отсчета (а не некая градация). Теперь «головняк» по активности. Да у Игоря лучшее, что есть в свободном доступе по объему, но индикатор, на мои взгляд, «ОЧЕНЬ ТЯЖЕЛЫЙ» - с этим надо разобраться. Пока нет тех или иных корректных исходных данных и инструментов нет смысла двигаться далее. Путь и активность уже дает возможность работать – Картинка технологической отработки - была проблемка по МАХ МИН на ОBV , но решена (просто картинка осталась). Это не тики, а "типа штатного" ОBV. Тики намного лучше. Можно интерпретировать, что какой-то маркер шел против рынка – и это видно по активности. Ну а цель – как у многих трейдеров – добиться результатов легенды – Атамана! И исключить оптимизацию "как класс". АТАМАН http://smart-lab.ru/blog/31993.php Я полагаю это возможно, т.к. на картинке у Атамана вход – дневка!

Scriptong: Balbesik пишет: Если ты заметил, я вопрос времени пока «отложил», хотя Игорю его обозначил. К сожалению, это не мне его нужно обозначать, а метаквотам. Но там про оффлайн-графикам все глухо, ответ неизменный: "это не нужно".

Balbesik: Scriptong пишет: К сожалению, это не мне его нужно обозначать, а метаквотам. Но там про оффлайн-графикам все глухо, ответ неизменный: "это не нужно". Ой - ли? Вообще-то проблем нет. Я полагаю, проблема в методах обьектно-ориентрованных, применяемых в языке который этого не понимает. Но речь "искусственно затерта" и шла о BearBullBalance_ А в ответ тишина... P.S. Обрати внимание на запятые - что бы правильно понять (там нет ошибок по смыслу). Genry - к тебе это не относится.

Scriptong: Balbesik пишет: Я полагаю, проблема в методах обьектно-ориентрованных, применяемых в языке который этого не понимает. Последний раз говорю: проблема времени - из-за ограничений терминала, который не допускает присутствия двух баров с одинаковым временем. Из-за того, что минимальный шаг прироста времени открытия баров сделан 1 минута, невозможно дробить один бар на несколько мелких в пределах этой одной минуты. Выход - сдвигать открытие следующего бара на 1 минуту вперед. При чем тут ООП? Если не веришь мне, то посмотри мою версию рендж-баров для тестера. Там такой проблемы нет, все отлично работает с несколькими барами на одном времени открытия. Это явно указывает на искусственность ограничения, которая исходит от разработчиков терминала. Balbesik пишет: Но речь "искусственно затерта" и шла о BearBullBalance_ Не получается у меня воспроизвести. Потому пока и не возвращаюсь к теме.

Balbesik: Scriptong пишет: Если не веришь мне Игорь! Верю. Scriptong пишет: Из-за того, что минимальный шаг прироста времени открытия баров сделан 1 минута Это потому, что сами сделали 60 секунд. Проблема у меня была не в 60 секундах, а в – Определение формирования нового бара по условиям типа текущего экземпляра класса – bool NonStandartTFChart::IsNewBarByConvertType(datetime &time) const почему не знаю. Я отказался от этой конструкции, я писал – все работает на любом кол. пунктов – не слетает. Работает с точностью до 1 секунды и конструкция Time - Time[i+1] и TimeCurrent()-iTime(NULL,0,i) Т.к. не владею программированием возможно у меня и что-то не корректно и поэтому хотелось бы иметь профессиональный подход к задачке. Пока меня решение проблемы времени устраивает. На картинке, что-то типа определение тренда по «ускорению» и по типу OBV. Принимаю активность за скорость – приращение скорости к изменению времени. Кол. тиков – просто на баре, без «выкрутасов». Но вот кол. тиков на баре меня не устраивает – портит всю картинку. Главная проблема – BearBullBalance. У меня вообще с ним не получается ничего. Может быть есть какая-то возможность упростить (облегчить) и заставить работать на нескольких графиках на одном терминале? P.S. Еще раз - для меня активность и кол. пунктов - одно и то же.

Scriptong: Balbesik пишет: Я отказался от этой конструкции, я писал – все работает на любом кол. пунктов – не слетает. Не будет слетать, если формируемые бары не повторяются по времени. Как только сделаешь относительно малую величину рендж-бара, сразу же появятся ошибки в журнале. Просто посмотри, есть ли на графике бары с одинаковым временем открытия. Если нет, то вот и ответ. Уменьши шаг - получи проблему.

Balbesik: Scriptong пишет: Не будет слетать, если формируемые бары не повторяются по времени. Как только сделаешь относительно малую величину рендж-бара, сразу же появятся ошибки в журнале. Просто посмотри, есть ли на графике бары с одинаковым временем открытия. Если нет, то вот и ответ. Уменьши шаг - получи проблему. Как я понял - зависит от скорострельности компа. Да с начало "слет" на очень быстром движении - "прыгают" данные, но как только рынок "успокоился", видимо "запись" все таки проходит корректно, все нормально восстанавливается. Сейчас другая проблема - не могу на базе BearBullBalance сделать OBV (точнее сделал, но сомнения)? Во первых где бы не "принтовал" - нет соответствия по сумме кол. тиков (возможно так заложено)? Во вторых гистограмма - да для визуального восприятия, возможно, кому-то интересно, но иначе это просто не связанный набор значений. Нельзя ли, для примера, в рамках BearBullBalance сделать штатный ОБВ (а еще интересней со временем и кол. тиков вместе - при разной размерности этих параметров - желательно в связке при делении)? Пожелание - в качестве учебного пособия!

Scriptong: Balbesik пишет: Как я понял - зависит от скорострельности компа. Нет, от заданной высоты рендж-бара и скорости изменения цены. Если цена за одну минуту изменится на величину, большую, чем высота рендж-бара, то будет проблема. Balbesik пишет: нет соответствия по сумме кол. тиков (возможно так заложено)? Сразу же вопрос: как сравнивал? Если по данным количества тиков, которое дает МТ к каждой свече, то да, будут расхождения. Дело в том, что тики по каждой свече считаются на сервере и не все из этих тиков доходят до клиентской части МТ4. Balbesik пишет: Нельзя ли, для примера, в рамках BearBullBalance сделать штатный ОБВ (а еще интересней со временем и кол. тиков вместе - при разной размерности этих параметров - желательно в связке при делении)? Пожелание - в качестве учебного пособия! Нужно более подробное описание. Я пока вообще не понял, что именно требуется.

Scriptong: Genry пишет: Тапками не кидайте, лежу в лазарете Генри, пора выздоравливать, хватит валяться. Так все лето пропустите Дерзайте, мы за Вас "держим кулаки".

Genry: Scriptong пишет: Генри, пора выздоравливать, хватит валяться. Так все лето пропустите Дерзайте, мы за Вас "держим кулаки". Спасибо, Игорь! Отвечу как Никулин в фильме "Ко мне, Мухтар!": - Он постарается

Balbesik: Кажется запустил BearBullBalance. Исключил – Чтение данных о тиках, накопленных в течение предыдущей рабочей сессии программы IsLoadTempTicks и Сохранение данных о тиках, накопленных за текущую рабочую сессию программы SaveTempTicks Использую данные TicksCollector – нормально на нескольких графиках ПОКА работает. Игорь! Пару вопросов – Что еще можно убрать из BearBullBalance если используется TicksCollector? Т.к. для определения времени формирования бара использую 1 секунду – могу ли я использовать тиковую историю с форума?

Scriptong: Balbesik пишет: Что еще можно убрать из BearBullBalance если используется TicksCollector? Только функцию IsSavedFile. Она, плюс те две, которые ты назвал, обеспечивают работу индикатора, если он работает без TicksCollector'a. Balbesik пишет: Т.к. для определения времени формирования бара использую 1 секунду – могу ли я использовать тиковую историю с форума? Да, файл тиковой истории как раз подтягивается индикатором при каждой инициализации. Единственный момент - при переключении таймфреймов или при любой другой инициализации индикатор не будет сохранять накопленные им самим тики. В то же время TicksCollector обновляет тики в тиковом файле не очень часто (параметр "Сброс данных каждые N тиков"). Поэтому в момент инициализации BearBullBalance_OpenZero не получит несколько последних тиков, которые находятся в буфере сборщика тиков.

Balbesik: Ну тогда еще раз вернусь к ОBV. Часы http://stocktime.ru/ , по бирже Wellington (когда одна работает) хорошо наблюдается, как ДЦ набирает активность (кол. тиков) на одном баре, при этом цена остается «на месте» (просто наглядно в это время). Можно, конечно предположить, что у маркет – мейкера не хватает ликвидности, но что-то в этом плане у меня большие сомнения. При этом, на некоторых барах, в рамках хода 2 – 3 пункта идет «дребезг» (хорошо видно на равновысоком графике при высоте бара 5 – 10 пунктов) и набирается кол. пунктов отличающихся от среднего на несколько порядков на одном баре. Что, на мой взгляд, не позволяет даже приблизительно использовать кол. тиков для анализа. Но при этом, соответственно, увеличивается на порядки и среднее время формирования бара, что позволяет «сгладить картинку». Взял для сравнения времени формирования бара (бар 6 пунктов) в секундах тонкий рынок (ночь) – Рис. 02 И азиатская сессия Рис. 03 Что показывает существенные различия по времени, но при этом идет существенное различие и по кол. пунктов (как это показать – снять картинку, я не знаю). Идем путем использования штатного ОBV Рис. 319_0 цвет графика голубой (нижний). Отчетливо видны бары с «ненормальным» кол. тиков. Индикатор BearBullBalance_HiddenGeneral под ОBV Рис. 319_2 цвет графика белый (нижний). Чуть лучше, но не показательно. На обеих рисунках график BearBullBalance_HiddenGeneral под ОBV белый выше с «сглаживанием» по времени. Сглаживание по времени дает более корректный график в сравнении по МАХ и МИН на ОBV на заданном периоде. В данном случае идет разворот по ОBV с опережением – Рис. 319 Маленькие стрелочки по МАХ и МИН на ОBV на заданном периоде и те же МАХ и МИН по ОBV на графике цены между 1 и 2 свингом. При этом нижний белый график ОBV без сглаживания по времени не дает достоверности. Ну и далее с переходом рассоглосования на экстремумы свингов. Рис. 319_5,9 Достоверность реализации мной ОBV в рамках BearBullBalance_HiddenGeneral вызывает сомнения (есть один момент не понятный), но сути не меняет – без достоверных исходных данных нет смысла что-либо делать далее.

Scriptong: Balbesik пишет: Часы http://stocktime.ru/ , по бирже Wellington (когда одна работает) хорошо наблюдается, как ДЦ набирает активность (кол. тиков) на одном баре, при этом цена остается «на месте» (просто наглядно в это время). Можно, конечно предположить, что у маркет – мейкера не хватает ликвидности, но что-то в этом плане у меня большие сомнения. Перепутаны причины и следствия. Если рынок активен (растут объемы), но цена стоит на месте, то никаких проблем с ликвидностью нет. Наоборот - все отлично. Просто и продавцов, и покупателей устраивает текущая цена. Проблемы с ликвидностью как раз и приводят к серьезным движениям цены. Ближайший пример - рост стоимости франка 15.01.2015.

Scriptong: Balbesik пишет: Взял для сравнения времени формирования бара (бар 6 пунктов) в секундах тонкий рынок (ночь) – Рис. 02 Указывается тот факт, что одно и то же расстояние цена проходит за разное количество времени. Причем время это отличается в разы. В чем здесь проблема? Это аксиома рынка, так всегда было и будет.

Scriptong: Balbesik пишет: Что показывает существенные различия по времени, но при этом идет существенное различие и по кол. пунктов (как это показать – снять картинку, я не знаю). Здесь непонятно, каким образом идет существенное различие по количеству пунктов, если бары равновысокие? Различие в равновысоких может быть, если между закрытием одного бара и открытием другого был гэп, превышающий размер равновысокого бара. Это также аксиома. Лечится заполнением пустых мест домысленными тиками, о чем ты давно просишь. Или имелось в виду что-то другое?

Scriptong: Balbesik пишет: Отчетливо видны бары с «ненормальным» кол. тиков. Извини, но в упор не вижу. О чем говорят все эти выноски, понять не могу. Требуется более глубокое объяснение. Учти, что я не нахожусь в контексте твоих исследований. Поэтому многие вещи в данном случае нужно разжевывать.

Balbesik: Scriptong пишет: но в упор не вижу Если не учитывать соизмеримость значений, то да - не видно. Ну можно, сделать чуть по другому - учесть время и тики - Рис. Я конечно предложил, как это проверить в реале, но ведь можно и иначе (если рекламодатели не против). Учел время и тики (вместе). Хотя в нормальных системах такие аномалии исключаются, но "здесь Вам не тут". Хотя можно за сутки подобрать намного более "красивую картинку". На мой взгляд, я ничего нового не показывал, а еще раз пытался объяснить зачем нужен "инструмент" P.S. Для более "наглядности" и в размерностях можно "потеряться". На 6 пунктах высоты бара можно "поймать" реал (Альпари - острова) 1500 - 2000 тиков (видимо я балерина).

Scriptong: Balbesik пишет: Для более "наглядности" и в размерностях можно "потеряться". На 6 пунктах высоты бара можно "поймать" реал (Альпари - острова) 1500 - 2000 тиков (видимо я балерина). Из всего поста более-менее мне понятна вот эта часть. Правильно ли я понимаю, что нижний индикатор отображает количество тиков, за которое был сформирован range-бар? Если да, и проблема в том, что 6 пунктов высоты бара формировалось на протяжении 1500 - 2000 тиков, то просто сверь эти данные нижнего индикатора с тем, что показывает на этом же баре значение Volume. Они должны примерно совпадать. Кроме того, не стоит писать для этого отдельный индикатор. Он уже есть в составе МТ4 - Volumes называется:

Balbesik: Scriptong пишет: Из всего поста более-менее мне понятна вот эта часть. Правильно ли я понимаю, что нижний индикатор отображает количество тиков, за которое был сформирован range-бар? Нижний индикатор (как и верхний) отображает стандартную OBV без учета времени ("...Усугубим так сказать..." - из этих же соображений, только нижний вообще без времени) – другими словами сумму- разницу на истории кол. тиков за бар. Верхний с учетом времени (имея «базу» - можно «сгладить», а рендж - это база) и вся разница. Scriptong пишет: 6 пунктов высоты бара формировалось на протяжении 1500 - 2000 тиков, то просто сверь эти данные нижнего индикатора с тем, что показывает на этом же баре значение Volume. На этом же баре, значение Volume – возможно есть какой-то еще стандартный (терминаловский) индикатор Volume, которого я не знаю, но я писал о значении «объема» отображаемом терминалом на баре (именно терминалом). Я же писал:"...идет существенное различие и по кол. пунктов (как это показать – снять картинку, я не знаю)...". Scriptong пишет: Кроме того, не стоит писать для этого отдельный индикатор. Он уже есть в составе МТ4 - Volumes называется: Это о чем? Есть связка со временем? Есть разделение на быков и медведей? Решен вопрос разных размерностей (без множителей в зависимости от "..ТФ..")? Последнее вообще интересно - Где посмотреть? Да и вообще не стоял вопрос о каком-то новом индикаторе, а речь шла о блоке к существующему в рамках "ветки", по аналогии с bool IsNewBar() .

Scriptong: Balbesik пишет: Нижний индикатор (как и верхний) отображает стандартную OBV без учета времени В OBV время никогда и не учитывалось, если не считать того, что он отображался на графике, где по шкале X было время. На рендж-барах шкала X - не время (возможно тебя путает, что оно все же отображается, но это лишь издержки способа построения рендж-баров), а именно индекс бара. Итак, нижний индикатор - это обычный OBV. Прошу прощения, что не понял этого сразу, но картинки очень мелкие, прочесть название не смог, а мои экстрасенсорные способности последнее время дают сбой. Раз это OBV, то идем дальше - в чем же заключается суть расхождения? То есть на OBV ты показываешь некие взлеты линии и называешь это аномальным. Поясни, пожалуйста, что именно считаешь аномальным. Balbesik пишет: На этом же баре, значение Volume – возможно есть какой-то еще стандартный (терминаловский) индикатор Volume, которого я не знаю, но я писал о значении «объема» отображаемом терминалом на баре (именно терминалом). Да, и я именно об этом. В виде индикатора это можно сделать двумя способами: присоединить стандартный индикатор Volumes (уже говорил) и отобразить объемы на самом графике (свойства графика - закладка "Общие" - показывать объемы). Balbesik пишет: Я же писал:"...идет существенное различие и по кол. пунктов (как это показать – снять картинку, я не знаю)...". Чтобы я здесь подсказал, мне нужно понять, что именно ты хочешь показать. Просто замкнутый круг... Balbesik пишет: Это о чем? Есть связка со временем? Есть разделение на быков и медведей? Решен вопрос разных размерностей (без множителей в зависимости от "..ТФ..")? Последнее вообще интересно - Где посмотреть? Это к вопросу о сравнении показаний OBV и количества тиков. Ведь именно на них ориентируется OBV.

Balbesik: "...В OBV время никогда и не учитывалось, если не считать того, что он отображался на графике, где по шкале X было время. На рендж-барах шкала X - не время (возможно тебя путает, что оно все же отображается, но это лишь издержки способа построения рендж-баров), а именно индекс бара. ..." Согласен, Игорь, но чуть тут другое. Поправку я выше выложил - время формирования бара контролируется до 1 секунды. Теперь смотри - ранее не было единой базы - привязаться было не к чему и соответственно время не играло роли и наоборот его учет приводил к неопределенности.

Balbesik: "...Раз это OBV, то идем дальше - в чем же заключается суть расхождения?..." Еще раз - если брать некоторую выборку баров, то получаем картинку - т.к. бары равновысокие, то приблизительно кол. тиков на баре имеют соизмеримые величины. При этом если посмотреть выборку, то можно увидеть, что попадаются бары с кол. тиков превышающие среднюю по выборке на порядки, что соответственно не может быть использовано для анализа - ну нельзя сопостовлять 1 и 100000.... При этом, если на тех же барах сравнить время формирование бара то различие тоже идет на порядки, а так как бар равновысокий, то этот момент можно "сгладить".

Scriptong: Balbesik пишет: Еще раз - если брать некоторую выборку баров, то получаем картинку - т.к. бары равновысокие, то приблизительно кол. тиков на баре имеют соизмеримые величины. При этом если посмотреть выборку, то можно увидеть, что попадаются бары с кол. тиков превышающие среднюю по выборке на порядки, что соответственно не может быть использовано для анализа - ну нельзя сопостовлять 1 и 100000.... Получается, что этот момент я давно понял. Со своей стороны не вижу ничего странного в том, что один рендж-бар цена формирует за 10 тиков, а другой - за 10 000 тиков. Никакой странности в этом нет, все нормально Наоборот, это можно использовать в качестве определения тренда и флэта.

Balbesik: Вот так наверное будет понятней - Штатный OBV и добавка по времени t_1i = (int)Time - (int)Time[i+1]; .................................................. ExtOBVBuffer=ExtOBVBuffer[i+1]-iVolume(NULL,PERIOD_CURRENT,i+1) * (double)t_1i; else ExtOBVBuffer=ExtOBVBuffer[i+1]+iVolume(NULL,PERIOD_CURRENT,i+1) * (double)t_1i; первый бар, т.к. по Open (тут без разници) Усугубим так сказать. График один и тот же - Другими словами, если соизмеримость величин вызывает вопросы, то что мы в итоге получаем?

Balbesik: "...Чтобы я здесь подсказал, мне нужно понять, что именно ты хочешь показать. Просто замкнутый круг..." я специально показал умножение времени и кол. тиков, чтобы "картинка" была наглядней, т.е. специально сделал хуже что бы было понятно, что нельзя таким образом проводить сравнение.

Scriptong: Balbesik пишет: я специально показал умножение времени и кол. тиков, чтобы "картинка" была наглядней, т.е. специально сделал хуже что бы было понятно, что нельзя таким образом проводить сравнение. Тут уже смотря, что именно сравнивается. Выше выразил идею о выявлении тренда и флэта (правда, все это только на истории). Скорее всего, есть другие способы толкования полученных показаний.

Balbesik: "....Да, и я именно об этом. В виде индикатора это можно сделать двумя способами: присоединить стандартный индикатор Volumes (уже говорил) и отобразить объемы на самом графике (свойства графика - закладка "Общие" - показывать объемы). ..." Это понятно.

Balbesik: "...Это к вопросу о сравнении показаний OBV и количества тиков. Ведь именно на них ориентируется OBV..." Вот здесь переходим к главному - равнвысокий бар позволяет "убрать" рассогласование по соизмеримости значений, т.е. учитываем время на одном и том же "пути" (баре). Что кардинально меняет "картинку". Само ОBV позволяет "связать" значения кол. тиков на баре. Ты же сам сторонник множественности подстроечных параметров (я противник). Мы можем задавать период - допустим 2-3 свинга. Практически исчезает рассогласование (дивергенция по Вашему), что здорово, когда она появляется только на смене "тренда" да масса преимуществ (ну и специфика недостатков).

Scriptong: Balbesik пишет: Ты же сам сторонник множественности подстроечных параметров (я противник). Нет, вовсе не сторонник. Наоборот - всегда пытаюсь уменьшить количество настроечных параметров. Другое дело, что никогда не уменьшаю это количество любой ценой, оставляя те параметры, которые могут серьезно повлиять на характеристики той или иной системы. Стратегия без настроечных параметров - это идеал (Грааль, если угодно), к которому стремишься, но никогда не достигаешь.

Balbesik: *PRIVAT*

Balbesik: Ну теперь к проблеме. Для взаимопонимания и получения единых значений в процессе отработки ты сделал отличнейший индикатор - JustZigZag_Evg_Signal. Это твое и твое желание его выкладывать или нет. Существенно так же помогает разделение на быков и медведий Я попытался "вписать" в него BearBullBalance_HiddenGeneral_AD и мне это не удается. Т.к. начало построения Зиг-Зага (вверх- вниз) в JustZigZag_Evg_Signal имеет случайный характер, то и получаю случайно или только быков или только медведей. При этом легко вписывается штатный ОБВ в цикл функции void CalcIndicatorData(int limit,int total) индикатора. Вот и затеял эту тему. P.S. Да еще проблема мне не понятная - стандартная конструкция - static int last_rates_total=0; На реале добавка только "местного" использования static приводит к "слету" у меня, а без static на тестере почти не "шевелится". Что-то тут я не догоняю.

Scriptong: Balbesik пишет: Для взаимопонимания и получения единых значений в процессе отработки ты сделал отличнейший индикатор - JustZigZag_Evg_Signal. Это твое и твое желание его выкладывать или нет. Существенно так же помогает разделение на быков и медведий Я попытался "вписать" в него BearBullBalance_HiddenGeneral_AD и мне это не удается. И как же можно скрестить эти два совершенно различных вида индикаторов: зиг-заг и индикатор дельты тиковых объемов? Я действительно не могу придумать ни одного варианта.

Balbesik: Хотел, Игорь, получить твой взгляд на проблему или готовый блок ОБВ в индикатор быков и медведей по аналогии с твоей разработкой - Кумулятивной дельтой.

Scriptong: Balbesik пишет: Хотел, Игорь, получить твой взгляд на проблему или готовый блок ОБВ в индикатор быков и медведей по аналогии с твоей разработкой - Кумулятивной дельтой. Т. е. нужно производить накопление данных в течение одних суток, а с наступлением новых сбрасывать в ноль? Ну а вместо самой силы быков и медведей просто считать так, как считается OBV?

Balbesik: Scriptong пишет: И как же можно скрестить эти два совершенно различных вида индикаторов: зиг-заг и индикатор дельты тиковых объемов? Я действительно не могу придумать ни одного варианта Ну тут не стоит вопрос скрещивания. Тут скорее моя вечная проблема – нехватка памяти. Поэтому вписываю в индикатор ЗигЗага расчет Быков – Медведей не могу синхронизовать по i и какая-то проблема с лимитом. Не могу разобраться. Подозреваю, что некорректно сделал ОБВ, хотя через функцию iCustom(…) к индикатору Быков – Медведей все четко, а при «вписывании» расчета Быков – Медведей в индикатор ЗигЗага все по принтам совпадает и значение и номер бара, но на историю «загнать» не удается (а через iCustom(…) все работает). Scriptong пишет: Со своей стороны не вижу ничего странного в том, что один рендж-бар цена формирует за 10 тиков, а другой - за 10 000 тиков. Никакой странности в этом нет, все нормально Наоборот, это можно использовать в качестве определения тренда и флэта Да приемлемо, но как отдельный параметр активность (кол. тиков), на мой взгляд не пригоден, так или иначе необходимо с чем-то сравнивать. Да если это временной график можно привязать к сравнению с волатильностью, спредом и проч. исходя из той или иной принятой системой анализа, например методы анализа микроструктуры бара. Но в рассмотрении график-то равновысокий. Scriptong пишет: Тут уже смотря, что именно сравнивается. Выше выразил идею о выявлении тренда и флэта (правда, все это только на истории). Скорее всего, есть другие способы толкования полученных показаний Сравнивая несколько баров на равновысоком графике - за период (кол. баров), за сутки или за некоторое количество (или одного) свингов ЗигЗага все таки считаю необходимо делать сглаживание через время, т.к. иначе сравнение на равновысоком графике проблематично – на мой взгляд. Scriptong пишет: Т. е. нужно производить накопление данных в течение одних суток, а с наступлением новых сбрасывать в ноль? Ну а вместо самой силы быков и медведей просто считать так, как считается OBV? Да именно так, но с учетом времени формирования бара – как –то так – ti = (int)Time - (int)Time[i+1]; ………………………………………………. ExtOBVBuffer=ExtOBVBuffer[i+1] + NormalizeDouble((double)g_bearBuffer[i+1] / (double)ti , 6); else ExtOBVBuffer=ExtOBVBuffer[i+1] + NormalizeDouble((double)g_bullBuffer[i+1] / (double)ti , 6); Тут цена Открытия, соответственно 1 бар. Это необходимо именно для равновысоких баров.

Scriptong: Balbesik пишет: Да именно так, но с учетом времени формирования бара – как –то так – Так это достаточно просто - тот же OBV, но с обнулением в начале каждых суток - вот так. На обычном графике разницы почти не будет, если не считать "прыжков" нового OBV в начале суток. Правда, с увеличением периода графика будем скатываться к малым изменениям в течение дня - сказывается увеличение знаменателя: На рендж-барах получаем практически прямые линии в течение дня, т. к. новый объем делится на количество секунд, прошедшее между соседними барами.

Balbesik: Игорь! Спасибо за ответ (честно, не ожидал). Завтра буду разбираться, судя по графикам у тебя, что-то не то. Так не может быть. Вот интересно (с памятью - ее вечно не хватает) эти "кухонные" козлы, когда-нибудь на 64 перейдут? Или ждем 1 октября, когда "кухни" "построят"? Сегодня опять (уже надоело) день рожденье "отмечал". P.S. Игорь файлообменник не отвечает! Любое время суток - сообщи загрузку, мне без разнице. У тебя 0 дней и 00. 00. 00 времени. Скачать не дают. Все. Скачал (без форума).

Scriptong: Balbesik пишет: когда-нибудь на 64 перейдут? MT4 переводить x64 не будут. Для этого они МТ5 разработали. То, что МТ5 не берут понятно - кухням он не нужен (МТ4 для них наиболее функционален, да и дешевле в 6 раз), а за биржи драться тяжело, т. к. там конкуренция достаточно высока. Вот МТ5 и в подвешенном состоянии.

Balbesik: Первое "на вкидку" Ну с 2 - total = ratesTotal - 2; буду разбираться (это как раз проблема лимита). А что время на сутках считается на 24-00 (я то думал на 00) - datetime deltaTime = iTime(NULL, 0, i) - iTime(NULL, 0, i + 1);? Так ли это? Иначе почему объем , как минимум надо i + 1 (что-то не вяжется). Что-то тут не вяжется (тем более я помню - не так все просто - там проблема размерности кол.тиков и времени). Завтра, по трезвяне, посмотрю. Тем более похоже у тебя нет времени. (не учитывается). Эту конструкцию я пробовал - она "не вписывается" в ЗигЗаг - еще раз посмотрю. Но все равно спасибо за "взгляд".

Balbesik: Balbesik пишет: Тем более похоже у тебя нет времени. (не учитывается). Все правильно, это пример, а не индикатор - он и не должен работать на равновысоких. Обычная схема, времени на равновысоких и не видит (точнее "плохо видит" и более 60 сек.). В данном случае дневка, а времени на равновысоких (кроме бара) нет! (тем более дневки) Инструмент! В первую очередь инструмент! А потом все остальное. Я еще раз посмотрю и покажу как на Быках - Медведях должен работать. Сразу по картинкам было понятно, что "образец конструкции". "Та же песня только с боку" (OBV_By_Day.mq4) - самый нижний график кстати верхнии тоже ОБВ. Проверим и посмотрим, что я не учел (на первый взгляд я эту конструкцию пробовал).

Scriptong: Balbesik пишет: Все правильно, это пример, а не индикатор - он и не должен работать на равновысоких. Как раз там он и будет наиболее явно работать, т. к. дельта не будет константой.

Scriptong: Balbesik пишет: datetime deltaTime = iTime(NULL, 0, i) - iTime(NULL, 0, i + 1);? Так ли это? Так, конечно. Это время в секундах, прошедшее между соседними барами. На стандартных ТФ эта дельта одинаковая, кроме перехода между сутками и прочими "дырами" в истории. На равновысоких и эквиобъемных графиках дельта будет меняться от бара к бару, т. к. время формирования бара не является константой.

Balbesik: Scriptong пишет: На рендж-барах получаем практически прямые линии в течение дня, т. к. новый объем делится на количество секунд, прошедшее между соседними барами. Сейчас немного некогда. Пока на вскидку посмотрел, как раз соизмеримость значений. Два нижних графика. Их них верхний - штатный, нижний - различие - // Начат новый день if (IsNewDay(i)) { g_obv = 0.0; // (double)iVolume(NULL, 0, i) continue; } Убрал несоизмеримые величины. В идеале не должно быть рассогласований (дивергенции) внутри дня. Уже интересно, но пока некогда подумать.

Scriptong: Balbesik пишет: Пока на вскидку посмотрел, как раз соизмеримость значений. Не совсем понятно, почему OBV_By_day сравнивается с BearBullBalance. Ведь в новом OBV от BearBullBalance только механизм обнуления в начале дня. Больше ничего сходного между ними нет.

Balbesik: Scriptong пишет: Не совсем понятно, почему OBV_By_day сравнивается с BearBullBalance. Ведь в новом OBV от BearBullBalance только механизм обнуления в начале дня. Больше ничего сходного между ними нет. Нет, нет ты не понял. Сравниваю два OBV_By_day - наверху я написал:"...Два нижних графика...". Просто на старте дня идет просто кол.тиков без учета времени, а это приводит к несоизмеримости значений и кажется прямая.

Scriptong: Balbesik пишет: Просто на старте дня идет просто кол.тиков без учета времени, а это приводит к несоизмеримости значений и кажется прямая. Да, верно. Как нужно учитывать время на первом баре дня? Если делить значение объема на разницу времени между текущим баром и предыдущим, то в середине недели получим более плавный переход от одного дня к другому, а вот на выходных будет резкий спад, т. к. между соседними барами будет проходить двое суток. В итоге база в начале недели будет очень мала.

Balbesik: Ну кажется все "легло" Конструкция чуть другая, в отличии от той, что я пробовал - Спасибо, Игорь! Буду пробовать все "вписать", тем более раз такая перспектива - "...MT4 переводить x64 не будут. ..." то будет вечная проблема с памятью. Появляется возможность "смотреть патерны" в рамках советника, хотя, на мой взгляд (в т.ч. практика), там все должно быть просто (неплохой фильтр получается - величины не связанны, "изголяться" с производными "от лукового" не надо - что на мой взгляд вообще ерунда). Картинка - нижний график - OBV_By_Day (чуть переделан) средний - BearBullBalance_HiddenGeneral_AD - под OBV выше - Штатный OBV по "кратчайшему". Т.к. "вогнать" время формирования бара в тестер не удается - чисто визуально - лучший результат дает тиковое разделение на Быков и Медведей в рамках сравнения по OBV.

Balbesik: Scriptong пишет: Да, верно. Как нужно учитывать время на первом баре дня? Если делить значение объема на разницу времени между текущим баром и предыдущим, то в середине недели получим более плавный переход от одного дня к другому, а вот на выходных будет резкий спад, т. к. между соседними барами будет проходить двое суток. В итоге база в начале недели будет очень мала. Да вопрос времени интересен. Что на мой взгляд – Так как есть три параметра – (приводим по алгоритму ОБВ) – График цены – типа «пути» включающий в себя, как кол. пунктов так и время. График кол. пунктов – включающий в себя время. И собственно график времени. Как таковое время бара (время «отсечки» на момент цены Открытия) – iTime(NULL, 0, i) ничего не дает для взаимосвязи. Время формирования бара – iTime(NULL, 0, i) - iTime(NULL, 0, i + 1) связано с кол. тиков и фиксированным ходом цены («базы отсчета»). Т.е. получаем время формирования 1 бара на момент открытия 0 бара. Соответственно имеем на данный момент и кол. тиков – т.е. все на момент цены Открытия. Надо учесть субботу – воскресенье (привести к соизмеримости) – Простое использование предыдущего значения – // Начат новый день if (IsNewDay(i)) { g_obv = g_obv[i + 1]; continue; } Рис. 8 – графики по времени (g_obv = g_obv[i + 1] - (double)deltaTime;) по алгоритму ОБВ. Нижний график ОБВ без учета «Нового дня». Верхний – с использованием предыдущего значения g_obv[i + 1]; - т.е. «более сглаженный». Улучшает картинку, но так или иначе «не красиво». Приходится уходить на «производную» - int deltaTime_1 = (int)iTime(NULL, 0, i) - (int)iTime(NULL, 0, i + 1); int deltaTime_2 = (int)iTime(NULL, 0, i + 1) - (int)iTime(NULL, 0, i + 2); int deltaTime_3 = (int)iTime(NULL, 0, i + 2) - (int)iTime(NULL, 0, i + 3); double deltaTime = 0; if (deltaTime_1 != 0 && deltaTime_2 != 0) deltaTime = NormalizeDouble((double)deltaTime_1 / ((double)deltaTime_1 + (double)deltaTime_2) ,6) * 100; и с учетом «Нового дня». Что приводит к заведомо вносимой ошибки, но т.к. ошибка заданна алгоритмом (по типу инструментальной, когда ошибка одна и та жа) ее влияние уменьшается, а соизмеримость значений увеличивается. Рис. 11 Верхний график с deltaTime_1 и deltaTime_2. Нижний с deltaTime_1, deltaTime_2 и deltaTime_3 (по аналогии). Увеличиваем «сглаженность», но теряем чувствительность. Стрелочки на графиках ОБВ - Мах и Мин на задаваемых интервалах, например от 0 до 200 бара, а на графике цены (маленькие стрелочки) в интервале между задаваемыми экстремумами Зиг Зага. В общем, как-то так. В индикатор ОБВ «вписался», еще раз Спасибо! Пока просто «не сформулировал» вопросы, что из этого может получиться. И как это изложить.

Scriptong: Balbesik пишет: Надо учесть субботу – воскресенье (привести к соизмеримости) – Проблема выходных намного шире. Я уже неоднократно сталкивался с ней и до сих пор не нашел удовлетворяющего решения. Ведь у каждого брокера свой регламент работы (тот же Альпари тасует его как колоду карт перед раздачей), у каждого финансового инструмента своя привязка к началу сессии, к календарю праздников и т. д. и т. п. То есть достаточно трудно по одному лишь графику определить, с чем связана "дыра" на графике - то ли выходной, то ли праздник, то ли регламент такой, то ли рынок "молчал". В случае графиков, не связанных со временем (ренджи, эквиобъемные, Ренко, крестики-нолики) проблема усугубляется, но вместе с тем маскируется, т. к. нет эталонного временнОго шага. Так что могу лишь сказать, что в данном случае учет времени всегда будет приводить к существенным искажениям. Хотя идея, сама по себе, неплохая.

Balbesik: Scriptong пишет: Проблема выходных намного шире. Я уже неоднократно сталкивался с ней и до сих пор не нашел удовлетворяющего решения. Ведь у каждого брокера свой регламент работы (тот же Альпари тасует его как колоду карт перед раздачей), у каждого финансового инструмента своя привязка к началу сессии, к календарю праздников и т. д. и т. п. То есть достаточно трудно по одному лишь графику определить, с чем связана "дыра" на графике - то ли выходной, то ли праздник, то ли регламент такой, то ли рынок "молчал". В случае графиков, не связанных со временем (ренджи, эквиобъемные, Ренко, крестики-нолики) проблема усугубляется, но вместе с тем маскируется, т. к. нет эталонного временнОго шага. Так что могу лишь сказать, что в данном случае учет времени всегда будет приводить к существенным искажениям. Хотя идея, сама по себе, неплохая. Игорь! Тут вопрос немного по другому. Он ближе к взгляду на рынок и разнице между временным и ренджем. Я не раз обращал внимание на «базу». С одной стороны «база» на временном - это время и с пересчетом с т.ч. цены открытия и закрытия, как скорость равна пути и на ренджи с т.ч. цены открытия и закрытия, как скорость равна пути - это разные вещи. Поэтому, я так думаю, можно будет «связать» проблему времени. Мне, для продолжения разговора, надо где-то неделя.

Scriptong: Balbesik пишет: Тут вопрос немного по другому. Он ближе к взгляду на рынок и разнице между временным и ренджем. Да, насчет привязки ко времени на рендж-барах я понял. Это неплохая идея, в ней есть смысл, который теряется при переносе идеи на стандартные графики. Но даже при такой вот неплохой идее мы получаем "удар в спину" со стороны всяких праздников, выходных и различий в регламентах. Я не раз обращал внимание на «базу». С одной стороны «база» на временном - это время и с пересчетом с т.ч. цены открытия и закрытия, как скорость равна пути и на ренджи с т.ч. цены открытия и закрытия, как скорость равна пути - это разные вещи. Здесь не понял, что имеется в виду под термином "база".

anatolyp: Помогите понять запись: 2015.08.25 21:41:03.028 TradersDynamicIndex EURUSD,M9: indicator is too slow, 6391 ms. rewrite the indicator, please Переписал, компилировал этот индикатор - но сообщение не уходит. Что такое может быть??

Balbesik: anatolyp пишет: Помогите понять запись: 2015.08.25 21:41:03.028 TradersDynamicIndex EURUSD,M9: indicator is too slow, 6391 ms. rewrite the indicator, please Переписал, компилировал этот индикатор - но сообщение не уходит. Что такое может быть?? Извини не увидел. Это к тому, что я выкладывал? Тут, так с Игорем мне проще - все друг у друга есть и разговор - "на одном языке". Если касается того, что я выкладывал мне проще тебе "скинуть" не часть, а готовое (у меня в этой части нет комплексов) - сообщи о чем речь? P.S. По опыту, если указано время (согласно, что показано) это программная ошибка - но тут "хитрее" (раньше ее могло не быть) с каждым новым билдом они будут выползать. Таким образом это "дерьмо Хвосты" пытаются сами за наш счет "выползти" и "загоняют" на МТ5 (ну хочется им стать "Большими")

Scriptong: anatolyp пишет: Помогите понять запись: 2015.08.25 21:41:03.028 TradersDynamicIndex EURUSD,M9: indicator is too slow, 6391 ms. rewrite the indicator, please Означает, что выполнение одного прохода индикатора занимает слишком много времени - 6.4 сек. Это очень много. Такой индикатор будет приводить к очень низкому быстродействию терминала. Покажите код индикатора (желательно в отдельной ветке, чтобы не смешивать разные темы в одной ветке), прикрепив его к сообщению (здесь описано, как это делается), и я попытаюсь указать на проблему.

Balbesik: 1

Balbesik: Scriptong пишет: Здесь не понял, что имеется в виду под термином "база". Единая точка отсчета. Ну, это типа, как в черчении – проводишь две линии горизонтальную и вертикальную, тем самым ты сделал «базу» относительно которой делаешь все остальные построения (и никак иначе). Здесь также, если брать временной график, то мы имеем время, а эта величина ни с чем не связанная и если сравнивать, например, два бара по кол. тиков (и более ничего не учитывать), то лично у меня это вызывает сомнения в правомерности такого сравнения, т.к. интересует ход цены, а не время через тики. С другой стороны, если брать рендж, то его формирование связанно, как с кол. тиков, так и со временем. А так как величина ренджа одна и та же – это «база», и сравнение (и расчеты) становятся правомерны.

Balbesik: Scriptong пишет: ....мы получаем "удар в спину" со стороны всяких праздников, выходных и различий в регламентах. Ага, BearBullBalance_HiddenGeneral_AD пока «победить» не могу. Рис. Верхний ОБВ – OBV_By_Day и просто время - g_obv = g_obv[i + 1] - (double)deltaTime; Средний ОБВ – OBV_By_Day и * , чтобы наглядней – g_obv = g_obv[i + 1] - double(iVolume(NULL, 0, i + 1)) * (double)deltaTime; Нижний ОБВ – BearBullBalance_HiddenGeneral_ADT – g_obv = g_obv[i + 1] + double)g_bearBuffer[i+1] * (double)deltaTime все сделано аналогично для времени.

Scriptong: Balbesik пишет: Единая точка отсчета. Ну, это типа, как в черчении – проводишь две линии горизонтальную и вертикальную, тем самым ты сделал «базу» относительно которой делаешь все остальные построения (и никак иначе). Ты имеешь в виду декартову систему координат? Balbesik пишет: Здесь также, если брать временной график, то мы имеем время, а эта величина ни с чем не связанная и если сравнивать, например, два бара по кол. тиков (и более ничего не учитывать), то лично у меня это вызывает сомнения в правомерности такого сравнения, т.к. интересует ход цены, а не время через тики. Здесь говоришь вообще не про рендж-бары, а про эквиобъемный график. Но снова делаешь ошибку, утверждая, что по оси абсцисс у нас время. Не время, а количество баров. Была бы возможность в МТ4 подписать шкалу соответствующим образом, я бы это сделал. Но МТ предоставляет только одну размерность - время. Это и сбивает тебя постоянно с толку. Balbesik пишет: С другой стороны, если брать рендж, то его формирование связанно, как с кол. тиков, так и со временем. А так как величина ренджа одна и та же – это «база», и сравнение (и расчеты) становятся правомерны. Снова неверно. Формирование рендж-баров никак не связано с количеством тиком или со временем. У рендж-баров единственная характеристика - количество пунктов, пройденное ценой. За сколько тиков это произойдет, не имеет никакого значения. И снова здесь по оси абсцисс не время, а количество баров. Отойди от использования времени в качестве неких исходных данных, когда работаешь с рендж-барами или эквиобъемными графиками. Время можно брать в этих случаях только как еще одно измерение, но не как зависимую величину. Balbesik пишет: Ага, BearBullBalance_HiddenGeneral_AD пока «победить» не могу. И я не смогу тут помочь. Потому как ты оперируешь неверными предпосылками при объяснениях. В итоге объяснения превращаются в пыль. Чтобы решить проблему, нужно для начала встать на твердый фундамент терминологии и понять зависимости при построении разных типов графиков. Если сам понять эти зависимости не можешь, то спрашивай - я попробую их объяснить. Без полного понимания тобой этих вещей, мы никогда не сможем понять друг друга.

Balbesik: Scriptong пишет: Ты имеешь в виду декартову систему координат? Ну вот опять. Я имел ввиду единое, общепринятое понятие «база» – как вся конструкторская документация разрабатывается от «базы», все машиностроение – изготовление деталей и машин производится от выбираемой «базы» и даже «изделия» «работают» от «базы» и т.д. и т.п.. И не более. Scriptong пишет: Здесь говоришь вообще не про рендж-бары, а про эквиобъемный график. Но снова делаешь ошибку, утверждая, что по оси абсцисс у нас время. Не время, а количество баров. Была бы возможность в МТ4 подписать шкалу соответствующим образом, я бы это сделал. Но МТ предоставляет только одну размерность - время. Это и сбивает тебя постоянно с толку. Я вообще не говорил о каком –либо графике или оси или времени. Я отвечал, что я подразумеваю под понятием «база» и привел пример - черчение. Но, что выбирается за «базу» - это второй вопрос (при том ответе). С одной стороны ты не экстрасенс, а с другой какое-то «вангование». Речь шла о выборе «базы» для сравнения параметров и проведения расчетов. Scriptong пишет: Снова неверно. Формирование рендж-баров никак не связано с количеством тиком или со временем. У рендж-баров единственная характеристика - количество пунктов, пройденное ценой. За сколько тиков это произойдет, не имеет никакого значения. И снова здесь по оси абсцисс не время, а количество баров. Отойди от использования времени в качестве неких исходных данных, когда работаешь с рендж-барами или эквиобъемными графиками. Время можно брать в этих случаях только как еще одно измерение, но не как зависимую величину. Есть гистограмма – есть некоторые столбики (без разнице построенные по кол. тиков или по времени) и все, т.к. в изложенной логике их сравнение не предполагается и использовать незачем. С другой стороны, конечно не связано, если взять ОДИН бар и высота ренджа и кол. тиков и время ничего не дает, ну есть и есть и слава богу. И искать зависимости в рамках ОДНОГО бара (не влезая внутрь) конечно бессмысленно. А если все таки искать зависимости, то возникает вопрос - от чего производить сравнение то? От «святого духа»? И видимо все же приходим к вопросу, что же удобней брать за «точку отсчета» для сравнения из существующего. Scriptong пишет: И я не смогу тут помочь. Потому как ты оперируешь неверными предпосылками при объяснениях. В итоге объяснения превращаются в пыль. Чтобы решить проблему, нужно для начала встать на твердый фундамент терминологии и понять зависимости при построении разных типов графиков. Если сам понять эти зависимости не можешь, то спрашивай - я попробую их объяснить. Без полного понимания тобой этих вещей, мы никогда не сможем понять друг друга. Здесь вообще не понятен ответ. Причем здесь все это? Я показал «работающий» твой пример - OBV_By_Day по времени и по кол. тиков с решением проблемы субботы-воскресенья и написал, что подобное не могу реализовать в BearBullBalance_HiddenGeneral_AD (с вписанным OBV_By_Day ). Какие неверные предпосылки? Какие типы графиков? Какие зависимости? «Вангование» какое-то. Чисто программные моменты мной не учтены и все.

Scriptong: Я так понял, понятие "база" пока просто зависло в воздухе, потому как ты сам еще не определился, что взять в качестве этой "базы". Balbesik пишет: Я показал «работающий» твой пример - OBV_By_Day по времени и по кол. тиков с решением проблемы субботы-воскресенья и написал, что подобное не могу реализовать в BearBullBalance_HiddenGeneral_AD (с вписанным OBV_By_Day ). Извини, не увидел, где и, главное, как решена проблема суббот и воскресений. Покажи, пожалуйста.

Balbesik: 1

Scriptong: Balbesik пишет: Сделаем по другому (для единообразия), возможно это и мне что-либо даст К сожалению, ничего не даст. Просто покажи место в коде, где ты решил проблему суббот и воскресений. Вот такой был запрос. В ответ ты присылаешь график равновысоких баров и кучу индикаторов.

Balbesik: Ну если два ТВОИХ индикатора это КУЧА, то я балерина. С начало текст "не понимаю" - нужен файл, потом файл "не понимаю" нужен текст. Так и напиши, что спонсоры эту тему не одобряют. Продолжай рассказывать, что производная от цены даст "грааль" (что-либо другое кроме цены), может быть современные школьники и поверят, что 2*2 = 5. Ладно, проехали. P.S. "....возможно это и мне что-либо даст.." - что и следовало ожидать (самое смешное, что прогнозируемо).

Balbesik: 1

Scriptong: Balbesik пишет: Ну если два ТВОИХ индикатора это КУЧА, то я балерина. Зри в корень. Я задал конкретный вопрос: покажи место в коде, где решается проблема суббот и воскресений. Ответ - архив с индикаторами. Типа - поищи, там все есть. То есть я должен перелопатить коды индикаторов в поисках такого места. Причем, скорее всего, я его попросту не замечу, т. к. либо решение неординарное, либо неправильное. Если угодно, вопрос остается актуальным.

Balbesik: Scriptong пишет: Зри в корень. Я задал конкретный вопрос: покажи место в коде, где решается проблема суббот и воскресений. Ответ - архив с индикаторами. Типа - поищи, там все есть. То есть я должен перелопатить коды индикаторов в поисках такого места. Причем, скорее всего, я его попросту не замечу, т. к. либо решение неординарное, либо неправильное. Если угодно, вопрос остается актуальным. Ладно, сегодня «посидели» с ребятами (все деды). Подумал. Что делить? Ну есть вопросы, но это "мелочь". "...Я задал конкретный вопрос: ...", вообще-то я первый задал вопрос, который просто был проигнорирован (на мой взгляд, это не сильно правильно, по воспитанию). Хотя я изложил и в письменном виде и в виде файлов. Ладно, мелочь. Я не понимаю, в чем проблема "где решается проблема суббот и воскресений" при равновысоких. Хотя не раз писал, что объяснять не умею. Пробую последний раз (учитываю, что это мое дело и имею право на свой взгляд, без объяснений). Во первых, равновысокий позволяет работать в декартовой (раз так понятней) системе координат в одних измерениях. Во вторых, сам по себе равновысокий это фильтр (по шумам, хотя для биржи шумы это абсурд). В третьих, Сам бар является "базой" (точкой отсчета). Теперь по теме. Я задал вопрос, что схема "не вписывается" в BearBullBalance_HiddenGeneral, но уточнил, что не понимаю лимит. Вот так все работает - for (int i = limit-1; i >= 0; i--) Почему -1 значима, мне не понятно. Теперь по функции void CalcIndicatorData(int limit,int total) (как я и просил) весь расчет в ней double pro_bear = 0; double pro_bull = 0; if (g_bearBuffer[i+1] != 0 && g_bullBuffer[i+1] != 0) pro_bear = NormalizeDouble(MathAbs((double)g_bearBuffer[i+1]) / (MathAbs((double)g_bearBuffer[i+1]) + MathAbs((double)g_bullBuffer[i+1])) ,6); // * 100 if (g_bearBuffer[i+1] != 0 && g_bullBuffer[i+1] != 0) pro_bull = NormalizeDouble(MathAbs((double)g_bullBuffer[i+1]) / (MathAbs((double)g_bearBuffer[i+1]) + MathAbs((double)g_bullBuffer[i+1])) ,6); // * 100 int deltaTime_1 = (int)iTime(NULL, 0, i) - (int)iTime(NULL, 0, i + 1); int deltaTime_2 = (int)iTime(NULL, 0, i + 1) - (int)iTime(NULL, 0, i + 2); double deltaTime = 0; double deltaTime_bear = 0; double deltaTime_bull = 0; if (deltaTime_1 != 0 && deltaTime_2 != 0) // ******************************** deltaTime = NormalizeDouble((double)deltaTime_1 / ((double)deltaTime_1 + (double)deltaTime_2) ,6) * 100; deltaTime_bear = NormalizeDouble(deltaTime * pro_bear ,6); deltaTime_bull = NormalizeDouble(deltaTime * pro_bull ,6); ////////////////////////////// double Volum = 0; double Volum_bear = 0; double Volum_bull = 0; if ((iVolume(NULL, 0, i + 1) + iVolume(NULL, 0, i + 2)) != 0) // && Volum = NormalizeDouble((double)iVolume(NULL, 0, i + 1) / ((double)iVolume(NULL, 0, i + 1) + (double)iVolume(NULL, 0, i + 2)) ,6) * 100; if ((MathAbs((double)g_bearBuffer[i+1]) + MathAbs((double)g_bearBuffer[i+2])) != 0) // && Volum_bear = NormalizeDouble(MathAbs((double)g_bearBuffer[i+1]) / (MathAbs((double)g_bearBuffer[i+1]) + MathAbs((double)g_bearBuffer[i+2])) ,6) * 100; if ((MathAbs((double)g_bullBuffer[i+1]) + MathAbs((double)g_bullBuffer[i+2])) != 0) // && Volum_bull = NormalizeDouble(MathAbs((double)g_bullBuffer[i+1]) / (MathAbs((double)g_bullBuffer[i+1]) + MathAbs((double)g_bullBuffer[i+2])) ,6) * 100; ////////////////////////////// ////////////////////////////// // Начат новый день if (IsNewDay(i)) { g_obv = g_obv[i+1]; g_obv_T = g_obv_T[i+1]; g_obv_U = g_obv_U[i+1]; g_obv_D = g_obv_D[i+1]; continue; } // Прдолжение того же дня ENUM_PRICE_DIFF priceDiff = GetPriceDiff(i); // Цена закрытия упала по отношению к предыдущей if (priceDiff == PRICE_DIFF_LESS && deltaTime_bear != 0) { g_obv = g_obv[i + 1] - NormalizeDouble((double)Volum_bear ,6) * 100; // - g_obv_T = g_obv_T[i + 1] - NormalizeDouble((double)deltaTime_bear ,6) * 100; // - g_obv_U = g_obv_U[i + 1] - NormalizeDouble((double)Volum_bear * (double)deltaTime_bear ,6) * 100; // - g_obv_D = g_obv_D[i + 1] - NormalizeDouble((double)Volum_bear / (double)deltaTime_bear ,6) * 100; // - continue; } // Цена закрытия выросла if (priceDiff == PRICE_DIFF_MORE && deltaTime_bull != 0) { g_obv = g_obv[i + 1] + NormalizeDouble((double)Volum_bull ,6) * 100; g_obv_T = g_obv_T[i + 1] + NormalizeDouble((double)deltaTime_bull ,6) * 100; g_obv_U = g_obv_U[i + 1] + NormalizeDouble((double)Volum_bull * (double)deltaTime_bull ,6) * 100; g_obv_D = g_obv_D[i + 1] + NormalizeDouble((double)Volum_bull / (double)deltaTime_bull ,6) * 100; continue; } // Цены закрытия текущего и предыдущего баров равны - копирование предыдущего значения if (priceDiff == PRICE_DIFF_EQUAL || g_obv == 0.0 || g_obv_T == 0.0) // && !IsNewDay(i) { g_obv = g_obv[i + 1]; g_obv_T = g_obv_T[i + 1]; g_obv_U = g_obv_U[i + 1]; g_obv_D = g_obv_D[i + 1]; } } Что в ней - Первое для последующих расчетов все переведено в безразмерные величины (работа в соизмеримых и одной размерности величинах). Второе согласно Тикколлектора "0" по кол. тиков не может быть и время = 0 не может быть. Возможный "0" маловероятен и допустим - зто всегда компромисс. Все. Теперь главное - перевод в "безразмер". А вот тут интересно, у тебя взгляд «временного графика» и почему-то, есть понятие, что это одно и тоже с т.з. перерасчета? Мой же взгляд, что равновысокий позволяет правомерно переводить (нормировать) в «безрамер» и сравнивать (та же операция на временном у меня вызывает сомнение). Теперь даже "...т. к. либо решение .... неправильное...", это меня не интересует - это мой взгляд и я его никому не навязываю. P.S. Забыл добавить, что важно - все идет в связке, через цену

Scriptong: Balbesik пишет: вообще-то я первый задал вопрос, который просто был проигнорирован На все твои вопросы я ответил. Если нужно могу указать, где и когда это было сделано. Balbesik пишет: Хотя не раз писал, что объяснять не умею. Это мне известно. Сейчас, к тому же, понимаю, что ты еще и не умеешь (и не пытаешься) понимать, что тебе отвечают. Balbesik пишет: Во первых, равновысокий позволяет работать в декартовой (раз так понятней) системе координат в одних измерениях. Декартова система координат на плоскости имеет два измерения. К чему это одно измерение? Или речь идет о том, что какие-то вычисления идут вместе с другими вычислениями в одной системе единиц измерения. Тогда необходимо уточнить, что это за вычисления. Пока это заявление невозможно воспринимать как бы то ни было. Balbesik пишет: Во вторых, сам по себе равновысокий это фильтр (по шумам, хотя для биржи шумы это абсурд). В этом плане любое графическое представление ценового потока является фильтром (все индикаторы в том числе). Хотя на самом деле это просто очередное отображение динамического процесса. Фильтром его можно называть с большой натяжкой. Balbesik пишет: В третьих, Сам бар является "базой" (точкой отсчета). Итак, наконец, мы узнали, что "база" - это точка отсчета. Хорошо. На этот счет в дальнейшем будет легче вести разговор. Просто точка отсчета у нас периодически изменяется (с открытием нового бара). Balbesik пишет: Теперь по функции void CalcIndicatorData Здесь расчет ведется подобным образом обычному OBV. В начале нового дня ты, зачем-то, просто продолжаешь предыдущий день. То есть разница между расчетом значения внутри дня и расчетом значения в начале дня в том, что в начале дня просто копируется состояние предыдущего дня. Более чем странный подход. Balbesik пишет: Теперь главное - перевод в "безразмер". Никаких безразмерных величин в приведенном коде нет. Все имеет свои размерности. Нужно всего лишь увидеть их: g_obv - тиковый объем, размерность - тиков/бар. g_obv_T - время или бары, в зависимости от точки зрения (что расположено по оси абсцисс); соответственно, это либо секунды, либо индексы баров. g_obvU - тиковый объем, умноженный на время (или индексы баров), т. е. тиков * секунды или тиков * бар. g_obv_D - тиковый объем, деленный на время (или индексы баров), т. е. тиков / сек или тиков / бар. В итоге ты породил мир каких-то теорий, которые невозможно как-либо объяснить. Да и несильно то и пытаешься это сделать. Когда задают вопрос, то сразу съезжаешь на "я не умею объяснять". Потом еще и сердишься - "я же все это объяснял". Такая позиция очень удобная позиция с твоей стороны, но для окружающих все это выглядит неадекватно и отбивает охоту ведения с тобой разговора.

Balbesik: Scriptong пишет: На все твои вопросы я ответил. Если нужно могу указать, где и когда это было сделано. Очень интересно! «…Я задал вопрос, что схема "не вписывается" в BearBullBalance_HiddenGeneral, но уточнил, что не понимаю лимит. Вот так все работает - for (int i = limit-1; i >= 0; i--) Почему -1 значима, мне не понятно….» Кроме этого я предполагал и писал, откуда на мой взгляд проблема. Лично я не использую абсолютное значение на заданную величину лимита, а только сравнение и поэтому это мало беспокоит, но с т.з. ИНСТРУМЕНТА это понять было бы не плохо. Так где посмотреть, если не трудно покажи, может быть я пропустил? Scriptong пишет: Декартова система координат на плоскости имеет два измерения. К чему это одно измерение? Или речь идет о том, что какие-то вычисления идут вместе с другими вычислениями в одной системе единиц измерения. Тогда необходимо уточнить, что это за вычисления. Пока это заявление невозможно воспринимать как бы то ни было. Все ты Игорь прекрасно понял. Совершенно нет необходимости конкретизировать какие-либо вычисления. Это и так понятно. На временных и эквиобъемных графиках имеем по одной оси свиней, а по другой коров и объяснять это не надо (и провоцировать не надо). Это же относиться и к равновысокому графику с «разрывами», т.к. это не график (якобы реальный), а набор цифр. Равновысокий без разрывов позволяет с заведомо известными допущениями (как везде и во всем в реальной системе) производить расчет, т.к. по обеим осям (Х – У) имеем бар и мало этого он еще и нормирован и мало этого т.к. бар нормирован можно принять его за базу для расчетов. Это же относиться и к соизмеримости величин при одной системе единиц измерения. На этом пока закончу (в плане ответа на предыдущий пост, особенно трудно объяснять, когда отношение одной и той же величины вдруг стало иметь размерность), а там посмотрим.

Scriptong: Balbesik пишет: «…Я задал вопрос, что схема "не вписывается" в BearBullBalance_HiddenGeneral, но уточнил, что не понимаю лимит. Вот так все работает - for (int i = limit-1; i >= 0; i--) Почему -1 значима, мне не понятно….» Если под "схемой" понимается индикатор OBV_By_Day, то, конечно же, как-либо скрещиваться его с тиковыми индикаторами не выйдет, т. к. первый - это стандартный индикатор, работающий по барам, а тиковые индикаторы работают не по барам, по тикам. Сам лимит как-то понимать и не нужно (у него нет какого-то глобального смысла). Нужно лишь разобраться в конкретном коде. Сейчас мне непонятно, о каком коде ты ведешь речь, т. к. в OBV_By_Day такого кода (с вычитанием единицы) нет.

Scriptong: Balbesik пишет: Все ты Игорь прекрасно понял. Нет, я не понял. Balbesik пишет: Совершенно нет необходимости конкретизировать какие-либо вычисления. Это и так понятно. К сожалению, я пока не умею читать мысли других людей да еще и на расстоянии. Balbesik пишет: Равновысокий без разрывов Вот, наконец-то, вернулись к теме ветки. Сейчас уже можно говорить о том, что range-бары без гэпов могут быть сделаны еще в этом году. У меня замаячило вдали окончание работы по дивергенциям. В ближайшие два месяца планирую закончить разработкой фильтра и выходом в свет советника. Таким образом, где-то в середине ноября смогу заняться.

Balbesik: Scriptong пишет: Если под "схемой" понимается индикатор OBV_By_Day, то, конечно же, как-либо скрещиваться его с тиковыми индикаторами не выйдет, т. к. первый - это стандартный индикатор, работающий по барам, а тиковые индикаторы работают не по барам, по тикам. Сам лимит как-то понимать и не нужно (у него нет какого-то глобального смысла). Нужно лишь разобраться в конкретном коде. Сейчас мне непонятно, о каком коде ты ведешь речь, т. к. в OBV_By_Day такого кода (с вычитанием единицы) нет. Правильно, нет, поэтому и вопрос возник. Ты возможно и "впишешь" ОБВ без -1, а я не смог. Игорь, ты начал нормально разговаривать. Scriptong пишет: от, наконец-то, вернулись к теме ветки. Сейчас уже можно говорить о том, что range-бары без гэпов могут быть сделаны еще в этом году. У меня замаячило вдали окончание работы по дивергенциям. В ближайшие два месяца планирую закончить разработкой фильтра и выходом в свет советника. Таким образом, где-то в середине ноября смогу заняться. С Игорь, "Хвосты" нас имеют и деваться некуда. Я так понял и ты попал на проблему "памяти", как и я с ней "е..", сплю. У тебя есть (я тебе отправлял), то что с Жекой (Nen) делали, - принцип чередования по теореме Красникова, там все "ровно" if((NB_89_1 + NB_89_2 + NB_89_3 + NB_89_4) != 0) Tab_89 = NormalizeDouble(NB_89_4 / (NB_89_1 + NB_89_2 + NB_89_3 + NB_89_4) ,5) * 100; if((NB_89_1 + NB_89_2 + NB_89_3 + NB_89_4) != 0) Tbc_89 = NormalizeDouble(NB_89_1 / (NB_89_1 + NB_89_2 + NB_89_3 + NB_89_4) ,5) * 100; TZZ_89 = NormalizeDouble(MathAbs(Tab_89 - Tbc_89) ,5); if((Val_89_1 + Val_89_2 + Val_89_3 + Val_89_4) != 0) Vab_89 = NormalizeDouble(Val_89_4 / (Val_89_1 + Val_89_2 + Val_89_3 + Val_89_4) ,5) * 100; if((Val_89_1 + Val_89_2 + Val_89_3 + Val_89_4) != 0) Vbc_89 = NormalizeDouble(Val_89_1 / (Val_89_1 + Val_89_2 + Val_89_3 + Val_89_4) ,5) * 100; VZZ_89 = NormalizeDouble(MathAbs(Vab_89 - Vbc_89) ,5); if(((double)i_pointsForReversal_89 / H_0_N) != 0) LL_89 = NormalizeDouble(MathSqrt(MathPow((double)TZZ_89,2)+MathPow((double)VZZ_89,2)) / ((double)i_pointsForReversal_89 / H_0_N) ,5); // ((double)i_pointsForReversal_89 / H_0_N) Здесь твой Юст и выведены экстремумы по барам и цены. Рентабельность порядка 10% в месяц, для форекса это очень мало (а еще и "кухню" наеб.. надо). Так я к чему? Сильно интересен твой СКАНЕР. Вот, что интересно, если у тебя будет время. P.S. i_pointsForReversal_89 - свинг. H_0_N - высота бара

Scriptong: Balbesik пишет: Ты возможно и "впишешь" ОБВ без -1, а я не смог. Там просто другой подход к построению индикатора. Balbesik пишет: Игорь, ты начал нормально разговаривать. Скорее всего, просто угадал то, что ты хотел услышать, не более Balbesik пишет: Игорь, "Хвосты" нас имеют и деваться некуда. Я так понял и ты попал на проблему "памяти", как и я с ней "е..", сплю. Здесь не понял контекст. Balbesik пишет: У тебя есть (я тебе отправлял), то что с Жекой (Nen) делали, - принцип чередования по теореме Красникова, там все "ровно" Может быть и отправлял. Всего того, что ты мне присылал, я упомнить не могу. Поэтому для этой темы также нужно некоторое предисловие. Ты в каждом новом письме шарахаешься от одной темы к другой, не оставляя ниточек мысли которые переводят тебя между разными вопросами. В итоге ты не замечаешь, что задаешь вопрос, который никак не касается предыдущего вопроса. Потом снова злишься на неадекватность ответов собеседника. Вот к чему сейчас в этом разговоре принцип чередования и кротовые норы (по Сергею Красникову)? Balbesik пишет: Сильно интересен твой СКАНЕР. У меня только один сканер - сканер дивергенций. Только он также никакого отношения к теме ветки не имеет. Поэтому я снова в недоумении, о чем идет речь.

Balbesik: Scriptong пишет: Там просто другой подход к построению индикатора. Это так и не так, вписываем и синхронизируем один в другой. Причем тут подход? Но это «десятый» вопрос по контексту далее. Scriptong пишет: Здесь не понял контекст. Ну контекст тут простой – в части СКАНЕРА ты отметил, что памяти не хватает (ну не хотят на 64 переводить), а с т.з. программирования полагаю, что у тебя все при этом все было оптимально. У меня в этом плане проблема – я не умею программировать, я могу использовать аналог и «методом научного втыка» делать под себя. Scriptong пишет: Вот к чему сейчас в этом разговоре принцип чередования Вот к чему – когда-то сделав Юст-сигнал и опробовав его, ты мне написал – «не верь глазам своим и не все так просто». Согласен, но отличие – заставляет задуматься. Работая с «устойчивостью» и прекрасно понимаю, что масса системы настолько высока, что даже за день поменяться не может (всегда писал, на мой взгляд, бессмысленность «длинных» оптимизаций) и все стало соответствовать теории (написал, т.к. ты можешь это проверить в исходном алгоритме). Да я ( в то время по твоему вопросу) и сам недели две сидел над геометрией и формулой Nena и «вьехать» не мог, а у меня не «приходская школа» по образованию. Как только ИНСТРУМЕНТ «условно» приведен в соответствие все заработало (пошло соответствие теории – математики и философии рынка). Другими словами зря ты игнорируешь равновысокие – там преимуществ больше, чем недостатков. Scriptong пишет: У меня только один сканер - сканер дивергенций. Только он также никакого отношения к теме ветки не имеет Согласен на счет отношения к теме ветки. Речь о другом, я пока не вникал в твой СКАНЕР, но т.к. все сделано под тебя (твоя манера программирования) считаю, что взяв за основу твой сканер, можно сделать универсальную систему (ну типа Икустома – ну не хватает памяти иначе). Scriptong пишет: Скорее всего, просто угадал то, что ты хотел услышать, не более Ну а тут к главному по теме – Первое, ну как-то неразрывный график я получил. Как-то получил связку параметров , через ОБВ. Получил «время бара» с точностью до секунды. Не могу «вогнать» в тестер ВРЕМЯ бара (возможно, это в принципе не нельзя сделать – идет бар 60 сек. в тестере и все). Но все это «ПОДЕЛКИ» - нет профессионального подхода программиста. Вот это я и хотел от тебя получить – нормальный ИНСТРУМЕНТ для работы. P.S. Кстати, когда все сделано "ручками" понятие дивергенция - в Вашем понимании, Исчезает как класс (и это правильно). Она конечно присутствует, но в другой интерпретации.

Scriptong: Balbesik пишет: Не могу «вогнать» в тестер ВРЕМЯ бара (возможно, это в принципе не нельзя сделать – идет бар 60 сек. в тестере и все). В МТ4 отображается время с дискретностью 1 минута. Но это не значит, что реальное время такое же. То есть, если заглянуть "за кулисы", то окажется, что бар открылся не ровно в 00 секунд. Это все там есть. То есть для анализа внутри программы есть возможность использования времени с точностью до 1 сек. А вот смотреть на ситуацию приходится только с точностью, заданной терминалом.

Balbesik: Scriptong пишет: ...То есть для анализа внутри программы есть возможность использования времени с точностью до 1 сек... Мне не удается именно в ТЕСТЕРЕ получить время бара. На реальном графике имею время с точностью 1 секунды. Не могу получить именно в тестере. Скриптом FXTFileMaker_AnyData_Script_AD мне ни разу не удалось получить график в тестере. Я использую другой скрипт (от синбара). Может быть в этом проблема? Или, все таки, в тестере невозможно получить равновысокий бар со временем бара, и в тестере бары «искусственно раскладываются» на 60 секундный интервал на минутном графике с "переписыванием" значений? У нас всего ТРИ параметра Цена, Кол.тиков и время. Меня интересует «связь» этих трех параметров. Меня не интересуют производные одной величины и их сравнение. Например, дивергенция по времени формирования бара, совпадение движения активности и цены (это логично), а при этом расхождение по времени и мне это более значимо. А т.к. "путь" величина постоянная, то сравнение правомерно. Т.к. количество комбинаций в этом случае ограниченно и становится значима величина расхождения, хотелось бы промоделировать. А для этого мне надо ВРЕМЯ в ТЕСТЕРЕ. Рис. 1 – верхний - Цена, ниже, синий график - активность, и нижний, желтый – время. P.S. Запустил Скриптом FXTFileMaker_AnyData_Script_AD. Время бара в тестере появилось, хотя работает "криво" - сделки "пропускаются". Т.к. для получения неразрывного графика пришлось изменить Тикколлектор, видимо и скрипт не запускался. Пришлось скрипт "под себя" подправить - исходный bool IsTicksDataEnough() { int handle; g_ticksFileName = _Symbol + ".tks"; ......... исправлен bool IsTicksDataEnough() { int handle; g_ticksFileName = ".tks"; .........

Scriptong: Balbesik пишет: Скриптом FXTFileMaker_AnyData_Script_AD мне ни разу не удалось получить график в тестере. Расскажи подробно, как именно ты это определяешь - "не получилось". Ведь потом в описании и на рисунках ты приводишь непонятно что. Вот, к примеру, что означает deltaTime_2 1043.0? Мне это ни о чем не говорит. Поясняющие надписи типа "Т 2 бара" и "t 1 Бра" - это просто набор символов. Специально проверил наличие полной информации о времени открытии баров в тестере на равновысоких барах с высотой всего 5 пунктов (классические пункты). Тестовый советник очень прост: void OnTick() { static datetime lastTime = 0; if (lastTime != Time[0]) { Print("Время открытия бара: ", Time[0]); lastTime = Time[0]; } } Результаты его работы: 0 12:33:55 2015.07.01 00:05 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:05:25 0 12:33:56 2015.07.01 00:10 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:10:25 0 12:33:57 2015.07.01 00:22 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:22:23 0 12:33:57 2015.07.01 00:25 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:25:14 0 12:33:58 2015.07.01 00:31 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:31:43 0 12:34:00 2015.07.01 00:56 Blank EURUSD,M1: Время открытия бара: 2015.07.01 00:56:55 0 12:34:01 2015.07.01 01:14 Blank EURUSD,M1: Время открытия бара: 2015.07.01 01:14:27 0 12:34:04 2015.07.01 01:27 Blank EURUSD,M1: Время открытия бара: 2015.07.01 01:27:14 0 12:34:06 2015.07.01 01:51 Blank EURUSD,M1: Время открытия бара: 2015.07.01 01:51:41 0 12:34:06 2015.07.01 01:55 Blank EURUSD,M1: Время открытия бара: 2015.07.01 01:55:43 0 12:34:07 2015.07.01 02:03 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:03:55 0 12:34:09 2015.07.01 02:10 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:10:17 0 12:34:10 2015.07.01 02:20 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:20:21 0 12:34:11 2015.07.01 02:28 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:28:22 0 12:34:12 2015.07.01 02:30 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:30:41 0 12:34:15 2015.07.01 02:51 Blank EURUSD,M1: Время открытия бара: 2015.07.01 02:51:20 0 12:34:18 2015.07.01 03:02 Blank EURUSD,M1: Время открытия бара: 2015.07.01 03:02:46 0 12:34:23 2015.07.01 03:21 Blank EURUSD,M1: Время открытия бара: 2015.07.01 03:21:48 0 12:34:27 2015.07.01 03:45 Blank EURUSD,M1: Время открытия бара: 2015.07.01 03:45:03 0 12:34:28 2015.07.01 03:59 Blank EURUSD,M1: Время открытия бара: 2015.07.01 03:59:58 0 12:34:29 2015.07.01 04:04 Blank EURUSD,M1: Время открытия бара: 2015.07.01 04:04:54 0 12:34:30 2015.07.01 04:10 Blank EURUSD,M1: Время открытия бара: 2015.07.01 04:10:02 0 12:34:34 2015.07.01 04:41 Blank EURUSD,M1: Время открытия бара: 2015.07.01 04:41:33 0 12:34:36 2015.07.01 04:59 Blank EURUSD,M1: Время открытия бара: 2015.07.01 04:59:30 0 12:34:38 2015.07.01 05:15 Blank EURUSD,M1: Время открытия бара: 2015.07.01 05:15:10 0 12:34:38 2015.07.01 05:18 Blank EURUSD,M1: Время открытия бара: 2015.07.01 05:18:33 0 12:34:40 2015.07.01 05:25 Blank EURUSD,M1: Время открытия бара: 2015.07.01 05:25:01 0 12:34:43 2015.07.01 05:39 Blank EURUSD,M1: Время открытия бара: 2015.07.01 05:39:34 0 12:34:44 2015.07.01 05:47 Blank EURUSD,M1: Время открытия бара: 2015.07.01 05:47:52 0 12:34:47 2015.07.01 06:02 Blank EURUSD,M1: Время открытия бара: 2015.07.01 06:02:02 0 12:34:52 2015.07.01 06:50 Blank EURUSD,M1: Время открытия бара: 2015.07.01 06:50:19 0 12:34:54 2015.07.01 07:20 Blank EURUSD,M1: Время открытия бара: 2015.07.01 07:20:06 0 12:34:56 2015.07.01 07:39 Blank EURUSD,M1: Время открытия бара: 2015.07.01 07:39:31 0 12:34:57 2015.07.01 07:45 Blank EURUSD,M1: Время открытия бара: 2015.07.01 07:45:11 0 12:35:01 2015.07.01 08:17 Blank EURUSD,M1: Время открытия бара: 2015.07.01 08:17:33 0 12:35:02 2015.07.01 08:38 Blank EURUSD,M1: Время открытия бара: 2015.07.01 08:38:35 0 12:35:04 2015.07.01 08:58 Blank EURUSD,M1: Время открытия бара: 2015.07.01 08:58:33 0 12:35:06 2015.07.01 09:01 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:01:11 0 12:35:07 2015.07.01 09:02 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:02:50 0 12:35:09 2015.07.01 09:07 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:07:23 0 12:35:10 2015.07.01 09:08 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:08:36 0 12:35:11 2015.07.01 09:10 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:10:09 0 12:35:12 2015.07.01 09:13 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:13:08 0 12:35:13 2015.07.01 09:16 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:16:09 0 12:35:14 2015.07.01 09:19 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:19:26 0 12:35:16 2015.07.01 09:24 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:24:49 0 12:35:17 2015.07.01 09:25 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:25:36 0 12:35:17 2015.07.01 09:25 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:25:42 0 12:35:17 2015.07.01 09:25 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:25:55 0 12:35:18 2015.07.01 09:27 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:27:11 0 12:35:19 2015.07.01 09:27 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:27:44 0 12:35:20 2015.07.01 09:29 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:29:02 0 12:35:20 2015.07.01 09:30 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:30:37 0 12:35:22 2015.07.01 09:34 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:34:30 0 12:35:23 2015.07.01 09:38 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:38:26 0 12:35:24 2015.07.01 09:39 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:39:57 0 12:35:25 2015.07.01 09:44 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:44:54 0 12:35:29 2015.07.01 09:53 Blank EURUSD,M1: Время открытия бара: 2015.07.01 09:53:05 0 12:35:31 2015.07.01 10:00 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:00:19 0 12:35:32 2015.07.01 10:02 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:02:28 0 12:35:35 2015.07.01 10:07 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:07:54 0 12:35:35 2015.07.01 10:09 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:09:11 0 12:35:36 2015.07.01 10:10 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:10:59 0 12:35:39 2015.07.01 10:16 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:16:12 0 12:35:41 2015.07.01 10:18 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:18:55 0 12:35:42 2015.07.01 10:19 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:19:37 0 12:35:43 2015.07.01 10:20 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:20:37 0 12:35:45 2015.07.01 10:23 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:23:03 0 12:35:45 2015.07.01 10:23 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:23:32 0 12:35:48 2015.07.01 10:27 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:27:00 0 12:35:50 2015.07.01 10:28 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:28:48 0 12:35:51 2015.07.01 10:32 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:32:16 0 12:35:52 2015.07.01 10:33 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:33:06 0 12:35:52 2015.07.01 10:33 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:33:52 0 12:35:56 2015.07.01 10:43 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:43:14 0 12:35:57 2015.07.01 10:46 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:46:24 0 12:35:59 2015.07.01 10:50 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:50:14 0 12:36:00 2015.07.01 10:53 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:53:51 0 12:36:01 2015.07.01 10:56 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:56:30 0 12:36:02 2015.07.01 10:58 Blank EURUSD,M1: Время открытия бара: 2015.07.01 10:58:13 Как видно, время открытия баров указано с точностью до 1 секунды. Кстати, здесь видно одно отличие тестера от оффлайн-графиков: тестер принимает историю, в которой два и более баров относятся к одной и той же минуте (см. бары 10:33:06 и 10:33:52)!

Balbesik: Scriptong пишет: Расскажи подробно, как именно ты это определяешь - "не получилось". Согласно Тикколлектору можно устанавливать свое имя тикового файла. Скрипт FXTFileMaker_AnyData_Script_AD этого, у меня, не понимал – "...FXTFileMaker_AnyData_Script_AD: ошибка (N5004) открытия файла EURUSD.tks. Скрипт отключен..". Переименовка ".tks" например в "user.tks" и т.п. (соответствие как в папке файл) ничего не давало, пока в g_ticksFileName =_Symbol + ".tks"; не удалил _Symbol . Все заработало. На картинке был показан реальный график, где было показано время формирования бара. t1 = iTime(NULL,PERIOD_CURRENT,i) - iTime(NULL,PERIOD_CURRENT,i+1); t2 = iTime(NULL,PERIOD_CURRENT,i+1) - iTime(NULL,PERIOD_CURRENT,i+2); Теперь и в тестере время формирования бара получил. Scriptong пишет: Кстати, здесь видно одно отличие тестера от оффлайн-графиков: тестер принимает историю, в которой два и более баров относятся к одной и той же минуте (см. бары 10:33:06 и 10:33:52)! На реальном графике тоже самое - мое сообщение - Отправлено: 24.07.15 13:55 - тоже рисунок - время (менее минуты два бара вместе). Геп отрисовывается с одной и той же минутой. Или я что-то не понял?

Scriptong: Balbesik пишет: Согласно Тикколлектору можно устанавливать свое имя тикового файла. Скрипт FXTFileMaker_AnyData_Script_AD этого, у меня, не понимал – Ясное дело. Ведь ему нужен файл типа EURUSD.tks, т. к. имя файла задается автоматически из соответствия символа графика, на котором запущен скрипт. А файла EURUSD.tks попросту не было. Balbesik пишет: Переименовка ".tks" например в "user.tks" и т.п. (соответствие как в папке файл) ничего не давало, пока в g_ticksFileName =_Symbol + ".tks"; не удалил _Symbol . Все заработало. Нужно было переименовать тиковый файл в <имя символа>.tks. К примеру, EURUSD.tks, GBPUSD.tks и т. д. Balbesik пишет: На реальном графике тоже самое - мое сообщение - Отправлено: 24.07.15 13:55 - тоже рисунок - время (менее минуты два бара вместе). Геп отрисовывается с одной и той же минутой. Или я что-то не понял? Не вижу гэпа на рисунке. Ты этот рисунок имел в виду? А насчет одной и той же минуты у двух и более баров в тестере - тут все верно. Тестер пока пропускает такое положение вещей. Было бы еще так с оффлайн-графиками. Вообще было бы замечательно.

Balbesik: Scriptong пишет: Не вижу гэпа на рисунке. Ты этот рисунок имел в виду? Рисунок этот. На рисунке просто время бара и по времени формирования видно, что проходит 2 бара внутри одной минуты реального графика. Scriptong пишет: Было бы еще так с оффлайн-графиками. Вообще было бы замечательно. Сделал "искусственный" Геп. на реальном графике. Т.к. САМИ задаем время, то и имеем время. if ((int)(time - m_rates.time) < 1) // < 60 Время открытия нового бара отличается от времени открытия предыдущего бара менее, чем на 1-у минуту time = m_rates.time + 1; // + 60 Сдвиг времени открытия нового бара на одну минуту вперед "Сдвиг времени открытия нового бара на одну СЕКУНДУ вперед"

Scriptong: Balbesik пишет: "Сдвиг времени открытия нового бара на одну СЕКУНДУ вперед" И в журнале по этому поводу ничего нет? Обычно в таких случаях МТ начинает возмущаться, выдавая ошибки в журнал и со временем "черточки" вместо баров на графике.

Balbesik: Scriptong пишет: И в журнале по этому поводу ничего нет? Да нет, все нормально. Ты забыл - Тикколлектор изменен. Но, ты сам писал: «Направление правильное..» Твоя конструкция и изменение сделаны по аналогии с Синбаром (ну не умею программировать). Всего одна функция - Преобразование данных для отображения на графике нестандартного периода – bool NonStandartTFChart::ConvertData(datetime time, double bid, bool doFlush) Было бы интересно, что бы ты ее «причесал» или свой вариант. Я ее сюда скачивал, если не сохранилась, то повторю. Вопрос не праздный. Значимость существенная. Вот смотри, ты сам обратил внимание на ЮстЗигЗаг, что «интересно» на равновысоких работает ZZ. И смотри, как «учавствует время» (Активность, в данном примере, не работает) Рис. ZZ – Оптимизируемый участок. Рис. ZZ Оптимизируемый участок и форвард участок – Рис. ZZ Тоже самое и время Рис. ZZ Тоже самое и время и форвард участок Понятно, что рендж сам по себе «фильтр», но «Относительная просадка» сама по себе характеристика и очень значима, а это «небо и земля». Т.е. «время», как и активность необходимо знать. P.S. На картинках "работают" только 3 и 5 (условно) волны Эллиота, ну по аналогии (естественно взят вариант 1 + 1 = 2 и Эллиот "на гектаре не сидит") Ну не знаю, как еще тебя убедить в необходимости потратить свое время на равновысокие, а точнее на Тикколлектор для начала.

Scriptong: Balbesik пишет: Да нет, все нормально. Может в новых билдах что-то изменили и теперь можно два и более баров регистрировать в одной минуте? Balbesik пишет: Ну не знаю, как еще тебя убедить в необходимости потратить свое время на равновысокие, а точнее на Тикколлектор для начала. Я такого не говорил (что не буду тратить на него время). Ты просто невнимателен (см. мое сообщение от 11.09.15 20:05).

Balbesik: Scriptong пишет: Я такого не говорил (что не буду тратить на него время). Буду ждать. TicksCollector 1.02 - полезная штука! Спасибо!

anatolyp: Вот такой код, который тормозит терминал. Посмотрите пож-та, что не так? //+------------------------------------------------------------------+ //| Traders Dynamic Index.mq4 | //| Copyright © 2006, Dean Malone | //| www.compassfx.com | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //| Traders Dynamic Index | //| | //| This hybrid indicator is developed to assist traders in their | //| ability to decipher and monitor market conditions related to | //| trend direction, market strength, and market volatility. | //| | //| Even though comprehensive, the T.D.I. is easy to read and use. | //| | //| Green line = RSI Price line | //| Red line = Trade Signal line | //| Blue lines = Volatility Band | //| Yellow line = Market Base Line | //| | //| Trend Direction - Immediate and Overall | //| Immediate = Green over Red...price action is moving up. | //| Red over Green...price action is moving down. | //| | //| Overall = Yellow line trends up and down generally between the | //| lines 32 & 68. Watch for Yellow line to bounces off | //| these lines for market reversal. Trade long when | //| price is above the Yellow line, and trade short when | //| price is below. | //| | //| Market Strength & Volatility - Immediate and Overall | //| Immediate = Green Line - Strong = Steep slope up or down. | //| Weak = Moderate to Flat slope. | //| | //| Overall = Blue Lines - When expanding, market is strong and | //| trending. When constricting, market is weak and | //| in a range. When the Blue lines are extremely tight | //| in a narrow range, expect an economic announcement | //| or other market condition to spike the market. | //| | //| | //| Entry conditions | //| Scalping - Long = Green over Red, Short = Red over Green | //| Active - Long = Green over Red & Yellow lines | //| Short = Red over Green & Yellow lines | //| Moderate - Long = Green over Red, Yellow, & 50 lines | //| Short= Red over Green, Green below Yellow & 50 line | //| | //| Exit conditions* | //| Long = Green crosses below Red | //| Short = Green crosses above Red | //| * If Green crosses either Blue lines, consider exiting when | //| when the Green line crosses back over the Blue line. | //| | //| | //| IMPORTANT: The default settings are well tested and proven. | //| But, you can change the settings to fit your | //| trading style. | //| | //| | //| Price & Line Type settings: | //| RSI Price settings | //| 0 = Close price [DEFAULT] | //| 1 = Open price. | //| 2 = High price. | //| 3 = Low price. | //| 4 = Median price, (high+low)/2. | //| 5 = Typical price, (high+low+close)/3. | //| 6 = Weighted close price, (high+low+close+close)/4. | //| | //| RSI Price Line & Signal Line Type settings | //| 0 = Simple moving average [DEFAULT] | //| 1 = Exponential moving average | //| 2 = Smoothed moving average | //| 3 = Linear weighted moving average | //| | //| Good trading, | //| | //| Dean | //+------------------------------------------------------------------+ #property indicator_buffers 6 #property indicator_color1 Orange #property indicator_color2 Aqua #property indicator_color3 Yellow #property indicator_color4 Aqua #property indicator_color5 Green #property indicator_color6 Red #property indicator_separate_window extern int RSI_Period = 17; //8-25 extern int RSI_Price = 5; //0-6 extern int Volatility_Band = 50; //20-40 extern int RSI_Price_Line = 13; extern int RSI_Price_Type = 3; //0-3 extern int Trade_Signal_Line = 7; extern int Trade_Signal_Type = 3; //0-3 extern bool UseAlerts = false; double RSIBuf[],UpZone[],MdZone[],DnZone[],MaBuf[],MbBuf[]; int AlertPlayedonBar = 0; int init() { IndicatorShortName("Traders Dynamic Index"); SetIndexBuffer(0,RSIBuf); SetIndexBuffer(1,UpZone); SetIndexBuffer(2,MdZone); SetIndexBuffer(3,DnZone); SetIndexBuffer(4,MaBuf); SetIndexBuffer(5,MbBuf); SetIndexStyle(0,DRAW_NONE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE,0,2); SetIndexStyle(3,DRAW_LINE); SetIndexStyle(4,DRAW_LINE,0,2); SetIndexStyle(5,DRAW_LINE,0,2); SetIndexLabel(0,NULL); SetIndexLabel(1,"VB High"); SetIndexLabel(2,"Market Base Line"); SetIndexLabel(3,"VB Low"); SetIndexLabel(4,"RSI Price Line"); SetIndexLabel(5,"Trade Signal Line"); SetLevelValue(0,50); SetLevelValue(1,68); SetLevelValue(2,32); SetLevelStyle(STYLE_DOT,1,DimGray); return(0); } int start() { double MA,RSI[]; ArrayResize(RSI,Volatility_Band); int counted_bars=IndicatorCounted(); int limit = Bars-counted_bars-1; for(int i=limit; i>=0; i--) { RSIBuf = (iRSI(NULL,0,RSI_Period,RSI_Price,i)); MA = 0; for(int x=i; x<i+Volatility_Band; x++) { RSI[x-i] = RSIBuf[x]; MA += RSIBuf[x]/Volatility_Band; } UpZone = (MA + (1.6185 * StDev(RSI,Volatility_Band))); DnZone = (MA - (1.6185 * StDev(RSI,Volatility_Band))); MdZone = ((UpZone + DnZone)/2); } for (i=limit-1;i>=0;i--) { MaBuf = (iMAOnArray(RSIBuf,0,RSI_Price_Line,0,RSI_Price_Type,i)); MbBuf = (iMAOnArray(RSIBuf,0,Trade_Signal_Line,0,Trade_Signal_Type,i)); } if ((MbBuf[0] > MdZone[0]) && (MbBuf[1] <= MdZone[1]) && (UseAlerts == true) && (AlertPlayedonBar != Bars)) { Alert("Bullish cross"); PlaySound("alert.wav"); AlertPlayedonBar = Bars; } if ((MbBuf[0] < MdZone[0]) && (MbBuf[1] >= MdZone[1]) && (UseAlerts == true) && (AlertPlayedonBar != Bars)) { Alert("Bearish cross"); PlaySound("alert.wav"); AlertPlayedonBar = Bars; } //---- return(0); } double StDev(double& Data[], int Per) {return(MathSqrt(Variance(Data,Per))); } double Variance(double& Data[], int Per) {double sum = 0, ssum = 0; for (int i=0; i<Per; i++) {sum += Data; ssum += MathPow(Data,2); } return((ssum*Per - sum*sum)/(Per*(Per-1))); } //+------------------------------------------------------------------+

Balbesik: anatolyp пишет: Вот такой код, который тормозит терминал. Посмотрите пож-та, что не так? Это 509 билд. Вот он. click here Ставишь вместе с Traders Dynamic Index.ex4 Компилировать нельзя. Все работает, ничего не грузит. Под новые билды переделать - это к Игорю. P.S. Кстати, посмотрел - этот индикатор есть на Кодебазе - https://www.mql5.com/en/code/7980

Scriptong: anatolyp пишет: Вот такой код, который тормозит терминал. Посмотрите пож-та, что не так? Пожалуйста, размещайте подобные вопросы в отдельной ветке темы "Консультации по программированию".

Balbesik: Scriptong пишет: Отправлено: Вчера 15:57.... На это я отвечу. Пока, на мой взгляд к вопросам "понимаю - не понимаю", очень полезный материал попался к "расчетам дивергенций" - Первый урок эконометрики Эконометрика применяет для анализа экономики математические методы. Эта статья — пародия, однако подход, на который в ней указано, кажется, занял свое место в некоторых курсах и даже публикациях. Иногда простые вещи преподносят так, что для понимания сути и продирания через наукообразные “навороты’’ требуется гораздо больше времени (и сил), чем если бы рассказано было сразу то, что нужно. Надеюсь, вы получите удовольствие от чтения этой пародии JOHN J. SIEGFRIED, University of Wisconsin Journal of Political Economy, Vol. 78, No 6, (Nov. – Dec. 1970), pp. 1378–1379 Каждый начинающий заниматься эконометрикой с самого начала должен знать, что является дурным тоном записывать сумму двух величин в виде Любой студент-экономист знает, что и более того, что Кроме того, обычному читателю очевидно, что Следовательно, равенство (1) может быть переписано более научно как Легко доказать, что и поскольку уравнение (5) может быть упрощено далее: Если мы заметим, что и вспомним, что обратная к транспонированной равна транспонированной обратной, мы можем облегчить наше бремя ограниченного рассмотрения одномерного случая, введя вектор , где Объединяя уравнения (9) и (10), получим Подставив данное уравнение в (8), получим упрощение В этом месте должно быть ясно, что уравнение (12) гораздо проще и более легко понимается, чем уравнение (1). Другие методы, аналогичные данному, также могут быть использованы для упрощения уравнения (1), но это станет очевидно молодому эконометристу, который разберется с основными принципами. Работа над этой статьей никем не поддерживалась. Автор хотел бы поблагодарить неизвестный, но мудрый источник за оригинальные идеи для анализа.

Balbesik: Решил заполнить одну единичку. Интересный момент. У меня есть счет по форексу в Джи Пи Морган в Нью Йорке, где-то месяца через 3 после Крыма они мне предложили его закрыть и заблокировали работу (в переводе типа"погода плохая"). И их налоговая перестала "тренировать" (там по закону, если работаешь на их территории, то и налоги платить должен там и отчитываться там) Кстати тогда и наши банки прекратили переводы (а там ребята ничего другого кроме банковского не понимают) Счет я не стал закрывать. И тут на днях от них прилетело, что я могу продолжить работу. Интересно, что происходит? Информации у меня никакой. И в этом плане еще интересно - вот наступило 1 октября в РФ вступил в силу закон по форексу (и в т.ч. масса подзаконных актов). Раньше фактически все кто работал на западе "сидел на статье". Форекс не входил в список разрешенных банковских операций с западом типа учеба, лечение и кстати фондовка (а их всего-то было штук 5). А как теперь (что-то я найти не могу), кто знает?

Balbesik: 1

Scriptong: Balbesik пишет: 1 Это что означает?

Balbesik: Scriptong пишет: Это что означает? Пьяный был и всякую чушь писал. Но суть одна - хотел по производным показать, как на равновысоких идет. Сделаю потом. Просто чуть вперед "побежал" без Тикколлектора, ну типа развития ветки.

Admin: Пользователь Balbesik отправлен в профилактический бан на одну неделю. Напоминаю остальным участникам: сообщения, касающиеся политики, на форуме недопустимы, т. к. приводят к разжиганию межнациональной розни.

Balbesik: Проверил посде "бана". Открытая система - постоянно появляются новые участники, ну не прогнозируемое это (это закон математики)! Можно "поймать" импульс, движение (надо разобраться в понятиях). Но построение системы ??????????

Scriptong: Balbesik пишет: Проверил посде "бана". Добрый день, Евгений. Бан был всего лишь на неделю. Очень надеюсь, что ты сделал правильные выводы. Потому как следующий бан будет последним. Balbesik пишет: Но построение системы ?????????? Системы здесь постоянно разрабатываются. Каждый может выбрать себе по вкусу. Тем не менее, на достигнутом никто не останавливается, т. к. только в постоянном развитии можно надеяться на лучшее.

Balbesik: Scriptong пишет: Добрый день, Евгений. Бан был всего лишь на неделю. Привет, Игорь! Бан до сих висит, входишь с перезагрузкой повторно, тогда да. Видимо мало банили и не отработали этот прием. Scriptong пишет: Системы здесь постоянно разрабатываются. Каждый может выбрать себе по вкусу. Тем не менее, на достигнутом никто не останавливается, т. к. только в постоянном развитии можно надеяться на лучшее. Ага, по ТА изобретают вечный двигатель и я тоже.

Scriptong: Balbesik пишет: Бан до сих висит, входишь с перезагрузкой повторно, тогда да. Видимо мало банили и не отработали этот прием. Попробуй почистить cookie в браузере. Или даже до кэша доберись (в смысле, удали). Balbesik пишет: Ага, по ТА изобретают вечный двигатель и я тоже. Вечный двигатель невозможен на нашем уровне осознания, ибо здесь действует закон сохранения энергии. По этой причине ТА-Грааль невозможна в принципе. А вот хороший инструмент - вполне возможен. Применяешь его с умом - зарабатываешь.

Balbesik: Это ни о чем. Показано, что открытая система постоянно меняется! Это как раз характеристика, почему "портфельная" система не рентабельна на ежедневке (комиссия все "сожрет" - там "нема дурных"). Использован советник Игоря с ежедневной оптимизацией (подстройкой под рынок) Тут ни о чем просто ЗигЗаг (рендж это фильтр). Более интересно на ренджах расхождение (дивергенция)! Если в воскресенье смогу, то что-то выложу. P.S. Первый рисунок - оптимизация. Второй - форвард участок. Третий - тот же форвард участок с ежедневной "подстройкой" ЗигЗага Участок специально выбран для наглядности.

Sergey: Balbesik пишет: Более интересно на ренджах расхождение (дивергенция)! Ты же ярый противник дивергенций. Или позиция поменялась?

Sergey: Balbesik пишет: Тут ни о чем просто ЗигЗаг (рендж это фильтр). Использование рендж графиков для точного входа идея хорошая. Возникает вопрос, будет ли работать советник установленный на стандартный график если прописать в нем получение информации от рендж графика по принципу iTime("USDCHF",PERIOD_H1,0) и как правильно указать период. Или лучше установить советник на рендж график, а информацию по индикаторам на стандартных периодах получать выше указанным способом?

Balbesik: Sergey пишет: Ты же ярый противник дивергенций. Или позиция поменялась? А это зависит от того, что ты понимаешь под дивергенцией? Я свою позицию озвучивал, но повторю еще раз – торговать можно опираясь на что угодно, если получается, хоть по звездам, хоть по настроению прапра…бабушки. Когда берутся значения цен и начинают над ними изгаляться – назову это «делать производные», по этим «производным» искать некие расхождения, кроме этого, делается безразмерная величина ( а тут задачка старая – если к некоторому уровню, например = 100 прибавить 20 и =120 или отнять 20 и =80, то чтобы вернуться к 100 наверное понятно, что возврат в процентном отношении разный – проблема «безразмера», а в абсолютном выражении взять нельзя – у вас же цена), при этом если в качестве сглаживания взять логарифм (предложи другое), то с т.з. «пропускной способности» у логарифма не так широк диапазон «достоверности» - та же проблема. Когда берется цена и из нее пытаются что-то сделать для сравнения, а, на мой взгляд, чтобы не делали из цены все равно это будет цена, поэтому - без меня. Sergey пишет: Использование рендж графиков для точного входа идея хорошая. Возникает вопрос, будет ли работать советник установленный на стандартный график если прописать в нем получение информации от рендж графика по принципу iTime("USDCHF",PERIOD_H1,0) и как правильно указать период. Или лучше установить советник на рендж график, а информацию по индикаторам на стандартных периодах получать выше указанным способом? У меня советник Игоря задавая Т.Ф. графика ренджей при установке на временном графике он работает, но достоверность вызывала сомнения и шел тормоз (или мне показалось, я не стал вникать), поэтому у меня советник установлен на рендж график. Полагаю проблем не должно быть это такой же график – делают же мультитаймфрейм.

Sergey: Balbesik пишет: поэтому у меня советник установлен на рендж график. Полагаю проблем не должно быть это такой же график – делают же мультитаймфрейм. Я тоже пришел к такому выводу, это проще и надежней.

Scriptong: Sergey пишет: Возникает вопрос, будет ли работать советник установленный на стандартный график если прописать в нем получение информации от рендж графика по принципу iTime("USDCHF",PERIOD_H1,0) и как правильно указать период. Конечно же, будет. В этом и есть смысл всей проделанной работы с тиками и нестандартными графиками. Все это можно теперь не только использовать онлайн, но и тестировать в тестере стратегий.

Balbesik: https://www.mql5.com/ru/code/14395 Обращаю внимание на интересные вещи для ренджа. "Очень важно, все математические действия со значениями индикатора необходимо производить в абсолютных величинах." - наиболее верно на мой взгляд. По диверам - масса вопросов и пока не готов.

Sergey: Balbesik пишет: По диверам - масса вопросов и пока не готов. Подождем.

Balbesik: "...поиска дивергенций между графиками разных символов,,," Даааа...! Дивергенция на ренжах. В общем пока не готов, но графики начну размещать (чтобы не забыть), а потом комментарии выложу. Все участки форвард и оптимизация советником Игоря. Корректность котировок - Рассогласование (дивергенция без оптимизации и с ней) Два свинга - Один свинг - Котировки на двух терминалах - работают параллельно (по номеру отличаются, но это одно и тоже)

Scriptong: То есть принцип поиска дивергенций тот же, что и в DivergenceViewer? Если да, то подойдет как индикатор, так и советник, которые уже есть для дивергенции.

Balbesik: Scriptong пишет: То есть принцип поиска дивергенций тот же, что и в DivergenceViewer? Если да, то подойдет как индикатор, так и советник, которые уже есть для дивергенции. Привет, Игорь! Я не смотрел DivergenceViewer (хотя хотел). «…между графиками разных символов…» - вот это совпало с моим взглядом на понятие дивергенции. Попробую пояснить (плохо у меня это получается) – Вот есть некий график цены, т.е. реализована некая функция цены, есть некий график активности, т.е. реализована некая функция активности и есть некий график времени, т.е. реализована некая функция времени. Это разные функции. Вот если сравниваются разные функции друг с другом, то их расхождение для меня это дивергенция (по величине рассогласования не беру, а пока только рассогласование по направлению). Сравнение разных символов это тоже самое, что сравнение разных функций. Теперь по картинкам – последние две, к делу не относятся – это «странность», что уже отмечали на этом форуме, два терминала на одном компе работают одновременно и при прочих равных результаты разные????? Картинки по тестированию (кроме первой – Корректность котировок) – Здесь так вход по формированию экстремума ЗигЗага (система, как и «машка», запаздывающая), система тренд следящая, соответственно стоп (без заморочек) по сформированному экстремуму ЗигЗага (соответственно плавающий) и БУ = 20 пунктов (5-знак). Высота бара = 81 пункт (5-знак) – обусловлено – (спред = 20п. + Бу = 20п. (ловим просто движение, ТП есть , но это не важно) ) * 2 = 80 и + 1 = 81 пункт. Т.е. , на мой взгляд, на «уровне шума «(по умному – граница случайного блуждания). Размах ЗигЗага = 81 * 3 (*4) с границами оптимизации + / - 30%. Вот такая система для сравнения. «Основной посыл» – путь , который проходит цена за бар всегда один и тот же. Соответственно чем меньше затрачено времени на этот путь или количества активности на этот путь, тем более вероятно, что это импульс на продолжение движения. Результатов много и выкладывать здесь бессмысленно. Основное – так различные «ухищрения» с ценой ничего не дают. Сравнивать расхождение цены отдельно с активностью или временем - не стабильный (участками) результат. Самое оптимальное у меня получилось сравнение с «функцией» активность * время бара, построение по аналогии с ОBV с учетом «Основной посыл». Это и логично с т.з. физики приняв активность за скорость и умножив на время получим путь. Все тестирование идет с «функцией» - V*T (без всяких сглаживаний). Важный момент – каждый «паттерн» оптимизируется отдельно и одновременно вместе не складываются (возможно, это только у меня получается, но в этом я вижу логику). Добавлю картинок и потом продолжу, для меня, важное - проблемы. Совпадение движения V*T с ценой (без дивергенции) по 1-му свингу – это тоже к проблеме. Форвард участки без оптимизации 1_1_2 и с оптимизацией советником 2_1_2. Минусовые сделки – по 1_1_2 и 2_1_2 – 3 и 4. После оптимизации тестером - 3_1 и 4_1 А советник этого не дает и тут интересная проблема – неужели тестер «сглаживает» некоторые моменты, которые советник пропускает? Но это потом - к проблемам, к которым также относится картинка Корректность котировок и вот эта добавка для ренджей (ну не получается у меня иначе) - bool IsNewHour(int barIndex) { int curBarHour = TimeHour(iTime(NULL, 0, barIndex + 1)); int prevBarHour = TimeHour(iTime(NULL, 0, barIndex + 2)); return curBarHour < prevBarHour; }

Scriptong: Balbesik пишет: «…между графиками разных символов…» - вот это совпало с моим взглядом на понятие дивергенции. Для этой цели создан индикатор AnotherSymbol. Его нужно подключить к DivergenceViewer в качестве базового индикатора. Это позволит искать дивергенции между разными символами. Хотя не скрою, процесс подключения несколько мудреный, чтобы разобраться в нем самостоятельно, если никогда еще не работал с дивергенциями. Для этого мне нужно будет написать специальную статью. Это одна из моих задумок на будущее. Дело, как всегда, во времени (его нехватке).

Balbesik: Игорь! Рад тебя видеть. Думал ты уехал отдыхать и в этом году не увижу. С Наступающем тебя и всех участников этого форума! Дивером будем заниматься "через год". Меня интересует твое мнение по вот этому - (главный мой вопрос - проблема памяти). Я понять не могу, а ты "ближе к теме" - система 64 или 32 (на рекламе шла 7, 8 и 10 по Винде), соответственно можно думать, что 64. Так ли это? http://ptmc.protrader.org/ http://protrader.org/ru/forum

Scriptong: Balbesik пишет: Дивером будем заниматься "через год". В принципе уже занимаемся. Развитие индикатора AnotherSymbol записавил себе в план. Balbesik пишет: Я понять не могу, а ты "ближе к теме" - система 64 или 32 (на рекламе шла 7, 8 и 10 по Винде), соответственно можно думать, что 64. Скорее всего 64 бит, т. к. приложение новое. Чтобы сказать наверняка, нужно будет устанавливать. Мне пока что-то не хочется его устанавливать.

Balbesik: С Новым годом! Всем удачи!

Genry: Balbesik пишет: С Новым годом! Взаимно! Исполнения желаний!

Balbesik: 1

Balbesik: 1

Balbesik: Ох и напился! Ну вроде как РОЖДЕСТВО (это "главнее" Нового года). Всех с праздником.

Balbesik: По пъяне в Вашем понимании, что такое тренд и контртренд?

Balbesik: Вернемся к диверам. Ну во первых - проблемы котировк. Правильно, ты Игорь заметил, а как суббота-воскресенье? Вроде просто, но отнюдь. Далее ТИКИ ("Обьем") - а как учитывать, "а-ля" геп? И вообще с исходными - "ой мама не горюй"). Твоя история - тики с дискретной 1 секунда - или бесполезно? Вроде задача простая - меняем волатильность на время! На обычном графике имеем волатильность. На рендж графике имеем время.

Scriptong: Balbesik пишет: Далее ТИКИ ("Обьем") - а как учитывать, "а-ля" геп? В представлении Neval'а диверы с гэпами внутри лучше игнорировать. Balbesik пишет: Твоя история - тики с дискретной 1 секунда - или бесполезно? Да, ниже секунды средствами MQL4 вести запись невозможно. Поэтому в собранной тиковой истории часто встречается такое, что несколько тиков принадлежит одной секунде. А вот какая между ними пауза - непонятно. Balbesik пишет: Вроде задача простая - меняем волатильность на время! Если делать какой-то свой график, то возможно сделать все, что угодно. А вот в пределах МТ4 можем лишь оперировать временем по оси абсцисс. Тут мы загнаны в угол.

Balbesik: Scriptong пишет: .....временем по оси абсцисс....... ??????????????????????????????????????? Ветка для меня стала, что-то типа конспекта. Выложу еще одну картинку, чтобы не забыть. Надо сделать серию таких - как рендж позволяет работать по каналу. P.S. Кстати тоже полезная вещь https://www.mql5.com/ru/code/14500 Я не математик и достоверности теоремы "О наличии памяти (последействия) в случайных последовательностях" не знаю (можно посмеяться над ДВУМЯ барами, т.к. на одном-то никак, но понятно, какие дикие сложности если более), но по логике и по физике, как раз соответствие, что чем меньше и ближе участок тестирования тем лучше. Я как-то свой взгляд выкладывал, а тут прямо в тему.

Balbesik: click here

Scriptong: Balbesik пишет: click here Что бы могли означать загадочные линии, отображаемые указанным индикатором?

Balbesik: Scriptong пишет: Что бы могли означать загадочные линии, отображаемые указанным индикатором? Ничего (файлообменник не работал сделал заранее). Просто старый аналог - какой-то там метр (не помню). Ну картинок сейчас накидаю - будет все "разорвано".

Balbesik: Продолжение картинки от - ссылка на сообщение Отправлено: 12.01.16 22:16. Сейчас продолжу.

Balbesik: График рендж и обычный (наиболее близко 5 мин.). Это "на поговорить". Рендж - 5 минут -

Balbesik: Проблема времени -

Balbesik: Balbesik пишет: Проблема времени - Не верно - деление на "0" Исправил - && !IsNewDay(i) - лишнее

Scriptong: Balbesik пишет: Не верно - деление на "0" Исправил - Такой подход в неоторых случаях будет срабатывать, но и, в то же время, пропускает много случаев, т. к. между последним временем одной недели и первым временем следующей недели не обязательно 3 дня. Может быть и больше, если пятница и/или понедельник выходной. Проблема определения естественных и неестественных дыр в истории достаточно тяжело решаема (много нужно учесть). К тому же она усугубляется на графиках, не зависящих от времени (те же рэнджи). Пока не могу предложить какого-либо решения. Сколько раз подходил к этой проблеме - не находил его.

Balbesik: Начало - Отправлено: 18.12.15 21:52 Картинка Корректность котировок - все 3 ЗигЗага разных размахов пришли в одну точку на шпильке. Использована тиковая история, Д.Ц. ее проблематично "поправить" и соответственно картинка наблюдается, а в истории ДЦ этих шпилек нет. Т.к. Д.Ц. под лозунгом "чистки не рыночных котировок" исключают из истории шпильки и проч., то тестирование на "гладких" графиках приводит к положительным результатам, а на реале результаты тестирования не подтверждаются. Допустим при построении ЗигЗага - JustZigZag, мне кажется, при использовании рендж баров в отличии от временного графика возможно в индикаторе "вырезать" данные участки. Игорь! Как решить данную проблему - исключить в JustZigZag "не рыночные котировки" - например шпильки?

Scriptong: Balbesik пишет: Как решить данную проблему - исключить в JustZigZag "не рыночные котировки" - например шпильки? Формализовать термин "шпилька" и написать соответствующий фильтр, который исключает шпильки. Самый простой, но и самый плохой в смысле фильтрации способ - определить, что шпилькой является разность цен между соседними тиками более, чем 10% цены. Проблема подобного подхода - вырезание действительных рыночных гэпов. К примеру, такой способ отнесет к шпильке историю по франковым парам за период 15.01.2015 - 01.02.2015. Таким образом, борьба со шпильками - это действительно тяжелое дело со множеством нюансов.

Balbesik: Scriptong пишет: Формализовать термин "шпилька" и написать соответствующий фильтр, который исключает шпильки....... Таким образом, борьба со шпильками - это действительно тяжелое дело со множеством нюансов. Balbesik пишет: при построении ЗигЗага - JustZigZag, мне кажется, при использовании рендж баров в отличии от временного графика возможно в индикаторе "вырезать" данные участки. Так оно. Видимо не существует критерия, чтобы отличить один тик от другого. Только вопрос о баре, на рендже при "шпильке" бар - H=L=C=O и это частный вопрос по ЗигЗагу (JustZigZag), конкретно место для вставки фильтра, что-то туплю - "глаз замылился". Не о Тикколлекторе.

Balbesik: Отправлено: Сегодня 21:06 Картинка - Проблема времени Игорь! Я "вырезал" время вот таким образом. Правильно ли это?

Scriptong: Balbesik пишет: Я "вырезал" время вот таким образом. Правильно ли это? Чтобы ответить на этот вопрос, нужно знать цель, которая поставлена, т. е. что подразумевается под "вырезанием времени".

Balbesik: Scriptong пишет: Чтобы ответить на этот вопрос, нужно знать цель, которая поставлена, т. е. что подразумевается под "вырезанием времени". Исключить субботу - воскресенье.

Scriptong: Balbesik пишет: Исключить субботу - воскресенье. Наверное, имелось в виду - заполнить. Ведь при текущем положении дел они и так исключены.

Balbesik: Scriptong пишет: Наверное, имелось в виду - заполнить. Ведь при текущем положении дел они и так исключены. Определяем время бара - t1 = MathAbs (iTime(NULL,PERIOD_CURRENT,i) - iTime(NULL,PERIOD_CURRENT,i+1)); Величина с учетом субботы - воскресенья (баров нет, а время есть) становится несоизмерима. Поэтому именно ИСКЛЮЧИТЬ!

Balbesik: Ну и к Дивергенции на ренджах. Т.к. на ренджах "ловим" время, в отличии от временного графика, где "ловим" волатильность и используется ЗигЗаг, который сам по себе имеет период, т.е. время, то на мой взгляд, дивер "поймать" проще на ренджах, чем на временном. Патерны использовал по 1 свингу и по 1и2 свингам в сравнении со временем и активностью. Форвард участок по всем используемым патернам - Контроль по патернам (в т.ч. правильность написания) - 2 патерна - Оптимизируемый тестором участок - Форвард участок - Форвард участок с оптимизацией советником - Соответственно по 1 патерну можно сделать вывод, что на тестере получен подгон - исключаем. 2 патерн используем и т.д.. В одном индикаторе разные патерны конфликтуют. На ренджах по диверам работать можно.

Balbesik: На память - картинки - Отправлено: Вчера 20:53. и Отправлено: 12.01.16 22:16. и т.д. - расчет на ММ

Balbesik: Откуда "ноги растут"? Ну ничего "не катит" - размерность - мимо темы соизмеримость - до свидания. Т.е. нормальный "бред" дилинга! Целый рынок плагинов для Д.Ц., но зачем хамить? Это смотрю без дивера на ренджах Игорь, Я не сегодня родился, я все понимаю, но я не понимаю хотя бы для красоты как-то "в рамках" иначе полный бред а не котировки. Кстати , отдаю должное Оанде - Нью Йорк, молодцы ребята, красиво работают, без хамства.

Scriptong: Balbesik пишет: Игорь, Я не сегодня родился, я все понимаю, но я не понимаю хотя бы для красоты как-то "в рамках" иначе полный бред а не котировки. Касательно каких котировок это фраза? Насчет линий средств, не совпадающей с линией баланса - вполне может быть гэп с последующим возвратом цены. Причем за время возврата цены закрывается одна-две сделки при существующей убыточной сделке. В итоге кривая баланса расходится с кривой средств.

Balbesik: Scriptong пишет: ....может быть гэп с последующим возвратом цены.... Да, как-то не складывается. Потом геп это рыночная котировка и хорошо отрабатывается Тикколлектором. Мои "попытки вырезать" - Исходные - одна шпилька ("вырезается") и две рядом (муть). Одна шпилька - Две шпильки - ЗигЗаг не строится на JustZigZag. Соответственно история неприменима. Оставлять "как есть" смысла нет

Scriptong: Balbesik пишет: Да, как-то не складывается. Если шпильки представляют собой одиночные тики (прыжок цены на "большое расстояние", а на следующем тике - прыжок в обратном направлении), то на истории с этим можно бороться. В этом случае достаточно будет подобрать минимальное значение, на которое цена уходит одним тиком от привычного течения цен. Если же имеются случаи, когда цена прыгнула вверх или вниз, а вернулась из этого диапазона после двух или более тиков, то такую шпильку автоматом отфильтровать уже сложнее.

Balbesik: Scriptong пишет: ...подобрать минимальное значение... if( sPossZZDir==ZZ_UPWARD && iHigh(NULL,PERIOD_CURRENT,possZZIndex) != iLow(NULL,PERIOD_CURRENT,possZZIndex) ......................................... и т.д. Ренджи.

Scriptong: Пришел в голову следующий простой способ определения праздников и выходных. Заключается он в том, что между последней котировкой перед выходным/праздником и первой котировкой первого рабочего дня после выходного проходит время больше суток: #define SECONDS_IN_DAY 60 * 60 * 24 // Количество секунд в одних сутках datetime t1 = curTick.time; datetime t2 = iTime(NULL, 0, i + 1); if (curTick.time - prevTick.time >= SECONDS_IN_DAY) { // Выходные или праздники } Все остальные промежутки между соседними тиками можно относить к обычному отсутствию котировок (не дыра в истории).

Balbesik: Scriptong пишет: Все остальные промежутки между соседними тиками можно относить к обычному отсутствию котировок (не дыра в истории). Да! Стало лучше. Что еще - "не догоняю откуда ноги растут" - Проверял советником на форвард участке, здесь IsNewTimeSeconds это и есть curTick.time - prevTick.time >= SECONDS_IN_DAY Чисто IsNewTimeSeconds Дублирую - IsNewTimeSeconds и IsNewDay Вариант или - или. Все сделано при прочих равных. Допускаю, что у меня тиковая история не корректна, допустим обрыв связи, но сутками быть не может, вероятней рендж имеет переход через сутки, но тоже вопрос - при чем тут время. Хотя в общем и целом исходные данные с определенном компромиссом (а он всегда будет) по графику времени стали приемлемы - использовать можно.

Scriptong: На мой взгляд, вызов IsNewDay - лишнее.

Balbesik: Scriptong пишет: На мой взгляд, вызов IsNewDay - лишнее. По логике, как бы да, лишнее (если допустить, что все учтено для ренджей). Взял твою тиковую историю за 01.2016г. При исключении IsNewDay - результат плохой, с IsNewDay - нормально. Вывод - "ручки кривые", т.е. мое неумение программировать. Возможно вписал твою конструкцию OBV в твой JustZigZag некоректно, но более вероятно в 950 билде эти суки, что-то опять "доработали" (видимо, если эти твари не гадят им ДЦ не доплачивает, по другому не понятно, кому нужны их "доработки" на МТ4, а спецов на околорынок подсадили, чтобы не вякали). Посмотрел на примерах в Кодебазе, что-то условия в индикаторе на открытие - народ стал прописывать, как-то по другому (нет или, а есть Иф и иначе и т.д,). Буду пробовать. Похоже это надолго (не до индикатора по уровням для примера).

Scriptong: Balbesik пишет: По логике, как бы да, лишнее (если допустить, что все учтено для ренджей). Тут подумал немного. Вывод, что, действительно, лишний вызов. Так, если нужно именно выбрасывать дыры (праздники и выходные), то условие "выбрасывания" не должно срабатывать при переходе через сутки. Ведь при переходе со вторника на среду, к примеру, история идет без перерывов.

Balbesik: Scriptong пишет: Ведь при переходе со вторника на среду, к примеру, история идет без перерывов. Так оно. Я поэтому и не могу понять эфекта. Если бы это были американцы, то куда ни шло. У них единственный разрешенный винт это спред (никаких реквотов и проч.). Как практика показала это происходит только при переходе на сутках. А я работал с Альпари - это не должно влиять. Переписал несколько вариантов алгоритма по открытию позиции - эфект тот же. Остался последний вопрос - я некорректно вписал OBV в ЮстЗигЗаг. Оставляю эту вставку. Итак: 1. Шпилька, когда она одна - "вырезается" нормально. 2. Время праздники и выходные - "вырезается" нормально. Все, по исходным данным пока вопросов нет. Основной вопрос - где можно посмотреть, как в виде функции вписать индикатор в советник? Тут такая штука - если брать дивергенцию по экстремумам ЗигЗага (два свинга - 3 экстремума -1,2,3) и например OBV, если брать дивергенцию по 1-2 и OBV или 1-3 и OBV, то оптимизируемое значение размаха начинает в этих двух диверах конфликтовать. Соответственно если брать сочетание состоянии (кол. вариантов), то памяти явно не хватит, а раздельно делать надо. Моя частная задача номер один.

Balbesik: Ладно, около рынок более рентабелен. Но Это твои дела. У тебя нет оснований отвечать. Но и с т.з. продолжения общения, тоже нет оснований отвечать. Вот и еще компромис

Balbesik: 1

Scriptong: Balbesik пишет: У тебя нет оснований отвечать. Но и с т.з. продолжения общения, тоже нет оснований отвечать. Вот и еще компромис На какой из твоих вопросов я не ответил?

Balbesik: Scriptong пишет: На какой из твоих вопросов я не ответил? Вопрос звучал просто (самое последнее, что мной было написано на ветке - Отправлено: 03.02.16 20:23) - где посмотреть любой пример, как вписан индикатор в советник в виде функции (подразумевал вписан в папке "Include"). Т.к. вопрос связан с памятью и эта проблема для меня старая (неоднократно поднималась мной) у тебя возможно были основания не отвечать. А я со своей стороны не уверен, что вписывание индикатора в советник решает проблему (возможно и будет лучше, но насколько?). Мне интересно сравнить. Схема - удаления графика - восстановление графика (из списка открыть автономно - через Константы нестандартных таймфреймов возможно) - открытие шаблона на вновь открытый график (не знаю как), более мне нравится, но не уверен реализуема ли эта схема. И я не знаю, как эту схему сделать и посмотреть. Да еще Scriptong пишет: Тут подумал немного. Вывод, что, действительно, лишний вызов. Так, если нужно именно выбрасывать дыры (праздники и выходные), то условие "выбрасывания" не должно срабатывать при переходе через сутки. Ведь при переходе со вторника на среду, к примеру, история идет без перерывов. Правильно все если только Т1, если используется Т2, например безразмер = (Т1-Т2)/(Т1+Т2), то еще добавить один блок IsNewTimeSeconds. Как-то так - if (IsNewTimeSeconds(i)) { tt1 = (iTime(NULL,PERIOD_CURRENT,i+1) - iTime(NULL,PERIOD_CURRENT,i+2)); // MathAbs VV1 = (int)iVolume(NULL,PERIOD_CURRENT,i+2); } else { tt1 = (iTime(NULL,PERIOD_CURRENT,i) - iTime(NULL,PERIOD_CURRENT,i+1)); VV1 = (int)iVolume(NULL,PERIOD_CURRENT,i+1); } if ( IsNewTimeSeconds_1(i) ) { tt2 = (iTime(NULL,PERIOD_CURRENT,i+2) - iTime(NULL,PERIOD_CURRENT,i+3)); VV2 = (int)iVolume(NULL,PERIOD_CURRENT,i+3); } else { tt2 = (iTime(NULL,PERIOD_CURRENT,i+1) - iTime(NULL,PERIOD_CURRENT,i+2)); VV2 = (int)iVolume(NULL,PERIOD_CURRENT,i+2); } тогда "все складывается".

Scriptong: Balbesik пишет: где посмотреть любой пример, как вписан индикатор в советник в виде функции К сожалению, нигде. Универсального способа не существует. Для каждого конкретного индикатора требуется индивидуальный подход.

Balbesik: Scriptong пишет: К сожалению, нигде. Универсального способа не существует. Для каждого конкретного индикатора требуется индивидуальный подход. Цель вопроса была - для сравнения (любой вариант). Остальное понятно. Сам я не смог бы синхронизировать и поэтому и не хочу вписывать и иду другим путем. А тут нужна твоя помощь - возможно ли функцией ChartApplyTemplate програмно из индикатора (советника), который стоит на открытом графике, вызвать шаблон на этот же график? Если "Да", то приведи пример, как и куда (в алгоритме) ставится? А то я Ваш "птичий" (программистов) язык не понимаю. Могу разобраться только по аналогии. Ну сильно надо, а странностей тут для меня хватает. В "ручную" шаблон вызывается, память сбрасывается, а параметры оптимизации передам по Глобальным.

Scriptong: Balbesik пишет: возможно ли функцией ChartApplyTemplate програмно из индикатора (советника), который стоит на открытом графике, вызвать шаблон на этот же график? Да, возможно. Но при этом сам советник будет удален с графика, если в шаблоне нет его. Но в любом случае произойдет деинициализация советника. Исходник советника (чтобы не исчез после окончания времени хранения): #property version "1.00" #property strict #define FONT_NAME "Tahoma" #define FONT_SIZE 8 #define BUTTON_NAME "BTN_APPLY" #define BUTTON_CORNER 3 #define BUTTON_WIDTH 110 #define BUTTON_HEIGHT 20 #define BUTTON_TEXT_COLOR clrBlack input string i_templateName = "ADX.tpl"; // Имя шаблона //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { ShowButton(BUTTON_NAME, 120, 25, BUTTON_WIDTH, BUTTON_HEIGHT, "Применить шаблон", false, BUTTON_TEXT_COLOR, clrRoyalBlue); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ObjectDelete(0, BUTTON_NAME); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { } //+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Функция обработки события чарта | //+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam) { if (id != CHARTEVENT_OBJECT_CLICK) return; if (sparam != BUTTON_NAME) return; ChartApplyTemplate(0, i_templateName); } //+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Отображение графического объекта "Кнопка" | //+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ void ShowButton(string name, int x, int y, int width, int height, string text, bool state, color clrText, color clrBackground) { if (ObjectFind(name) < 0) { ObjectCreate(0, name, OBJ_BUTTON, 0, 0, 0); ObjectSetInteger(0, name, OBJPROP_XSIZE, width); ObjectSetInteger(0, name, OBJPROP_YSIZE, height); ObjectSetInteger(0, name, OBJPROP_CORNER, BUTTON_CORNER); ObjectSetString(0, name, OBJPROP_FONT, FONT_NAME); ObjectSetInteger(0, name, OBJPROP_FONTSIZE, FONT_SIZE); ObjectSetInteger(0, name, OBJPROP_COLOR, clrText); ObjectSetInteger(0, name, OBJPROP_BGCOLOR, clrBackground); ObjectSetInteger(0, name, OBJPROP_BORDER_COLOR, clrNONE); ObjectSetInteger(0, name, OBJPROP_BACK, false); ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false); ObjectSetInteger(0, name, OBJPROP_HIDDEN, true); } ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x); ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y); ObjectSetInteger(0, name, OBJPROP_STATE, state); ObjectSetString(0, name, OBJPROP_TEXT, text); ObjectSetInteger(0, name, OBJPROP_COLOR, clrText); ObjectSetInteger(0, name, OBJPROP_BGCOLOR, clrBackground); } а также ссылка на файл - test.mq4 Пользоваться так: 1. Перетащить советник на график. 2. В настроечном параметре "Имя шаблона" указать имя файла шаблона, который требуется загрузить. Этот шаблон должен присутствовать в папке каталог_терминала\templates. Расширение tpl указывать обязательно. 3. Нажать ОК. 4. В нижнем правом углу графика появится кнопка "Применить шаблон". Ее нажатие приводит к загрузке указанного шаблона и выгрузке советника.

Balbesik: Scriptong пишет: Да, возможно. Спасибо! Конечно удобно для РУЧНОЙ торговли. И кнопкой и мышкой, но немножко не то, что пытаюсь добиться Balbesik пишет: програмно ....вызвать шаблон на этот же график? ...................................................................................... В "ручную" шаблон вызывается, память сбрасывается.... Схема приведенная в "букваре" работает // if(!IsTesting() && curTime > g_optimizeTime_1 && Flag == 1) // { if(FileIsExist("319.tpl")) { Print("Шаблон 319.tpl найден в каталоге \\Files'"); // Momentum //--- применим найденный шаблон if(ChartApplyTemplate(0,"\\Files\\319.tpl")) { Print("Применили успешно шаблон '319.tpl'"); } else Print("Не удалось применить шаблон '319.tpl', ошибка ",GetLastError()); } // } else { Print("Файл '319.tpl' не найден в папке " +TerminalInfoString(TERMINAL_PATH)+"\\MQL4\\Files"); } , но как бы я не изгалялся прописать путь к папке templates не смог (ну пусть остается MQL4 / Files). Буду думать, как заставить твой советник сбрасывать память автоматически. Хотя если все сразу "патерны" ("8 советников за один проход") то, если раз в сутки, эта проблема решается (оптимизация до 24:00, сброс после), но боюсь в один прекрасный момент памяти может не хватить и все зависнит - тут почему-то от накопленной тиковой истории зависит при оптимизации (советник твой, все ограничения стоят, ничего в этом плане не переделывал). Здесь пожелание для базы тиковой истории - было бы интересно если архив в том числе был бы разбит помесячно. Хочу добиться "оптимизация - сброс" по очереди по одному. Т.к. советник не понимает, когда при установки на график задается время назад - тут же входит в режим оптимизации (советник стоит в шаблоне и время одно и тоже, при сбросе получается время назад - если это решу, то фактически задача будет решена). Кстати странно, почему этот вопрос никого не интересует, если брать стат. анализ (как наиболее "наукоприближенный"), то памяти точно не будет хватать. P.S. Надеюсь все понимают, что вопрос памяти абсолютно не зависит от компа, тут хоть "тресни" вопрос МКЛ-я .

Scriptong: Balbesik пишет: но как бы я не изгалялся прописать путь к папке templates не смог Есть такое понятие - "песочница терминала". Эта песочница ограничивается папками MQL4\Files в режиме онлайн и tester\files в режиме тестирования. В другие папки средствами MQL4 попасть нельзя. Чтобы это сделать, нужно использовать Windows API, т. е. нужно будет разрешить вызов функций из dll. При работе с функцией ChartApplyTemplate и не нужно пытаться как-то попадать в папку templates. Функция делает это автоматически. Поэтому в данном случае FileIsExists - лишнее. Balbesik пишет: Буду думать, как заставить твой советник сбрасывать память автоматически. В тестере это никак не сделать. В онлайн - да, может помочь.

Balbesik: Scriptong пишет: Есть такое понятие - "песочница терминала" Спасибо, Игорь! Ну я не программист и естественно в такие детали не вникаю - считаю это лишнее. Мах, что полагаю необходимо, приблизительно разбираться в коде, т.к."черный ящик" неприемлем при работе с деньгами, а в остальном должны разбираться "специально обученные люди" (специалисты по данному вопросу). Scriptong пишет: В тестере это никак не сделать. В онлайн - да, может помочь. В тестере этого и не надо, регулируется размером истории (я писал об этой странности). Если взять ТИКОВЫЙ график истории за год и поставить на оптимизацию Советником, то сразу "затык"- вся память"сьедается" на первом проходе. Ну а в остальном все нормально работает. Использовать шаблон, это первое, что мне пришло в голову. Картинки (в советнике Игоря) просто так на память скидываю и возможно кому-нибудь пригодится, т.к. до этого интересовался у "спецов" с Кодебазы, они предложили сбросить память за 300 баксов (уж не знаю, что там задумывалось). Это даже не предложение, а "хамло зажравшихся". По картинкам все понятно, возможно флаг - лишнее.

Scriptong: Balbesik пишет: они предложили сбросить память Ничего, кроме патча для терминала на ум не приходит. Но это уже хакерские штучки, а потому за подобное $300 это еще и немного



полная версия страницы