[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 542

 
Dimka-novitsek:
No, ho pulito il cestino - non è cambiato nulla. Non riesco a vedere dove ci sono più di 15 gigabyte di spazzatura.

Pulire con questo. Esegui dalla cartella del terminale.

File:
clear.zip  1 kb
 
Grazie!!! Darò un'occhiata. Oh, i fratelli sono qui.
 
Dimka-novitsek:
Grazie, amico. Lo controllerò. Oh, i fratelli sono qui.

Questo è il tipo di pasta che si guida! È arrivato il momento di procurarsi un camper autonomo con una linea in rete! IMHO!

 

Qualche consiglio. Non sono riuscito a trovare una risposta sul forum, sulla libreria di codici o su internet, quindi chiedo aiuto. Grazie in anticipo.

1) Operazioni su file. Estratto dal libro di testo: Un gruppo di funzioni per operazioni su file.

Ci sono tre directory (con sottodirectory) in cui si possono trovare i file di lavoro:

/HISTORY/<current broker> - specificamente per la funzione FileOpenHistory;

/EXPERTS/FILES - caso generale;

/TESTER/FILES - specialmente per i test.

Il lavoro con i file di altre directory è soppresso.

Domanda: ci sono librerie, o comandi, o altri modi per far sì che l'EA acceda alla directory specificata dall'utente, cioè acceda alla directory specificata da me?

2) Domanda: Ci sono comandi o librerie in MQL4 che possono essere usati per spegnere il terminale per comando dell'utente, cioè, per specificare certe condizioni che spegneranno il terminale. Non solo chiudere l'Expert Advisor, ma chiudere completamente il terminale?

 

Ciao di nuovo!

Immagina dove diavolo è sparito l'ultimo esperto... Questo è ciò che rimane. È possibile recuperarlo!

 
Cioè, il consulente dell'ultima versione ha lasciato due stupide linee...
 

Per favore, aiutatemi a capire il problema di cercare correttamente la divergenza sugli oscillatori. In questo caso, che sia MACD. Ho abbozzato il seguente algoritmo:

1) Conta le barre dall'inizio e cerca i picchi sull'oscillatore:

   for(int i=limit; i=>0; i--)
    {
      MACD[i]=iMACD(Symb,TimeFrame,FastEMA,SlowEMA,5,PRICE_CLOSE,0,0) 
      
      if(MACD[i]>0)
       {
         if(MACD[i]>MACD[i-1] && MACD[i]>MACD[i-2] &&
            MACD[i]>MACD[i+1] && MACD[i]>MACD[i+2])
           {
            //--- здесь вносим в массив данные о баре, чтобы его можно было снова найти (1)
           }
       }
      if(MACD[i]<0)
       {
         if(MACD[i]<MACD[i-1] && MACD[i]<MACD[i-2] &&
            MACD[i]<MACD[i+1] && MACD[i]<MACD[i+2])
           {
            //--- здесь вносим в массив данные о баре, чтобы его можно было снова найти (2)
           }
       }

2) Creare delle matrici contenenti i tempi di picco:

datetime Date_up[], Date_dn[];

e inserirvi il valore di MACD[i] se la condizione è soddisfatta. L'ultimo nuovo picco deve avere l'indice [n] e il penultimo [n+1];

3) Consideriamo un'altra soluzione nella situazione (1):

if(Date_up[n]<Date_up[n+1]
 { // находим индекс бара
  int i1=iBarShift(Symb,TF,Date_up[n],false);
  int i2=iBarShift(Symb,TF,Date_up[n+1],false);
  // находим пик на графике баров в пределах пяти баров
  double High1=iHighest(Symb,TF,MODE_HIGH,5,i1);
  double High2=iHighest(Symb,TF,MODE_HIGH,5,i2);
  
  if(High1>High2)
   {
    // ЕСТЬ ДИВЕРГЕНЦИЯ!!!
   }
 }

In realtà, il problema del punto 2: come organizzare un tale array come in una serie temporale in modo che i valori si spostino ad ogni nuovo picco?

 
merkulov.artem:

Qualche consiglio. Non ho trovato una risposta nel forum, nella libreria di codici o su internet, quindi chiedo aiuto. Grazie in anticipo.

1) Operazioni su file. Estratto dal libro di testo: Un gruppo di funzioni per operazioni su file.

Ci sono tre directory (con sottodirectory) in cui si possono trovare i file di lavoro:

/HISTORY/<current broker> - specificamente per la funzione FileOpenHistory;

/EXPERTS/FILES - caso generale;

/TESTER/FILES - specialmente per i test.

Il lavoro con i file di altre directory è soppresso.

Domanda: ci sono librerie, o comandi, o altri modi per far sì che l'EA acceda alla directory specificata dall'utente, cioè acceda alla directory specificata da me?

2) Domanda: Ci sono comandi o librerie in MQL4 che possono essere usati per spegnere il terminale per comando dell'utente, cioè, per specificare certe condizioni che spegneranno il terminale. Non solo spegnere l'Expert Advisor ma chiudere completamente il terminale?

1.https://www.mql5.com/ru/code/10873

Questa libreria è per lavorare con le directory al di fuori della sandbox. Il file viene creato in una sandbox, tu ci lavori, poi lo traduci dove necessario. Puoi copiare, spostare (rinominare), usando un symlink alla directory che ti serve, che è la stessa di un file o di una directory. Cioè create un link simbolico nella sandbox, lavorate con esso come con la directory del vostro file, poi cancellatelo, o non cancellatelo se ne avete bisogno.

2. https://www.mql5.com/ru/code/8577

Questa è una vecchia libreria di funzioni WinAPI con shell MQL4. Tutte le operazioni con file e directory. Non lo consiglio. È più affidabile del primo.

3. https://www.mql5.com/ru/code/9951

 // 2.2.1. Функция закрывает окно терминала МТ4. Функция возвращает TRUE, если сообщение поставлено в очередь, иначе - FALSE.
 bool ServiceMetaTraderClose();

==================

Artem, sei consapevole che i nickname con un punto sono vietati qui? Il tuo profilo non è visibile a causa del punto.

 
...... <br / translate="no">

Artyom, sei consapevole che i nickname con un punto sono vietati qui? Il tuo profilo non è visibile a causa del punto.


Grazie mille per il suggerimento. Funziona solo su Vista o anche su 7? o nessuno ha controllato?

Ho fatto il mio profilo molto tempo fa, non sapevo di dot. Ho provato a modificarlo molto tempo fa ma appare l'errore "Link does not work". Ho scritto al supporto, ma nessuna risposta. Così l'ho accettato, soddisfa la funzione principale :)

 
merkulov.artem:


Grazie mille per il suggerimento. Funziona solo su Vista o anche su 7?

Ho creato il profilo molto tempo fa, non sapevo del punto. Ho provato a modificarlo molto tempo fa e diligentemente, dà errore "Link does not work". Ho scritto al supporto, nessuna risposta. Così l'ho accettato, soddisfa la sua funzione principale :)

C'è scritto DA Vista.