e di nuovo dll e mercato

 

Buon pomeriggio!

Regola n. 1: non è consentito l'uso di dll sul Mercato. Ok, questo è comprensibile.)

Ora la situazione

Penso che ci sia una funzione utile che funziona bene nel wrapper Expert Advisor, ma non è completamente non-trading. Utilizza il metodo onTimer per il funzionamento. La DLL è usata per l'operazione di rinominazione del file (beh, non c'è la possibilità in MQL di creare un file con estensione vbs :) e avviare questo script visual basic con il comando shell. Pericoloso, capisco.

Come fornire funzionalità tramite Market con tali input?

 
Nikolai Karetnikov:

Buon pomeriggio!

Regola n. 1: non è consentito l'uso di dll sul Mercato. Ok, questo è comprensibile.)

Ora la situazione

Penso che ci sia una funzione utile che funziona bene nel wrapper Expert Advisor, ma non è completamente non-trading. Utilizza il metodo onTimer per il funzionamento. La DLL è usata per l'operazione di rinominazione del file (beh, non c'è la possibilità in MQL di creare un file con estensione vbs :) e avviare questo script visual basic con il comando shell. Pericoloso, capisco.

Come posso fornire funzionalità tramite Market con questi input?

qualcuno?

Per ora ho l'idea di spostare la classe in cui vengono eseguite le chiamate dll in una libreria separata e appuntarla alla descrizione.

A proposito, perché la funzionalità funzioni ho bisogno di più file csv che dovrebbero essere nella directory mql5\files. C'è un modo per allegarlo alla descrizione?

 
Nikolai Karetnikov:

qualcuno?

Per ora ho l'idea di spostare la classe in cui vengono fatte le chiamate dll in una libreria separata e allegarla alla descrizione per riferimento.

A proposito, per lavorare

Perché?

La regola principale del mercato - la tintura e altre attività sospette sono proibite. Le dipendenze da oggetti esterni (indicatori e librerie) sono vietate.

Togliendo le chiamate a una classe o a una libreria non vi libererete in alcun modo della DLL.

PS/ vendendo una cosa così sospetta (formare ed eseguire VBS da un software chiuso), bisogna assumersi la responsabilità personale e nessuno vorrà essere un intermediario.

 
Nikolai Karetnikov:

qualcuno?

Per ora ho l'idea di mettere la classe in cui vengono fatte le chiamate dll in una libreria separata e allegarla alla descrizione.

A proposito, ho bisogno di un file csv che dovrebbe trovarsi nella directory mql5\files. È possibile allegarlo alla descrizione come allegato?

Non ha abbastanza funzioni, il terminale stesso? Cosa può fare un programma di terzi che il terminale non può fare ?????????????????????

 
Maxim Kuznetsov:

Perché?

La regola di base del mercato è che le DLL e altre attività sospette sono vietate. Le dipendenze da oggetti esterni (indicatori e librerie) sono vietate.

Prendendo le chiamate a una classe o libreria non vi libererete in alcun modo della DLL.

PS/ vendendo una cosa così sospetta (formare ed eseguire VBS da un software chiuso) bisogna prendersi la responsabilità personale e nessuno vorrà fare da intermediario.

Finora non capisco il meccanismo stesso di una tale divisione. Diciamo che questo è il codice della classe in cui si accede alla dll

class cIntSpeech
  {

public:
   void Say(string aText)
     {
      
      if(!MQL5InfoInteger(MQL5_DLLS_ALLOWED))
        {
         Alert(__FUNCTION__+": Allow dll");
         return;
        }
     
     string m_fntxt="sspeechexample.txt";
     string m_fnvbs="sspeechexample.vbs";
      
     int h=FileOpen("sspeechexample.txt",FILE_ANSI|FILE_WRITE);
     FileWrite(h,"CreateObject(\"SAPI.SpVoice\").Speak\""+aText+"\"");
     FileClose(h);

     string srcvbs = TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\sspeechexample.txt"; //+MQLInfoString(MQL_PROGRAM_NAME)+".mq5";
     string dstvbs = TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\sspeechexample.vbs"; //"+MQLInfoString(MQL_PROGRAM_NAME)+".vbs";
         if(CopyFileW(srcvbs,dstvbs,0)){
            Print("Файл скопирован");
            }
             else{
         Print("Не удалоcь скопировать файл");   
   }
   int r = -1;
   r = ShellExecuteW(NULL,NULL,dstvbs,"","",0);
   Print("Код ошибки %d", r);
      
     }
  };



Nell'Expert Advisor stesso, che si troverà nel Mercato, ci sono altre 3-4 classi, mentre il dll è affrontato in una sola. Supponiamo che io modifichi la classe DLL nel codice dell'esperto, sostituisca shellexecute() e copyW() con printf() e porti tutti gli owl secondo le regole.

Come faccio a rendere conveniente per un potenziale acquirente sostituire una classe sicura ma inutile con una vera classe che fa un lavoro utile?

 
Alexsandr San:

Non ha abbastanza funzioni il terminale stesso? Cosa può fare un programma di terzi che il terminale non può fare ?????????????????????

molte cose :)

Ma in particolare, MQL5 non può creare un file .vbs

 

Qualcosa mi dice che questo mago deve essere messo in quarantena per molto tempo.

Расширение VBS – это скрипт, написанный на языке Visual Basic, используется для выполнения команд и программ в среде Windows. VBS скрипты интерпретируются или оконным интерпретатором WScript.exe, или консольным – CScript.exe (вместе они – Windows Script Host или WSH). Файлы .VBS могут так же иметь расширение .VB. Создавать скрипты VBS можно в блокноте или в любом другом текстовом редакторе, т.к. VBS – это текстовый формат. VBScript был создан Microsoft в качестве замены устаревшему языку .CMD, интерпретируемому приложением command.com.
Скрипты VBS чаще всего используются при автоматизации администрирования систем Windows или при написании кода на страницах Classic ASP, или в клиентских скриптах в браузере Internet Explorer.

NOTA: Fate attenzione: i file .VBS possono essere infettati da codice maligno o da un trojan. Usate un antivirus per scansionare i file .VBS prima di aprirli, specialmente se ricevete il file per posta o se la sua origine è sconosciuta.

Fonte: http://fileext.ru/vbs

Perché diavolo cercare così tanto di metterlo sul mercato?

 
Nikolai Karetnikov:

molte cose :)

Ma in particolare, MQL5 non può creare un file .vbs

Potete anche creare .bat e .cmd

 
Nikolai Karetnikov:

Buon pomeriggio!

Regola n. 1: non è consentito l'uso di dll sul Mercato. Ok, questo è comprensibile.)

Ora la situazione

Penso che ci sia una funzione utile che funziona bene nel wrapper di Expert Advisor, ma non fa trading per niente. Usa il metodo onTimer per il funzionamento. La DLL è usata per l'operazione di rinominazione del file (beh, non c'è la possibilità in MQL di creare un file con estensione vbs :) e avviare questo script visual basic con il comando shell. Pericoloso, capisco.

Come posso fornire funzionalità tramite Market con tali input?

Puoi decifrare la frase sottolineata? )) Wrapper per la maggior parte delle funzioni API di Win sono stati fatti per molto tempo. Potete usarli nel Mercato, l'ho chiesto espressamente a Renat.

\MQL5\Include\WinAPI\...

 
Alexey Volchanskiy:

Puoi decifrare la frase sottolineata? )) I wrapper per la maggior parte delle funzioni API di Win sono stati fatti molto tempo fa. Puoi usarli nel Mercato, l'ho chiesto specificamente a Renat.

\MQL5\Include\WinAPI\...

Non ci credo!

Alexei, sei tu? Francamente parlando, mi manchi molto su questo forum... Sono tutti così noiosi e tetri...

 
Alexey Volchanskiy:

Puoi decifrare la frase sottolineata? )) I wrapper per la maggior parte delle funzioni API di Win sono stati fatti molto tempo fa. Puoi usarli nel Mercato, l'ho chiesto specificamente a Renat.

{\MQL5\Include\WinAPI\...

Quindi, WinApi sta estraendo funzioni dalla Dll, mentre tutte le chiamate alla Dll sono proibite.
Non è chiaro qui. Ricordo che anche le chiamate di WinApi al contrario sono vietate.