Вопрос на засыпку. Как по хэндлу индикатора узнать символ и таймфрейм, для которых он создан?
В MQL API имеется функция IndicatorParameters, чтобы прочитать параметры индикатора, но её недостаточно: какой смысл знать, например, период, если не известен символ и таймфрейм? Или это упущение, или я не могу найти, как это делается - дайте плиз ссылку.
Вопрос на засыпку. Как по хэндлу индикатора узнать символ и таймфрейм, для которых он создан?
В MQL API имеется функция IndicatorParameters, чтобы прочитать параметры индикатора, но её недостаточно: какой смысл знать, например, период, если не известен символ и таймфрейм? Или это упущение, или я не могу найти, как это делается - дайте плиз ссылку.
Igor Makanu:
никак
Можно.
bool FindIndicatorByHandle(long handle, string &symbol, ENUM_TIMEFRAMES &timeframe, long &ChartId, int &sub_win, string &Name) {
long chart_id =ChartFirst();
while (chart_id!=-1) {
int total_sub = (int)ChartGetInteger(chart_id,CHART_WINDOWS_TOTAL);
int total_ind;
for(int i=0; i<total_sub; i++) {
total_ind = ChartIndicatorsTotal(chart_id,i);
for (int j=0; j<total_ind; j++) {
string name = ChartIndicatorName(chart_id,i,j);
if (ChartIndicatorGet(chart_id,i,name)== handle) {
ChartId=chart_id;
symbol= ChartSymbol(chart_id);
timeframe=ChartPeriod(chart_id);
sub_win=i;
Name=name;
returntrue;
}
}
}
chart_id=ChartNext(chart_id);
}
returnfalse;
}
но все равно, проще хендл индикатора привязывать сразу к имени индикатора в своем коде, хотя возможно задача узнать, что пользователь самостоятельно запускал
Кстати, я вспомнил, что Вы любитель ренко. Судя по Вашему вопросу, Вы уже вплотную подошли к пониманию того, что Ваше прошлое утверждение о невозможности применять индикаторы и накладывать эксперты на ренко, сформированный на канвас, - является ошибочным. Ура!
Это прокатит только для интерфейсных индикаторов (наложенных пользователем вручную), но не подойдет для тех, что созданы из советников. Задача максимум в том, чтобы путем включения одного инклуда в исходный код советника внедрить возможность виртуальной автооптимизации. Сейчас это возможно только с плясками с бубном (дополнительная правка исходников или некие умолчания (только текущий _Symbol/_Period), которые сработают не всегда).
Что касается индикаторов и экспертов на канвасах, то чисто технически всё возможно сделать, но вопрос в том, зачем с этим заморачиваться. Назначение канвасов - другое. А для кастом-котировок есть готовое решение, куда индикаторы и эксперты вписываются стандартным способом.
Это прокатит только для интерфейсных индикаторов (наложенных пользователем вручную), но не подойдет для тех, что созданы из советников. Задача максимум в том, чтобы путем включения одного инклуда в исходный код советника внедрить возможность виртуальной автооптимизации. Сейчас это возможно только с плясками с бубном (дополнительная правка исходников или некие умолчания (только текущий _Symbol/_Period), которые сработают не всегда).
Что касается индикаторов и экспертов на канвасах, то чисто технически всё возможно сделать, но вопрос в том, зачем с этим заморачиваться. Назначение канвасов - другое. А для кастом-котировок есть готовое решение, куда индикаторы и эксперты вписываются стандартным способом.
Да, если индикатор создан функциями IndicatorCreate, iCustom, iMA, iMACD, i... и является беспризорным, т.е. не прикреплен к любому чарту с помощью ChartIndicatorAdd, то, действительно, нельзя узнать ТФ и символ этого индикатора, если этот индикатор создавался не Вами. Если Вами, тогда Вы должны знать символ и ТФ в момент создания индикатора и получения хэндла. Если индикатор не ваш, то вроде бы и не логично вмешиваться в чужой огород, тем более когда на чартах этого индикатора нет и он является служебным. Но если индикатор, символ и ТФ которого нужно контролировать по его хэндлу, написан Вами, но используется не Вами или используется бесконтрольно, то можно сделать в нем дополнительный буфер, в котором вшит (через union например) и текущий его ТФ и символ. Тогда даже при простом перебирании хэндлов с помощью вашей специальной функции с использованием CopyBuffer, вы можете узнать ваш ли это индикатор, а если ваш, то считать его текущий символ и ТФ. Но, согласен с Вами, если бы у IndicatorParameters была возможность снимать ТФ и символ, было бы гораздо проще. Явно этого не хватаей этой функции. Вряд ли отсутствие этого связано с безопасностью, т.к. по незнакомому хэндлу итак имеется полный доступ с содержимому индикатора кроме ТФ и символа.
Ответы на столь наивные вопросы так очевидны, что невольно приходят на ум подозрения о самопиаре. Поверьте, был бы очень рад ошибаться, но .....
нее - я действительно в первый раз стал использовать сервис Сигналы... и что я вижу? то так считают проценты то эдак... а на следующей неделе что мне ждать в виджете? опять 0%???
у меня возникает когнитивный диссонанс - когда я тут вижу одно - а тут я вижу другое - и чему мне верить тогда????
Выберите подходящую торговую систему и оформите на неё подписку в пару кликов. Замониторенные счета сопровождаются подробной статистикой и торговой историей. Посмотрите обучающий видеоролик о том, как подписаться на Сигнал...
Вопрос на засыпку. Как по хэндлу индикатора узнать символ и таймфрейм, для которых он создан?
В MQL API имеется функция IndicatorParameters, чтобы прочитать параметры индикатора, но её недостаточно: какой смысл знать, например, период, если не известен символ и таймфрейм? Или это упущение, или я не могу найти, как это делается - дайте плиз ссылку.
Вопрос на засыпку. Как по хэндлу индикатора узнать символ и таймфрейм, для которых он создан?
никак
в прошлом году @fxsaber задавал такой же вопрос, но применительно к файлам - как по хендлу узнать имя файла, решения не существует
только свой контейнер использовать для этих целей, вот нашел предложенный контейнер для для хендла файла от @fxsaber
Вопрос на засыпку. Как по хэндлу индикатора узнать символ и таймфрейм, для которых он создан?
В MQL API имеется функция IndicatorParameters, чтобы прочитать параметры индикатора, но её недостаточно: какой смысл знать, например, период, если не известен символ и таймфрейм? Или это упущение, или я не могу найти, как это делается - дайте плиз ссылку.
никак
Можно.
Тестовый скрипт прилагаю.
Результат работы скрипта:
Можно.
наверное будет работать Ваш код
я никогда не пользовался ChartIndicatorGet(), только сейчас в справке нашел
но все равно, проще хендл индикатора привязывать сразу к имени индикатора в своем коде, хотя возможно задача узнать, что пользователь самостоятельно запускал
спасибо! познавательно
Кстати, я вспомнил, что Вы любитель ренко.
Судя по Вашему вопросу, Вы уже вплотную подошли к пониманию того, что Ваше прошлое утверждение о невозможности применять индикаторы и накладывать эксперты на ренко, сформированный на канвас, - является ошибочным.
Ура!
Можно.
Тестовый скрипт прилагаю.
Результат работы скрипта:
Это прокатит только для интерфейсных индикаторов (наложенных пользователем вручную), но не подойдет для тех, что созданы из советников. Задача максимум в том, чтобы путем включения одного инклуда в исходный код советника внедрить возможность виртуальной автооптимизации. Сейчас это возможно только с плясками с бубном (дополнительная правка исходников или некие умолчания (только текущий _Symbol/_Period), которые сработают не всегда).
А в принципе не понятно, почему функция IndicatorParameters не возвращает два самых главных мета-параметра.
Что касается индикаторов и экспертов на канвасах, то чисто технически всё возможно сделать, но вопрос в том, зачем с этим заморачиваться. Назначение канвасов - другое. А для кастом-котировок есть готовое решение, куда индикаторы и эксперты вписываются стандартным способом.
подскажите - как же правильно рассчитывается прибыль в виджетах и сигналах...
на прошлой неделе - вернее за первые 5 дней торговли я сделал 1000%, потом на следующий день
сделал ещё 1000% - это всё верно отражалось в сигналах и виджетах
так... потом наступила вторая неделя торговли - и тут Бац... и процентов оказалось всего +39%
ну хорошо - думаю ещё поторгую чуток.. и закончу на сегодня - закончил 0 и бац... уже у меня не +39% а все 98%... в на приросте так ваабще +4000%
так сколько же у меня процентов??? 39 или 98 или я должен верить своим глазам - так все 4000%
Это прокатит только для интерфейсных индикаторов (наложенных пользователем вручную), но не подойдет для тех, что созданы из советников. Задача максимум в том, чтобы путем включения одного инклуда в исходный код советника внедрить возможность виртуальной автооптимизации. Сейчас это возможно только с плясками с бубном (дополнительная правка исходников или некие умолчания (только текущий _Symbol/_Period), которые сработают не всегда).
А в принципе не понятно, почему функция IndicatorParameters не возвращает два самых главных мета-параметра.
Что касается индикаторов и экспертов на канвасах, то чисто технически всё возможно сделать, но вопрос в том, зачем с этим заморачиваться. Назначение канвасов - другое. А для кастом-котировок есть готовое решение, куда индикаторы и эксперты вписываются стандартным способом.
Да, если индикатор создан функциями IndicatorCreate, iCustom, iMA, iMACD, i... и является беспризорным, т.е. не прикреплен к любому чарту с помощью ChartIndicatorAdd, то, действительно, нельзя узнать ТФ и символ этого индикатора, если этот индикатор создавался не Вами. Если Вами, тогда Вы должны знать символ и ТФ в момент создания индикатора и получения хэндла.
Если индикатор не ваш, то вроде бы и не логично вмешиваться в чужой огород, тем более когда на чартах этого индикатора нет и он является служебным.
Но если индикатор, символ и ТФ которого нужно контролировать по его хэндлу, написан Вами, но используется не Вами или используется бесконтрольно, то можно сделать в нем дополнительный буфер, в котором вшит (через union например) и текущий его ТФ и символ. Тогда даже при простом перебирании хэндлов с помощью вашей специальной функции с использованием CopyBuffer, вы можете узнать ваш ли это индикатор, а если ваш, то считать его текущий символ и ТФ.
Но, согласен с Вами, если бы у IndicatorParameters была возможность снимать ТФ и символ, было бы гораздо проще. Явно этого не хватаей этой функции. Вряд ли отсутствие этого связано с безопасностью, т.к. по незнакомому хэндлу итак имеется полный доступ с содержимому индикатора кроме ТФ и символа.
подскажите - как же правильно рассчитывается прибыль в виджетах и сигналах...
на прошлой неделе - вернее за первые 5 дней торговли я сделал 1000%, потом на следующий день
сделал ещё 1000% - это всё верно отражалось в сигналах и виджетах
так... потом наступила вторая неделя торговли - и тут Бац... и процентов оказалось всего +39%
ну хорошо - думаю ещё поторгую чуток.. и закончу на сегодня - закончил 0 и бац... уже у меня не +39% а все 98%... в на приросте так ваабще +4000%
так сколько же у меня процентов??? 39 или 98 или я должен верить своим глазам - так все 4000%
Ответы на столь наивные вопросы так очевидны, что невольно приходят на ум подозрения о самопиаре. Поверьте, был бы очень рад ошибаться, но .....
Ответы на столь наивные вопросы так очевидны, что невольно приходят на ум подозрения о самопиаре. Поверьте, был бы очень рад ошибаться, но .....
нее - я действительно в первый раз стал использовать сервис Сигналы... и что я вижу? то так считают проценты то эдак... а на следующей неделе что мне ждать в виджете? опять 0%???
у меня возникает когнитивный диссонанс - когда я тут вижу одно - а тут я вижу другое - и чему мне верить тогда????
как это так в виджетах расчитываются проценты???