Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 621

 
Vitaly Gorbunov:
Das Ziel muss die Mittel heiligen. Wenn Sie den Quellcode aller erforderlichen Komponenten haben, ist es einfacher, alles in einem EA zu kombinieren. Wenn dies nicht möglich ist, muss die Kommunikation zwischen den Modulen aller Komponenten organisiert werden, aber das ist keine Aufgabe für Anfänger.

Die Hauptaufgabe für Anfänger besteht darin, zu lernen, wie man die "Quellen für alle notwendigen Komponenten" schreibt. Andernfalls werden Neulinge so viel sammeln ... dass wir beschuldigt werden, die Gehirne von Marsmenschen zu hacken.

 
Alexey Viktorov:

Die Hauptaufgabe für Anfänger besteht darin, zu lernen, wie man die "Quellen aller benötigten Komponenten" schreibt. Andernfalls werden die Anfänger so viel sammeln ... dass man uns vorwerfen wird, wir würden die Gehirne von Marsmenschen hacken.

Das ist richtig! Im Allgemeinen sollten Sie, wenn Sie programmieren lernen wollen, mit einfachen Programmen beginnen und sich nach und nach zu komplexeren Programmen vorarbeiten. Dann gibt es keine Fragen wie "Ich will etwas, das ich gar nicht kenne".

 
Guten Tag, ich habe den Quellcode für den Expert Advisor, bitte helfen Sie mir, einen Schutz hinzuzufügen, damit er nur auf einem bestimmten Konto funktioniert.
Ich habe versucht, es auf https://www.mql5.com/ru/articles/1572 zu tun.
Ich möchte es ausprobieren, aber ich kann es nicht richtig zum Laufen bringen.
Ich habe einen vollständigen Algorithmus gefunden, aber ich weiß nicht, wo ich ihn einfügen soll
#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, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
Dateien:
333.mq4  16 kb
 
helping123:
Guten Tag, habe den Quellcode eines EA, bitte um Hilfe, um dort einen Schutz hinzuzufügen, dass es nur auf einem bestimmten angegebenen Konto funktionieren würde.
Versucht, gemäß https://www.mql5.com/ru/articles/1572 zu handeln.
Ich möchte es als Referenz verwenden, aber ich bin nicht sicher, ob ich helfen kann.
Ich habe einen vollständigen Algorithmus gefunden, aber ich weiß nicht, wo ich ihn einfügen soll

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien


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:

Wirklich... Was war die ursprüngliche Aufgabe? Ich erinnere mich auch nicht...:)))))))))))

Was macht ihr Kinder eigentlich, wenn ihr das Wasser aufwirbelt?

Gehen Sie einfach in den MetaEditor, und geben Sie den Befehl ein: Datei->Erstellen...

Daraufhin wird ein Formular mit verschiedenen Dummy-Dateien angezeigt.

Dabei handelt es sich vor allem um die Dongles:

- Expert Advisor

- Benutzerdefinierter Indikator

- Skript

- Bibliothek, usw.

Wir sind an den ersten drei Punkten interessiert: Expert Advisor, Custom Indicator und Script.

Vergleichen wir diese Dummies:

In Expert Advisor haben wir Ereignisse:

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... alles, nicht mehr.

Im Skript gibt es die Ereignisse:

- OnStart() ... das war's, mehr nicht.

im Indikator haben wir Ereignisse:

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... alles, nicht mehr.

Hier stellt sich natürlich die Frage, wie die Verbindung zwischen diesen Objekten hergestellt werden kann.

Es stellt sich heraus, dass es in MQL keine Verbindung zwischen ihnen gibt und geben kann, da die Datenströme zwischen diesen Objekten vollständig getrennt sind und es keine Verbindung zwischen ihnen gibt.

Außerdem bin ich überrascht, dass die Macher von MQL uns diese Tatsache als "gut" verkaufen.

Und wenn ich z. B. in C++ den BASIC-Übersetzer oder Javascript oder einen anderen Übersetzer aufrufe, kann ich z. B. zur Android-Programmierumgebung wechseln,

im Rahmen von MQL kann ich nicht einmal ein sogenanntes "Skript" in der "Indikator"-Umgebung erstellen, da die Indikator-Umgebung den Befehl OnStart() nicht akzeptiert.

Was für ein Freak ist das?

Und von solchen hässlichen Dingen gibt es in MQL mehr als genug.

Sie sind bei jedem Schritt dabei.

Ich habe die Beschreibung von MQL gelesen - und ich bin überrascht, denn es gibt nichts anderes zu tun.

Die ganze Zeit über verkünden die Macher von MQL lautstark, dass MQL ein Nachkomme von C++ ist.

Es tut mir natürlich leid, aber ich möchte die MMS-Ersteller fragen: - Erbe wovon? - In seiner Hässlichkeit?


Ich vergleiche MQL ungewollt mit der berühmten 1C-Programmierumgebung. Sie behaupten auch, die Erben von C++ zu sein.

Aber dort wird alles viel anständiger gemacht.

Und die grafischen Objekte, die Kommunikation zwischen Modulen und vieles mehr.

Und was gibt es in MQL?

Keine eingebauten Klassen, keine threadbezogenen Objekte... und überhaupt nichts.

Und ich habe nichts über die mathematische Hülle des Terminals gesagt!!!

Das ist ein ganz anderes Thema für Überraschungen!!!

 
neverness:

Was macht ihr Kinder eigentlich, wenn ihr das Wasser aufwirbelt?

Gehen Sie einfach in den MetaEditor, und geben Sie den Befehl ein: Datei->Erstellen...

Daraufhin wird ein Formular mit verschiedenen Dummy-Dateien angezeigt.

...

Das ist ein ganz anderes Thema für Überraschungen!!!

Nichts hindert Sie daran,OnStart() inOnCalculate() zu schreiben, wie in diesem Skript

 
Vitaly Muzichenko:

Nichts hindert Sie daran,OnStart() inOnCalculate() zu schreiben, wie in diesem Skript

Beispiel für funktionierenden Code, wären Sie so freundlich, uns zu zeigen, wie man z.B. eine Ellipse oder ein anderes Objekt in der Indikatorumgebung erstellt.
 

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

Indikator als Beispiel für die Arbeit mit Objekten.

Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Zeigen Sie uns bitte ein Beispiel für einen funktionierenden Code, um z. B. eine Ellipse oder ein anderes Objekt in einer Indikatorumgebung zu erstellen.

Indikatoren sind der richtige Ort, um Diagrammobjekte jeglicher Art zu erstellen.

 
Vitaly Gorbunov:

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

Indikator als Beispiel für die Arbeit mit Objekten.

Wir sind keine Kinder, wir sind völlig gesunde Menschen.

Versuchen wir nicht zu flüstern und uns gegenseitig zu täuschen.

Ich wiederhole noch einmal meine Frage:

Bitte geben Sie mir einen einfachen Code des Indikators, in dem ein gescriptetes Objekt (OnStart(), zum Beispiel eine Ellipse) erstellt wird.

Das Verfahren ist wie folgt:

Sie betreten den MetaEditor. Klicken Sie auf Datei->Erstellen....

Klicken Sie auf Indikator.

Und in dieser Umgebung geben Sie den Code des Skriptobjekts ein (OnStart(), z. B. Ellipse).

Es ist so einfach!!!

Viel Glück !!!

Das heißt, Sie werfen das Objekt nicht einfach auf das Formular oder erstellen ein von allem unabhängiges Objekt, wie in Ihrem Beispiel, sondern führen dieses Objekt in die Berechnungsumgebung des Indikators ein.

Mit anderen Worten: Wenn sich der Datenfluss des Indikators ändert, ändert sich auch das grafische Objekt.

Anders als in Ihrem Beispiel ist es nur ein Dummy im Diagramm, der von nichts abhängt.

Grund der Beschwerde: