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

 
Vitaly Gorbunov:
Цель должна оправдывать средства. Если есть исходники всех необходимых компонентов то проще всё соединить в одном советнике. Если такой возможности нет то необходимо организовывать коммуникацию между модулями всех компонентов, но эта задача не для новичков.

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

 
Alexey Viktorov:

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

Это да! По хорошему если хочешь научиться программировать то начинать надо с простых программ переходя постепенно на более сложные. Тогда не будет возникать вопросов типа хочу чего то такого чего сам даже не знаю.

 
Добрый день, есть исходный код советника, прощу пожалуйста помощи добавить туда защиту что бы он работал только на определенном заданном счёте.
Пробовал сделать по сайту https://www.mql5.com/ru/articles/1572 
Но у меня ни как не получается выручите пожалуйста.
Вот я нашел готовый алгоритм но куда его вставить я не понимаю
#property copyright "Copyright © 2009, Sergey Kravchuk"
#property link      "http://forextools.com.ua"

int start()
{  
  string char[256]; int i;

  for (i = 0; i < 256; i++) char[i] = CharToStr(i);
  // номер счета на котором разрешено работать эксперту
  int    AllowedAccountNo = StrToInteger(/* 49153 */ char[52]+char[57]+char[49]+char[53]+char[51]); 
  string AllowedServer = /* UWC-Demo.com */ char[85]+char[87]+char[67]+char[45]+char[68]+
  char[101]+char[109]+char[111]+char[46]+char[99]+char[111]+char[109];

  if (AccountNumber() != AllowedAccountNo || AccountServer() != AllowedServer) 
  {
    Print("Вы не имеете права использовать этот скрипт!");
    return(1);
  }
  
  Print("Вы можете использовать этот скрипт!");
}
Защищайтесь, господа разработчики!
Защищайтесь, господа разработчики!
  • www.mql5.com
Вопросы защиты своей интеллектуальной собственности все еще остаются большой проблемой. В статье описаны основные принципы защиты разработок на MQL4, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
Файлы:
333.mq4  16 kb
 
helping123:
Добрый день, есть исходный код советника, прощу пожалуйста помощи добавить туда защиту что бы он работал только на определенном заданном счёте.
Пробовал сделать по сайту https://www.mql5.com/ru/articles/1572&nbsp;
Но у меня ни как не получается выручите пожалуйста.
Вот я нашел готовый алгоритм но куда его вставить я не понимаю

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий


FXwin, 2018.09.14 11:48

bool StopTrade = true;

int start() {
//---------------------------------------------------------------------------------------------------------------+
//  привязка к конкретному торговому счету
  if(AccountNumber() != 555777){ 
     Comment("Invalid account... forex-time@mail.ru");
  if(StopTrade) Alert("Invalid account... forex-time@mail.ru"); StopTrade=false; return(0);}
//---------------------------------------------------------------------------------------------------------------+  

 
Alexey Viktorov:

Действительно... Какая задача стояла изначально? Я тоже не помню...:)))))))))))

Что Вы как дети, в самом деле, воду баламутите?

Просто зайдите в редактор MetaEditor, и наберите команду: Файл->Создать...

В результате выскочит форма с разными болванками.

В частности это будут болванки:

- Советник

- Пользовательский индикатор

- Скрипт

- Библиотека и т.д.

Нас интересуют первые три пункта: Советник, Пользовательский индикатор и Скрипт.

Сравниваем эти болванки:

в советнике мы имеем события:

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() … все, больше нет. 

в скрипте мы имеем события:

- OnStart() …  все, больше нет.

в индикаторе мы имеем события:

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() … все, больше нет.

Здесь вполне естественным является вопрос о том, каким образом осуществлять связь между этими объектами.

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

Более того, меня удивляет тот факт, что создатели MQL выдают этот факт нам как "благо".

И если, например, в рамках С++ я могу спокойно вызвать транслятор Бэйсика, или JavaSсript, или любой другой, и перейти, например, в среду программирования Android,

то в рамках MQL у меня нет возможности даже создать так называемый "скрипт" в среде "индикатора", поскольку среда индикатора не воспринимает команду OnStart().

Это что за уродство ???

И таких уродств в MQL более чем достаточно.

Они на каждом шагу.

Я читаю описание MQL - и удивляюсь, поскольку больше ничего не остается делать. 

И при этом создатели MQL громогласно заявляют, что MQL является наследником С++.

Я извиняюсь, конечно, но хотелось бы спросить у создателей MQL:  - Наследником в чем? - В уродствах?


Я невольно сравниваю MQL с  известной средой программирования 1С. Они тоже утверждают, что являются наследниками С++

 Но там все сделано гораздо более прилично.

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

А в MQL что?

Ни встроенных классов, ни объектов, связанных с потоком,  … и вообще ничего. 

И это я еще ничего не сказал о математической оболочке терминала!!!

Это вообще отдельная тема для удивлений!!!

 
neverness:

Что Вы как дети, в самом деле, воду баламутите?

Просто зайдите в редактор MetaEditor, и наберите команду: Файл->Создать...

В результате выскочит форма с разными болванками.

...

Это вообще отдельная тема для удивлений!!!

Ничего не мешает в OnCalculate() написать функцию OnStart(), как это в скрипте

 
Vitaly Muzichenko:

Ничего не мешает в OnCalculate() написать функцию OnStart(), как это в скрипте

Пример рабочего кода, будьте любезны, покажите нам, чтобы в среде индикатора, например, построить эллипс, или другой объект.
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Пример рабочего кода, будьте любезны, покажите нам, чтобы в среде индикатора, например, построить эллипс, или другой объект.

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

 
Vitaly Gorbunov:

https://www.mql5.com/ru/code/19220

Индикатор как пример работы с объектами

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

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

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

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

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

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

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

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

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

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

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

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

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