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

 
Ihor Herasko:

Очень странный вопрос. Это то же самое, что спросить: "Как включить табуретку при помощи напильника?".

Будем умничать или отвечать полноценно я тоже муму размножать могу !?

Что странного в вопросе каким образом можно поменять при помощи скрипта переменную индикатора !?

Не можете объяснить как это сделать так и скажите можете объясните и все !

 
Игорь:

Будем умничать или отвечать полноценно я тоже муму размножать могу !?

Что странного в вопросе каким образом можно поменять при помощи скрипта переменную индикатора !?

Не можете объяснить как это сделать так и скажите можете объясните и все !

У вас в индикаторе есть настройки. Зачем эти настройки менять умывальником?

Так понятнее, что Игорь имел в виду?

 
Игорь:

Что странного в вопросе каким образом можно поменять при помощи скрипта переменную индикатора !?

Именно в этом и странность. Чтобы понять, что именно в нем странного, я перевел все это на аналогию.

Скрипт - это одна программа. Индикатор - другая программа. Переменная в индикаторе - это ячейка памяти. В итоге нужно скриптом выковырять ячейку памяти (физически) и заменить ее другой. Такая постановка вопроса, естественно, вызывает недоумение.

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

 
Игорь:

Уважаемые подскажите пожалуйста !

Каким образом я могу с помощью скрипта поменять настройки(конкретную переменную) индикатора на графике !?

Если сие возможно кусочек кода бы желательно !!!

совсем уж штатных API нет для такого, но если очень хочется, то можно :-)

алгоритм примерно такой:

- пролистать все индикаторы чарта (включая подокна), чтобы собрать макс.инфы про меняемый индикатор (имя/порядковый номер)

- сохранить шаблон графика

- распарсить шаблон найдя в нём нужный вам индюк

- поменять требуемое значение

- ChartApplyTemplate

- (не забыть что все индикаторы и советники чарта будут перезагружены, и возможно ваш в том числе, и ещё придётся видимо копировать файлы через WinAPI)

в общем дикий гимор :-)

 
Игорь:  Уважаемые подскажите пожалуйста !
Каким образом я могу с помощью скрипта поменять настройки(конкретную переменную) индикатора на графике !?
Если сие возможно кусочек кода бы желательно !!!

Очень просто, часто так делаю. Удобство в том, что скрипту можно назначить клавишу. Например, Ctrl-z убрать линии,  Alt-z показать линии. Смотрите функции GlobalVariableSet() и GlobalVariableGet() Пример прикрепил.     Идею взял на другом ресурсе (исправлено модератором Artyom Trishkin)

Файлы:
xDEL.mq4  1 kb
 
STARIJ:

Очень просто, часто так делаю. Удобство в том, что скрипту можно назначить клавишу. Например, Ctrl-z убрать линии,  Alt-z показать линии. Смотрите функции GlobalVariableSet() и GlobalVariableGet() Пример прикрепил.     Идею взял на другом ресурсе (исправлено модератором Artyom Trishkin)

Пока удалял вашу ссылку на другой ресурс, почему-то пропал сам файл.

Прикрепите пожалуйста ещё раз.

 
Artyom Trishkin:  Пока удалял вашу ссылку на другой ресурс, почему-то пропал сам файл.

А что, на другие ресурсы запрещено ссылаться?  Видел такие ссылки во множестве... Или какой-то критерий есть?

 
Artyom Trishkin:

Пока удалял вашу ссылку на другой ресурс, почему-то пропал сам файл.

Прикрепите пожалуйста ещё раз.

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

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

 
Ihor Herasko:

Начнем с того, что неизвестно, открылся ли у ордер - проверок на этот счет ведь нет никаких. Поэтому проверять достижение Stop Loss или Take Profit ордера, факт открытия которого не установлен, бессмысленно.


Попытался, не работает, что-то не то видимо делаю(

              {
                    //Цена открытия ордера
                    price=High[1]+OrderPoint*Point;
                    //Стоп лосс
                    stoploss=Low[1]-Point;
                    //Тэйк профит
                    takeprofit=price+price-stoploss;
                    //Установка отложенного ордера (с присвоением magic номера 100, чтобы потом можно было их выбрать и удалить)
                    OrderSend(Symbol(),OP_BUYSTOP,1,price,3,stoploss,takeprofit,"PinBar Buy 1H",100,0,clrGreen);
                        //Проверяет открылись ли (0 - не открылись вроде) и сколько штук открыто (в данном случае не открылись), чтобы потом выбрать (уточнить) 
                        for (int i=0; i<OrdersTotal(); i++)
                        {
                        //Выбираем все неоткрытые отложенные ордера?
                        OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
                           //Если для выбранных ордеров с magic номером 100 текущая цена ушла ниже параметра стоплосса для этого отложенного ордера, то удаляем)
                           if ((OrderMagicNumber()==100)&&(Low[0]<stoploss)) 
                           {
                           OrderDelete(100);
                           }
                        }   
                 }
 
Ihor Herasko:

Именно в этом и странность. Чтобы понять, что именно в нем странного, я перевел все это на аналогию.

Скрипт - это одна программа. Индикатор - другая программа. Переменная в индикаторе - это ячейка памяти. В итоге нужно скриптом выковырять ячейку памяти (физически) и заменить ее другой. Такая постановка вопроса, естественно, вызывает недоумение.

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

Cпасибо и на этом

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