Вопросы от "чайника" - страница 96

 
tol64:

Вспомнил про свой вопрос Ренату. Может кто-нибудь пояснить, что имелось ввиду под:

Если я использую IndicatorRelease(), значит я совершаю огромную и концептуальную ошибку.

 Почему?

Потому что комментарий был дан Ренатом в отношении конкретной ситуации использования  функции IndicatorRelease(), а именно: Карлсон на каждом тике создавал и удалял хендлы индикаторов.

Вот здесь ещё посмотрите обсуждение: https://www.mql5.com/ru/forum/1111/81949#comment_81949 

 
Yedelkin:

Потому что комментарий был дан Ренатом в отношении конкретной ситуации использования  функции IndicatorRelease(), а именно: Карлсон на каждом тике создавал и удалял хендлы индикаторов.

Вот здесь ещё посмотрите обсуждение: https://www.mql5.com/ru/forum/1111/81949#comment_81949 

А, ну если про это имелось ввиду, то тогда понятно. Хэндлы индикаторов я создаю один раз, в самом начале.
 
В то время вопрос состоял в том,чтобы период средней адаптировался к рынку во время работы.По определенным критериям менялся период средней.Старый хендл удалялся.Новый создавался.
 
Karlson:
В то время вопрос состоял в том,чтобы период средней адаптировался к рынку во время работы.По определенным критериям менялся период средней.Старый хендл удалялся.Новый создавался.
А на каком решении остановили свой выбор?
 
Karlson:
В то время вопрос состоял в том, чтобы период средней адаптировался к рынку во время работы. По определенным критериям менялся период средней. Старый хендл удалялся. Новый создавался.

В виду специфики создания собственного потока индикатора, такое решение неприемлемо, этот вопрос уже обсуждался на заре языка (ещё при бета тестировании).

Разумным в данном случае будет перенести расчёт индикатора в советник и рассчитывать только последние данные, а не весь массив имеющихся исторических данных. Тут конечно есть сложность, такое решение не позволяет использовать ex5 индикаторы не зная кода, и требует понимания алгоритма расчёта (чтоб перенести его и адаптировать под новые требования).

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

 
tol64:
А на каком решении остановили свой выбор?

Создание-удаление по тикам это лишь проверка принципа была.В реальности в моем случае оптимизацию чаще одного раза в месяц делать нет смысла.Стоит это того ,чтобы что то разрабатывать ..Для меня не принципиально.По началу я вообще только создавал хендлы.Подсказали,что еще надо удалять.Стал удалять.Ренат такое прокомментировал :) Вообще написано,что неиспользуемые хендлы удаляются со временем вроде.Поэтому наверное создание нового раз в месяц не критично.Ну да ладно.Возможные варианты решения были такие :

1.Прикрутить самоадаптацию по генетике ,как в статье Rich'a  

https://www.mql5.com/ru/articles/334 

но тут мне не хватает знаний,а и цели особой не вижу. 

2.Расчеты делать прямо в советнике ,без хендлов.Благо средняя это SMA.

3.Использовать АМА или Vidya.Что и было сделано в новых версиях. 

 

Но это все мои частные решения.Не решающие вопрос.Думаю Urain ответил.  

Доктор Трейдлав, или Как я перестал беспокоиться и написал самообучающийся эксперт
Доктор Трейдлав, или Как я перестал беспокоиться и написал самообучающийся эксперт
  • 2011.10.27
  • Roman Zamozhnyy
  • www.mql5.com
Чуть более года назад joo дал нам в своей статье "Генетические алгоритмы - это просто!" инструмент для реализации Генетического алгоритма на MQL5. Воспользуемся же этим инструментом и напишем эксперт, который при наступлении каких-то граничных условий произведет Генетическую оптимизацию своих же параметров...
 
Karlson:

Но это все мои частные решения.Не решающие вопрос.Думаю Urain ответил.  

Да, спасибо, за ответы.
 

Добрый день

Подскажите, как использовать библиотеку TimeSeries.mqh, в частности класс  CiOpen ....

Например: График - Н1,  инструмент - "EURUSD"... получить цену открытия с текущего - Н1  и старших таймфреймов - H4 и D1 бара № 5 .....

Теперь мысли вслух...

- подключаем файл библиотеки

#include <Indicators\TimeSeries.mqh>

- объявляем массив:

double Open[];

- создаем экземпляр класса:

CiOpen  iOpen;

(а может "правильнее"  так..?):

CiOpen  * iOpen;

- создаем таймсерию:

iOpen.Create("EURUSD", PERIOD_H4);

.... и все - дальше не понятно....  метод GetData возвращает или -1 или >= 0 - (а мне-то  нужно значение цены открытия бара №5)

iOpen.GetData(5, 1, Open);

Вопрос 1. где искать найденные (с таким трудом) данные цены открытия (в каком месте массива Open[] )...????

Вопрос 2. для таймфрейма  D1 надо объявлять другой массив и создавать свой экземпляр класса (или можно обойтись одним)...????


С уважением,  erkov.....



Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 

Здравствуйте.

Подскажите пожалуйста как программно установить в определенный момент на графике вертикальную линию?

 Спасибо. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
Alfff:

Здравствуйте.

Подскажите пожалуйста как программно установить в определенный момент на графике вертикальную линию?

 Спасибо. 

Посмотрите функцию ObjectCreate().