Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 621

 
Vitaly Gorbunov:
El objetivo debe justificar los medios. Si tienes el código fuente de todos los componentes necesarios, es más fácil combinar todo en un solo EA. Si esto no es posible, es necesario organizar la comunicación entre los módulos de todos los componentes, pero esto no es una tarea para principiantes.

La tarea principal para los principiantes es aprender a escribir las "fuentes de todos los componentes necesarios". De lo contrario, los novatos juntarán tanto... que nos acusarán de hackear los cerebros de los marcianos.

 
Alexey Viktorov:

La tarea principal para los principiantes, es aprender a escribir las "fuentes de todos los componentes necesarios". De lo contrario, los principiantes reunirán tanto... que se nos acusará de hackear cerebros de marcianos.

¡Eso es! En general, si quieres aprender a programar, debes empezar con programas sencillos, pasando gradualmente a otros más complejos. Entonces no habrá preguntas como quiero algo que ni siquiera conozco.

 
Hola, tengo el código fuente de un EA, por favor ayúdenme a agregarle alguna protección para que funcione sólo en una cuenta determinada.
Intenté hacerlo en https://www.mql5.com/ru/articles/1572
Quiero probarlo pero no consigo que funcione correctamente.
He encontrado un algoritmo completo, pero no entiendo dónde ponerlo
#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, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
Archivos adjuntos:
333.mq4  16 kb
 
helping123:
Buenas tardes, tengo el código fuente de un EA, pido ayuda para añadir una protección allí que sólo funcionaría en una determinada cuenta especificada.
Intentado hacer según https://www.mql5.com/ru/articles/1572
Quiero usarlo como referencia pero no estoy seguro de poder ayudar.
He encontrado un algoritmo completo, pero no entiendo dónde ponerlo

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading


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:

Realmente... ¿Cuál era la tarea original? Yo tampoco me acuerdo...:)))))))))))

¿Qué hacen ustedes, niños, agitando las aguas?

Sólo tienes que ir al MetaEditor, y escribir el comando: Archivo->Crear...

Esto hará que aparezca un formulario con diferentes archivos ficticios.

En concreto, serán archivos ficticios:

- Asesor experto

- Indicador personalizado

- Guión

- Biblioteca, etc.

Nos interesan los tres primeros elementos: Asesor Experto, Indicador Personalizado y Script.

Comparemos estos muñecos:

En Expert Advisor tenemos eventos:

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... todo, no más.

En el guión tenemos los eventos:

- OnStart() ... eso es todo, no más.

en el indicador tenemos eventos:

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... todo, no más.

La pregunta natural aquí es cómo hacer la conexión entre estos objetos.

Resulta que no hay ni puede haber conexión entre ellos en MQL, porque los flujos de datos entre estos objetos están completamente separados y no hay conexión entre ellos.

Además, me sorprende que los creadores de MQL nos den este hecho como "bueno".

Y si, por ejemplo, en C++ puedo llamar fácilmente al traductor de BASIC o Javascript o cualquier otro traductor y cambiar, por ejemplo, al entorno de programación de Android,

en el marco de MQL, ni siquiera puedo crear un llamado "script" en el entorno del "indicador", porque el entorno del indicador no acepta el comando OnStart().

¿Qué clase de fenómeno es éste?

Y hay más que suficiente de esas cosas feas en MQL.

Están a cada paso.

He leído la descripción de MQL - y estoy sorprendido, porque no hay nada más que hacer.

Todo el tiempo los creadores de MQL proclaman a viva voz que MQL es un descendiente de C++.

Por supuesto, lo siento, pero quiero preguntar a los creadores de MQL: - ¿Heredero de qué? - ¿En su fealdad?


Sin querer, comparo MQL con el famoso entorno de programación 1C. También dicen ser los herederos de C++.

Pero allí todo se hace de forma mucho más decente.

Y los objetos gráficos, y la comunicación entre módulos y mucho más.

¿Y qué hay en MQL?

No hay clases incorporadas, ni objetos relacionados con los hilos... ni nada de nada.

¡¡¡Y no he dicho nada de la cáscara matemática del terminal!!!

¡¡¡Eso es un tema aparte para las sorpresas!!!

 
neverness:

¿Qué hacen ustedes, niños, agitando las aguas?

Sólo tienes que ir al MetaEditor, y escribir el comando: Archivo->Crear...

Esto hará que aparezca un formulario con diferentes archivos ficticios.

...

¡¡¡Eso es un tema aparte para las sorpresas!!!

Nada le impide escribirOnStart() enOnCalculate(), como en el script

 
Vitaly Muzichenko:

Nada le impide escribirOnStart() enOnCalculate(), como en el script

Ejemplo de código de trabajo, sería tan amable de mostrarnos para construir una elipse u otro objeto en el entorno del indicador, por ejemplo.
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Por favor, muéstranos un ejemplo de un código que funcione para construir una elipse u otro objeto en un entorno de indicadores, por ejemplo.

Los indicadores son el lugar adecuado para construir objetos gráficos de cualquier tipo.

 
Vitaly Gorbunov:

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

Indicador como ejemplo de trabajo con objetos.

No somos niños, somos individuos perfectamente cuerdos.

No intentemos susurrar y engañarnos.

Una vez más repito mi pregunta:

Por favor, dame un código sencillo del indicador, en el que se construya algún objeto con script (OnStart(), por ejemplo, una elipse).

El procedimiento es el siguiente:

Usted entra en el MetaEditor. Haga clic en Archivo->Crear....

Haga clic en el Indicador.

Y en este entorno se introduce el código del objeto script (OnStart(), por ejemplo, ellipse).

¡¡¡Es tan sencillo!!!

¡¡¡Buena suerte!!!

Es decir, no se quiere simplemente lanzar el objeto sobre el formulario, o crear un objeto independiente de todo, como en tu ejemplo, sino introducir este objeto en el entorno computacional del indicador .

En otras palabras, el flujo de datos del indicador cambia - el objeto gráfico también cambia.

No como en tu ejemplo, es sólo un maniquí en el gráfico que no depende de nada.

Razón de la queja: