Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 622

 
neverness:

Мы же не дети, а вполне здравомыслящие индивидуумы.

Давайте не будем пытаться шельмовать, и обманывать друг друга. 

Еще раз повторяю свой вопрос:

Приведите, пожалуйста, простейший код индикатора, в котором строится некоторый скриптовый объект (OnStart(),например, эллипс).

То есть, процедура следующая:

Заходите в MetaEditor. Нажимаете Файл->Создать ...

Выбираете Индикатор. 

И в эту среду вписываете код скриптового  объекта (OnStart(), например, эллипса).

Это же так просто !!!

Желаю удачи!!!

Зачем вам вызывать скрипт из индикатора если весь необходимый функционал можно описать в индикаторе?
 
Vitaly Gorbunov:
Зачем вам вызывать скрипт из индикатора если весь необходимый функционал можно описать в индикаторе?

Это простейшая процедура в любой среде программирования. В С++ с этим вообще нет проблем.

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

Поскольку за поток входных данных в среде MQL отвечает индикатор, то и строим интересующие нас  объекты в этой среде.

Все логично.

Только MQL не дает возможности эти объекты построить.

И это несмотря на то, что и в С++, и в Бэйсике, и в JavaScript, да и в любой другой среде программирования с этим нет никаких проблем.

Что Вы за "необходимый функционал" собрались описывать, для меня вообще загадка.

И вообще.

Программисты обычно разговаривают ЯЗЫКОМ КОДОВ.

Если есть такая возможность - приведите ПРИМЕР КОДА !!!

Если нет такой возможности, то у Вас нет иной возможности, как согласиться со мной.

Все просто!

 

То есть, требуется не просто бросить объект на форму, или создать независимый ни  от чего объект, как в Вашем примере, а внедрить этот объект в вычислительную среду индикатора .

Другими словами, изменяется поток данных индикатора - изменяется и графический объект.

А не так, как в Вашем примере просто болванка на графике, которая ни от чего не зависит.


А какая проблема если индикатор знает как работать с этим объектом он будет работать с этим объектом. Вы конкретно можете описать задачу? А то обсуждаем сферического коня в вакууме.

 
neverness:

Это простейшая процедура в любой среде программирования. В С++ с этим вообще нет проблем.

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

Поскольку за поток входных данных в среде MQL отвечает индикатор, то и строим интересующие нас  объекты в этой среде.

Все логично.

Только MQL не дает возможности эти объекты построить.

И это несмотря на то, что и в С++, и в Бэйсике, и в JavaScript, да и в любой другой среде программирования с этим нет никаких проблем.

Что Вы за "необходимый функционал" собрались описывать, для меня вообще загадка.

И вообще.

Программисты обычно разговаривают ЯЗЫКОМ КОДОВ.

Если есть такая возможность - приведите ПРИМЕР КОДА !!!

Если нет такой возможности, то у Вас нет иной возможности, как согласиться со мной.

Все просто!

Не умение использование языка, не является поводом оскорбления.

Кодов полно в кодобазе, разных, на любой вкус и цвет.

MQL5 Code Base
MQL5 Code Base
  • www.mql5.com
Две одинаковые торговые системы (для лонгов и шортов), построенные на сигналах индикатора ColorSchaffJJRSXTrendCycle, которые можно настраивать различным образом в одном эксперте с возможностью менять размер предстоящей сделки в зависимости от результатов предыдущих сделок для данной торговой системы.
 

Строим графический объект по потоку данных. Положение объекта, его форма и другие характеристики зависят от значений этого потока.

Поскольку за поток входных данных в среде MQL отвечает индикатор, то и строим интересующие нас  объекты в этой среде.

Все логично.

Только MQL не дает возможности эти объекты построить.


Какой объект нельзя построить в индикаторе? 

 
Vitaly Gorbunov:

А какая проблема если индикатор знает как работать с этим объектом он будет работать с этим объектом. Вы конкретно можете описать задачу? А то обсуждаем сферического коня в вакууме.

Все просто.

Берем событие индикатора

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

и, например, берем поток значений ореn[], и если  значение в этом потоке больше заданного, то строим некоторый графический скриптовый объект в определенной вычисленной точке графика, и с вычисленными характеристиками.

Все элементарно просто.

То есть, нам требуется  в изменяемое поле данных OnCalculate() внедрить скриптовый объект OnStart(), и построить интересующий нас объект с вычисленными значениями.

Это же элементарно просто.

Как это сделать в MQL ???

 
Vitaly Muzichenko:

Не умение использование языка, не является поводом оскорбления.

Кодов полно в кодобазе, разных, на любой вкус и цвет.

Неумение вместе пишется ->  https://ru.wiktionary.org/wiki/неумение

Я уже сказал ранее, что я намеренно умолчал о "математической оболочке" MQL.

Это касается и тех самых "разных кодов",  которых "полно в кодобазе", и которые на любой "вкус и цвет".

Так вот, уважаемый Виталий!

Подобные высказывания в мой адрес я сам воспринимаю как оскорбления.

И будьте любезны получить порцию ответа.

Так вот.

Как Вы правильно заметили, всевозможных "чудесных кодов", обеспечивающих 1000%-прибыли в кодобазе действительно более чем достаточно.

Но вся проблема в том, насколько правдива та информация, которую нам предлагают авторы этих кодов.

И если мы математически строго сформулируем задачу построения "беспроигрышных советников", то эта задача будет звучать примерно так:

Формулировка задачи:

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

Решение задачи.

Так вот.

Что касается чисто математического решения этой задачи, то оказывается, что для любого советника можно указать такую комбинацию

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

Разумеется, я не буду здесь приводить чисто математическое решение этой задачи, но можете не сомневаться в том, что это действительно так.

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


И если мы теперь подойдем к этому вопросу с юридической точки зрения, то  все предложения по продаже любого советника являются не более чем очередной "мошенической схемой", 

поскольку ни один из советников не в состоянии обеспечить "беспроигрышный вариант".


Поэтому, уважаемый Виталий, никакое "умение использования языка", и никакое умение "использования кодов" не ограждает трейдера от убытков.

И, уж тем более, не может быть оскорблением.

Поэтому в следующий раз подбирайте выражения более аккуратно. 

 
Vitaly Gorbunov:

Какой объект нельзя построить в индикаторе? 

Ну, постройте хоть какой-нибудь.

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

Хотелось бы увидеть хоть что-нибудь.

Я же все-таки "новичек" в MQL. Может я чего-то не знаю, или упустил из виду.

 
neverness:

Все просто.

Берем событие индикатора

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

и, например, берем поток значений ореn[], и если  значение в этом потоке больше заданного, то строим некоторый графический скриптовый объект в определенной вычисленной точке графика, и с вычисленными характеристиками.

Все элементарно просто.

То есть, нам требуется  в изменяемое поле данных OnCalculate() внедрить скриптовый объект OnStart(), и построить интересующий нас объект с вычисленными значениями.

Это же элементарно просто.

Как это сделать в MQL ???

Ну так стройте этот объект и потом контролируйте его.Чего сложного?

Давайте так - опишите какую либо простую задачу а я в понедельник постараюсь её реализоваь.

 
Vitaly Gorbunov:

Ну так стройте этот объект и потом контролируйте его.Чего сложного?

Давайте так - опишите какую либо простую задачу а я в понедельник постараюсь её реализовать.

Я же уже описал простейшую задачу.

Открываем редактор MetaEditor.

Нажимаем кнопочку Файл->Создать.

В выпрыгивающем поле выбираем Индикатор.

И в поле индикатора OnCalculate() внедряем любой скриптовый объект с событием OnStart().

Лично я не знаю, как это сделать. Ну, например так:

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
for(int i = 1; i < 100;i++)

      {

      if(open[i] > Max)

            {

            OnStart()

           И здесь пишем скрипт построения интересующего нас объекта. Например, эллипса, или буквы на графике, или еще чего-нибудь

            }  //if(open)

      }  //for(int i)  
//--- return value of prev_calculated for next call
   return(rates_total);
  } // OnCalculate

Как-то так, наверное, это должно выглядеть.

Но подобный код транслятор MQL не воспринимает никак.

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