Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 621

 
Vitaly Gorbunov:
L'obiettivo deve giustificare i mezzi. Se avete il codice sorgente di tutti i componenti necessari, è più facile combinare tutto in un EA. Se questo non è possibile, è necessario organizzare la comunicazione tra i moduli di tutti i componenti, ma questo non è un compito per principianti.

Il compito principale per i principianti è quello di imparare a scrivere i "sorgenti di tutti i componenti necessari". Altrimenti, i neofiti raccoglieranno così tanto... che saremo accusati di hackerare i cervelli dei marziani.

 
Alexey Viktorov:

Il compito principale per i principianti è quello di imparare a scrivere i "sorgenti di tutti i componenti necessari". Altrimenti, i principianti raccoglieranno così tanto... che saremo accusati di hackerare i cervelli dei marziani.

Proprio così! In generale, se volete imparare a programmare, dovreste iniziare con programmi semplici, passando gradualmente a quelli più complessi. Allora non ci saranno domande come "voglio qualcosa che non conosco nemmeno".

 
Ciao, ho il codice sorgente di un EA, per favore aiutami ad aggiungere qualche protezione ad esso in modo che funzioni solo su un certo conto specificato.
Ho provato a farlo su https://www.mql5.com/ru/articles/1572
Voglio provarlo ma non riesco a farlo funzionare correttamente.
Ho trovato un algoritmo completo, ma non capisco dove metterlo
#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, используя которые можно если не совсем побороть воровство результатов многодневного труда разработчика злоумышленником, то, по крайней мере, настолько усложнить вору его "труд", чтобы ему просто...
File:
333.mq4  16 kb
 
helping123:
Buon pomeriggio, ho il codice sorgente di un EA, si prega di chiedere aiuto per aggiungere una protezione lì che avrebbe funzionato solo su un certo account specificato.
Cercato di fare secondo https://www.mql5.com/ru/articles/1572
Voglio usarlo come riferimento ma non sono sicuro di riuscire a farlo funzionare correttamente.
Ho trovato un algoritmo completo, ma non capisco dove metterlo

Forum sul trading, sistemi di trading automatico e test di strategie di 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:

Davvero... Qual era il compito originale? Nemmeno io mi ricordo...:)))))))))))

Cosa state facendo voi bambini, in realtà, a smuovere le acque?

Basta andare nel MetaEditor e digitare il comando: File->Creare...

Questo farà apparire un modulo con diversi file fittizi.

In particolare, saranno file fittizi:

- Consulente esperto

- Indicatore personalizzato

- Script

- Biblioteca, ecc.

Siamo interessati ai primi tre elementi: Expert Advisor, Custom Indicator e Script.

Confrontiamo questi manichini:

In Expert Advisor abbiamo degli eventi:

-OnInit(), OnDeinit(), OnTick(), OnTimer, OnChartEvent() ... tutto, niente più.

Nello script abbiamo gli eventi:

- OnStart() ... questo è tutto, niente di più.

nell'indicatore abbiamo degli eventi:

- OnInit(), OnCalculate(), OnTimer, OnChartEvent() ... tutto, niente più.

La domanda naturale qui è come fare il collegamento tra questi oggetti.

Si scopre che non c'è e non può esserci alcuna connessione tra loro in MQL, perché i flussi di dati tra questi oggetti sono completamente separati e non c'è alcuna connessione tra loro.

Inoltre, sono sorpreso dal fatto che i creatori di MQL ci danno questo fatto come un "bene".

E se, per esempio, in C++ posso facilmente chiamare il traduttore BASIC, o JavaScript, o qualsiasi altro traduttore, e andare nell'ambiente di programmazione Android, per esempio,

nel quadro di MQL, non posso nemmeno creare un cosiddetto "script" in ambiente "indicatore", perché l'ambiente indicatore non accetta il comando OnStart().

Che razza di mostro è questo?

E ce ne sono più che a sufficienza di queste cose brutte in MQL.

Sono ad ogni passo.

Ho letto la descrizione di MQL - e sono sorpreso, perché non c'è altro da fare.

Per tutto il tempo i creatori di MQL proclamano a gran voce che MQL è un discendente di C++.

Certo, mi dispiace, ma voglio chiedere ai creatori di MQL: - Erede di cosa? - Nella sua bruttezza?


Paragono involontariamente MQL al famoso ambiente di programmazione 1C. Sostengono anche di essere gli eredi di C++.

Ma lì tutto è fatto in modo molto più decente.

E gli oggetti grafici, e la comunicazione tra i moduli e molto altro.

E cosa c'è in MQL?

Nessuna classe incorporata, nessun oggetto legato ai thread... e niente di niente.

E non ho detto nulla sul guscio matematico del terminale!!!

Questo è un argomento a parte per le sorprese!!!

 
neverness:

Cosa state facendo voi bambini, in realtà, a smuovere le acque?

Basta andare nel MetaEditor e digitare il comando: File->Creare...

Questo farà apparire un modulo con diversi file fittizi.

...

Questo è un argomento a parte per le sorprese!!!

Niente vi impedisce di scrivereOnStart() inOnCalculate(), come nello script

 
Vitaly Muzichenko:

Niente vi impedisce di scrivereOnStart() inOnCalculate(), come nello script

Esempio di codice funzionante, saresti così gentile da mostrarci per costruire un'ellisse o un altro oggetto nell'ambiente indicatore, per esempio.
 
Infopanel
Infopanel
  • www.mql5.com
Пример создания простого и быстрого меню с поддержкой нескольких языков. В примере выводится информация о цене, времени до следующего бара, балансе счета, количестве ордеров. Данный пример можно использовать в качестве шаблона для создания своих разработок. Минус данного метода при добавлении, удалении или редактировании объектов необходимо...
 
neverness:
Per favore, mostrateci un esempio di codice funzionante per costruire un'ellisse o un altro oggetto in un ambiente indicatore, per esempio.

Gli indicatori sono il posto giusto per costruire oggetti grafici di qualsiasi tipo.

 
Vitaly Gorbunov:

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

Indicatore come esempio di lavoro con gli oggetti.

Non siamo bambini, siamo individui perfettamente sani di mente.

Non cerchiamo di sussurrare e di ingannarci a vicenda.

Ancora una volta ripeto la mia domanda:

Per favore, datemi un semplice codice dell'indicatore, in cui si costruisce qualche oggetto scriptato (OnStart(), per esempio, un'ellisse).

La procedura è la seguente:

Si entra nel MetaEditor. Fare clic su File->Create....

Cliccare su Indicatore.

E in questo ambiente si inserisce il codice dell'oggetto script (OnStart(), per esempio, ellipse).

È così semplice!!!

Buona fortuna!!!

Cioè, non si lancia semplicemente l'oggetto sul modulo, o si crea un oggetto indipendente da tutto, come nel tuo esempio, ma si introduce questo oggetto nell'ambiente di calcolo dell'indicatore.

In altre parole, il flusso di dati dell'indicatore cambia - cambia anche l'oggetto grafico.

Non come nel tuo esempio, è solo un manichino sul grafico che non dipende da nulla.