АвторСообщение
постоянный участник




Сообщение: 83
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 1
ссылка на сообщение  Отправлено: 07.06.13 11:44. Заголовок: Template_Lines_Color_Expert и FastTMA Line


День добрый, Scriptong!

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

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

Я взял за основу Template_Lines_Color_Expert и сделал советника. Целью было даже не торговать по FastTMALines, а отработать ее сигналы по смене тренда.
Логика такая: выставляем ордер при появлении краного или зеленого цвета, закрываем при смене цвета или появлении белого цвета. FastTMALine красиво рисует на графике, так что в тестере надеялся получить как минимум безубыток вместо которого постоянно рисуется

http://f4.s.qip.ru/NYzSvWel.png

Валюта UsdJpy m15 пятизнак, параметры торговли выставлены как параметры ЕА.
TP, SL нет - вход и выход по сигналам индикатора. Сделал запись всех сигналов в лог, вроде логика работает верно, а ордера выставляет поздно.

Может это какой-то общеизвестный факт, типа задержки с периодом, но здесь я читаю сигналы индюка, который уже цвет сменил....

Игорь, взгляните, пожалуйста, в чем может быть проблема?

Индикатор и советник в прицепе FastTMALine_EA.
Спасибо!


С уважением! Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 55 , стр: 1 2 3 4 All [только новые]


постоянный участник




Сообщение: 668
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 29.06.14 19:48. Заголовок: Scriptong пишет: Н..


Scriptong пишет:

 цитата:
Недавно мы с Вами уже говорили о подобной проблеме. Только не могу вспомнить, в какой теме.



Я тоже помню и думал что именно про этот индикатор, но здесь диалога не нашел


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



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


 цитата:
Более простое решение визуализации - перейти со сплошной линии на отдельные графические элементы. Вот так.



Спасибо, Игорь! Сейчас буду смотреть


С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 565
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 29.06.14 20:18. Заголовок: Genry пишет: Я тоже..


Genry пишет:

 цитата:
Я тоже помню и думал что именно про этот индикатор, но здесь диалога не нашел


Диалог пока не нашел, но нашел последний индикатор, в котором я эту проблему решал. Это цикл статей "Историческая волатильность".
В первой части статьи индикатор был сделан с учетом решения этой проблемы, но проблема ушла не полностью. Во второй части статьи проблема решена окончательно. Смотреть функцию SetIndicatorLineColor обоих индикаторов.

Genry пишет:

 цитата:
Но если расчет идет правильно, а в буфер информация пишется с ошибками, как тогда быть?


Поправка - правилен не только расчет, но и запись в буфер. То есть советник интерпретирует сигналы правильно. Главное, написать в коде правильные условия для проверки.
Проблема именно в отображении данных. Заключается эта проблема в следующем. Нужно отобразить линию между барами 1 и 2, между 2 и 3 не отображать линию, а между 3 и 4 - снова отображать:


Получаем следующую коллизию: значения линии на барах 2 и 3 должны присутствовать, чтобы линия была проведена между барами 1 и 2, 3 и 4, но в то же время эти значения должны отсутствовать для того, чтобы линия между барами 2 и 3 не отображалась. Получается, что погасить линию между барами 2 и 3 в такой ситуации невозможно при работе с одним буфером. Решение - разнести отображение линий на два буфера. Один буфер отображает линию 1-2, а второй - 3-4.


Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 669
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 29.06.14 21:15. Заголовок: Scriptong пишет: Эт..


Scriptong пишет:

 цитата:
Это цикл статей "Историческая волатильность". В первой части статьи индикатор был сделан с учетом решения этой проблемы, но проблема ушла не полностью. Во второй части статьи проблема решена окончательно. Смотреть функцию SetIndicatorLineColor обоих индикаторов.



Отлично! Спасибо, Игорь, теперь буду изучать решение.
Scriptong пишет:

 цитата:
Поправка - правилен не только расчет, но и запись в буфер. То есть советник интерпретирует сигналы правильно. Главное, написать в коде правильные условия для проверки. Проблема именно в отображении данных.



Да, решение нетривиальное

С уважением! Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 671
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 30.06.14 13:31. Заголовок: Игорь, день добрый! ..


Игорь, день добрый!

А можно разобрать еще один пример. Если есть потребность слить два индикатора, т.е. я не хотел бы вызывать azzx_ema_rsi_1_0clr_edit через
iCustom из другого индикатора, а вызывать его как внутреннюю функцию

RSIU= AZZX_EMA_RSI(Period, 0, i); // iCustom(0, 0,"azzx_ema_rsi_1_0clr_edit", Period, 0, i);
RSID= AZZX_EMA_RSI(Period, 1, i); // iCustom(0, 0,"azzx_ema_rsi_1_0clr_edit", Period, 1, i);

Что необходимо для этого изменить ? Есть какой-то общий алгоритм, или подход, преобразования индикатора в функцию?

Не очень понятен такой момент: индикатор инициализирует и заполняет свой буфер данными на истории, потом - по мере поступления тиков.
А когда он вызывается внутри, его надо инициализировать отдельно - например в блоке init() или заполнение данными идет при обращении к нему,
когда есть потребность в его данных?

Если можно - на примере вызова подопытного azzx_ema_rsi_1_0clr_edit



С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 566
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 30.06.14 20:46. Заголовок: Genry пишет: Есть к..


Genry пишет:

 цитата:
Есть какой-то общий алгоритм, или подход, преобразования индикатора в функцию?


Нет, общего алгоритма не существует.
Другое дело, что сделать можно. Такой подход позволит сэкономить оперативную память, но взамен он не будет давать возможность доступа ко всем значениям индикатора одновременно. Так, если от индикатора требуется последовательный доступ к значениям на барах 5, 4, 3, 2, 1, 0 и далее 0, 0, 0, то скорость расчета будет одинаковой как в случае с вызовом индикатора через iCustom, так и через функцию. Но если нам потребуетс произвольный доступ (5, 100, 12, 15, 10, 200 бары), то вариант с функцией будет заметно медленнее, т. к. при каждом новом вызове будет производиться расчет всех значений с начала истории до указанного бара.

Описанный недостаток характерен именно для индикаторов, которые рассчитывают данные на основании предыдущих своих данных. Те индикаторы, которым предыдущее свое значение не нужно (например, простое среднее), переделываются в функцию проще.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 676
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 30.06.14 21:31. Заголовок: Scriptong пишет: Оп..


Scriptong пишет:

 цитата:
Описанный недостаток характерен именно для индикаторов, которые рассчитывают данные на основании предыдущих своих данных. Те индикаторы, которым предыдущее свое значение не нужно (например, простое среднее), переделываются в функцию проще.



Вот оно как. Неожиданно. Я то думал, что когда код в одной упаковке это существенно увеличивает скорость.

Scriptong пишет:

 цитата:
если от индикатора требуется последовательный доступ к значениям на барах 5, 4, 3, 2, 1, 0 и далее 0, 0, 0, то скорость расчета будет одинаковой как в случае с вызовом индикатора через iCustom



Понятно, правда энтузиазма предыдущий пункт все же поубавил
Хотелось понять сам процесс. Игорь, если в обозримом будущем будет время расскажите, пожалуйста, в образовательных целях,
как урезать AZZX до функции. Надеюсь, он подходит для примера?


С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 570
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 01.07.14 18:34. Заголовок: Genry пишет: Хотело..


Genry пишет:

 цитата:
Хотелось понять сам процесс. Игорь, если в обозримом будущем будет время расскажите, пожалуйста, в образовательных целях,
как урезать AZZX до функции. Надеюсь, он подходит для примера?


Да, подходит. Это достаточно простой пример. Основная нагрузка пойдет на обвязку функции.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 586
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 03.07.14 15:39. Заголовок: Вот готовый исходник..


Вот готовый исходник (сервер gfile.ru сейчас недоступен, потому пришлось искать другой).

В пределах начальной истории этот индикатор ведет расчет правильнее, чем оригинал (у того на этой истории значения больше 100%). Чем ближе к текущей дате, тем расхождения показаний между индикаторами ниже, пока вовсе не сводятся к нулю.

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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 683
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 03.07.14 16:47. Заголовок: Scriptong пишет: Во..


Scriptong пишет:

 цитата:
Вот готовый исходник (сервер gfile.ru сейчас недоступен, потому пришлось искать другой).



Вау ! Спасибо, Игорь!

Сейчас буду изучать код, а потом расскажу с чем связаны эти изыскания, может что-то окажется интересным

С уважением! Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 687
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 05.07.14 11:50. Заголовок: Об изысканиях в асимметрии


Об изысканиях

На тему статистики был ряд полезных статей. Подход достаточно универсальный и все-равно что анализировать: цену, объемы, тики.
Когда я обдумывал применение асимметрии, наработок по объемам еще не было. Исследуя асимметрию, мы убедились, что если она возникла, то
ее появление - опережающий сигнал ценового движения.
Недостаток - направление движения не указывается, по сути асимметрия - потенциальная энергия рынка, а куда двинет кинетическая ...
Cейчас мы прорабатываем использование объемов и надеюсь это будет наиболее точный указатель. Полтора года назад в статье Вы, Игорь,
применили МА (что тогда дало вполне приличный результат).
Я решил попробовать для этой цели RSI, но не считать асимметрию по цене и направление смотреть по RSI, а считать асимметрию на показаниях RSI.

По сути, график, на котором стоится RSI, будет повторять собой ценовые графики, но будет несколько сглажен. Указанные на нем минимумы RSI будут
соответствовать ценовым минимумам, а максимумы RSI – ценовым максимумам.
Расчет асимметрии по RSI дает возможность выставлять ордер ближе к началу движения.



Остался самый важный вопрос - направление будущего движения
Чтобы получить ответ я начал считать асимметрию отдельно для Up и Down буфера RSI. Пересечения двух кривых и их экстремумы стали
сигналами открытия позиций. Но сигналы были слишком частые и чтобы уменьшить это количество пришлось кривые сгладить.
Картинка получилась вот такая, направление тренда показывает кривая идущая вниз, т.е. снизу зеленая - бай.



На скрине ниже отображены индикаторы, которые обсуждались в этой ветке: ADRSI (если пересекает уровень +10 - бай, -10 - селл), асимметрия RSI
и асимметрия на базе двухцветного RSI Lebo.

На индикаторе асимметрии RSI Lebo 4 линии: тонкие красная и зеленая - это асимметрия буфера Up и Down RSI, толстые - сглаженная асимметрия буфера
Up и Down RSI. По сути работают как быстрая и медленная линии и их пересечения, только сигнал растет на движении вниз,т.е. уменьшении
показателя асимметрии.
Более ранний сигнал дают не пересечения сглаженных линий, а их экстремумы. Еще более ранний - когда быстрая линия пересекает медленную, а
затем фиксируется экстремум.



Результат работы очень простого советника только на сигналах асимметрии RSI Lebo. ТФ = D1, период - 3 года, стартовый капитал 500$, лот 0.01
с 2007 года тест тоже проходит без слива.
Все на обычных пересечениях, вот определение сигнала бай (открытие и закрытие):

// - 2 - ============================ Генерация сигнала Buy =============================

if ((RSIs_Up1 < RSIs_Up2)&&(RSIs_Up1 < RSIm_Up1)) { //быстрая линия buy направлена вниз и ниже медленной линии
if ((RSIs_Up2 > RSIm_Up2)) { // и пересекла медленную линию
TrendDirection = 1; // направление - бай
Signal = 1; // сигнал - покупка
}
return;
}

if ((RSIs_Up1 > RSIs_Up2)&&(RSIs_Up1 > RSIm_Up1) && (RSIs_Up2 < RSIm_Up2)) { // быстрая пересекла медленную
// снизу вверх
if ((TrendDirection == 1)) { // Если до этого направление было восходящим

Signal = 2; // закрываем ордер buy
TrendDirection = 0; // отменяем сигнал покупки
}
return;
}



С уважением! Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 688
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 05.07.14 12:16. Заголовок: Игорь, и еще некотор..


Игорь, и еще некоторое добавление:

Уж если асимметрия - опережающий сигнал, а у нас есть тики разделенные на UpTick и DownTick, то может посмотреть как ведет себя асимметрия, эксцесс и
критерий Жака-Бера на этих показателях?
Пока не знаю, сами тики или показатели индикаторов на тиках лучше подходят для этой цели. Вот кумулятивная дельта или беар-булл-баланс интересны, но
они сбрасываются, что для расчета асимметрии - не очень
Теоретически на флете должна расти асимметрия, а подход который я показал выше должен дать направление. Плюсом такого подхода является довольно
простой анализ данных для принятия решения. А уж насколько это так - надо пробовать

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 589
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 06.07.14 16:02. Заголовок: Genry пишет: Уж есл..


Genry пишет:

 цитата:
Уж если асимметрия - опережающий сигнал, а у нас есть тики разделенные на UpTick и DownTick


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

Genry пишет:

 цитата:
Пока не знаю, сами тики или показатели индикаторов на тиках лучше подходят для этой цели. Вот кумулятивная дельта или беар-булл-баланс интересны, но
они сбрасываются, что для расчета асимметрии - не очень


Да, проблема точки отсчета - это вечная проблема. И тут нужно лишь придумывать что-то гениальное, не меньше.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 692
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 06.07.14 16:12. Заголовок: Scriptong пишет: ци..




 цитата:
Genry цитата:Уж если асимметрия - опережающий сигнал, а у нас есть тики разделенные на UpTick и DownTick
Scriptong пишет:Поправка: у нас есть отдельно база тиков и отдельно алгоритм для выделения в их среде Up и Down тиков (см. Принцип подсчета сил быков и медведей). Причем алгоритм не является сам по себе аксиомой. Возможно, он выбран неправильно.



Но все-равно уж больно лакомый кусок данных - тиковые объемы Если на них возникает асимметрия ( а она уж точно возникает ), то
можно получить довольно интересный опережающий торговый сигнал и ничего подобного я не видел в разработках на наших и зарубежных сайтах.
По RSI видно насколько раньше движения начинает расти асимметрия.

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 591
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 06.07.14 16:24. Заголовок: Genry пишет: Но все..


Genry пишет:

 цитата:
Но все-равно уж больно лакомый кусок данных - тиковые объемы Если на них возникает асимметрия ( а она уж точно возникает )


И к бабке не ходи - возникает. Иначе бы рынок просто стоял на месте. Это со временем тоже исследуем.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Сообщение: 710
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 11.07.14 10:28. Заголовок: Scriptong пишет: Эт..


Scriptong пишет:

 цитата:
Это со временем тоже исследуем.



Игорь, первый шаг Вы уже сделали в марте этого года в статье " Асимметрия и объемы"



Но в статье подход раздельный: мы смотрим на асимметрию цены и тиковый баланс отраженный в классе BearBullBalance:
"Класс BearBullBalance возвращает рассчитанные значения в переменные bullPower и bearPower. Это величины сил быков и медведей соответственно."

В случае с RSI я получил рабочие сигналы рассчитав асимметрию отдельно для буфера Up и Down RSI и сгладив их.
Интересно, что даст такой подход, если мы отдельно посчитаем асимметрию применительно к bullPower и bearPower

С уважением! Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 55 , стр: 1 2 3 4 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 20
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет