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

 
Alexander Layzerevich:

Corretto il codice MT5 per inviare dati all'indicatore:

Ma l'errore è lo stesso.

Smettila di sbirciare nel codice di merda scritto in mql4 e lo capirai più velocemente.

 
Igor Makanu:

Guarda le proprietà del progetto in Visual Studio, ci dovrebbe essere un'impostazione per quale piattaforma compilare la dll - MT4 ha bisogno di codice a 32 bit

PS: google trova l'impostazione VS

Ho provato a cercare una tale impostazione motore di ricerca dà fuori risposte che come il contrario di 32 a 64 e in generale e non ho capito come fare questa impostazione. Se ho capito un po' qui ho di default 32 è

E ho trovato un menu con un'impostazione.

Quindi non so se qui è di default a 32.

 

Potete dirmi perché lo stesso codice funziona in MT4 ma non in MT5? In MT5 la variabile strNum è sempre =1, ma in MT4 il contatore ++ funziona come dovrebbe e strNum = numero di righe nel file.

int strNum;
void OnStart()
  {
 FileNum();
 Alert1();
  } 

  void FileNum()
{
      int handle=FileOpen("File.csv",FILE_CSV|FILE_READ,';');
      strNum=0; 
      while(!FileIsEnding(handle))
{
      FileReadString(handle);
      strNum++;
      if(FileIsEnding(handle)==true)
      break;
}
      FileClose(handle);
}

      void Alert1()
{
      Alert (strNum);
}
 
Seric29:

Provato a cercare una tale impostazione motore di ricerca dà risposte che come il contrario da 32 a 64 e in generale non ha capito come fare questa impostazione. Se ho capito un po' ecco la mia impostazione predefinita di 32

E ho trovato un menu con un'impostazione.

Quindi non so se qui è 32 di default.

Anche con le librerie, c'è la questione /MT o /MD, le confondo sempre :-) Anche questo è da qualche parte nelle zone selvagge dello studio user-friendly

Mostrami l'intero progetto, compreso tutto quello che hai fatto in C++ e Mql. Non credo che sia un copyright feroce :-)
ti diremo cosa c'è che non va, altrimenti sforzerai tutti con la telepatia per molto tempo.


 
Maxim Kuznetsov:

C'è anche la questione della libreria /MT o /MD, li confondo sempre :-) Anche questo è da qualche parte nelle zone selvagge degli studi user-friendly

Mostrami l'intero progetto, compreso tutto quello che hai fatto in C++ e Mql. Non credo che sia il peggior copyright :-)
Vi diremo cosa c'è che non va con il codice completo, altrimenti sforzerete tutti con la telepatia per molto tempo


File con estensione .def

file con estensione .cpp

in mql4, ho semplicemente trascinato un file dalla cartella del terminale Librerie

#import "dllmt42.dll"
 int _add(int a=0, int b=0);
#import

E poi chiama stupidamente la funzione, restituisce solo 18 e non fa altro, è come un esperimento per vedere se funziona o no.

 
Seric29:

File con estensione .def

File con estensione .cpp

Ho appena copiato il file dalla cartella terminale Libraries a mql4

E poi chiamo semplicemente la funzione, restituisce 18 e non fa nient'altro, è come un esperimento per vedere se funziona o no.

Perché aggiungi un trattino per aggiungere? Sbarazzatene.

tutti gli identificatori in tutti i file dovrebbero essere rigorosamente identici, nessuna età fantasiosa :-)

 
Alexey Viktorov:

Smettila di sbirciare nel codice di merda scritto in mql4 e lo capirai più velocemente.

Tutto, come dici tu, "il codice di merda" è scritto secondo l'aiuto di base del linguaggio.https://www.mql5.com/ru/docs/basis/function/call

Dice anche: "Una funzione non può essere dichiarata dentro un'altra funzione."

È esattamente quello che dice. Ecco perché non funziona.

Ecco perché sto cercando di scoprire dagli esperti come chiamare la funzione(Deviazione(Kanal)). Quando dipende dalla chiamata della funzione(doppio Envelopes(...))

Aggiornamento: il problema è stato parzialmente risolto.
 
Maxim Kuznetsov:

Perché aggiungi una linea __dash all'aggiunta? Sbarazzatene.

tutti gli identificatori in tutti i file devono essere rigorosamente identici, nessuna fantasia sull'età :-)

Beh, tutti l'hanno fatto secondo le istruzioni e io l'ho fatto, ora lo rimuovo e vedo. Tutto sommato ha funzionato, ha restituito 18. Grazie, continuerò a sperimentare.

 
Alexander Layzerevich:

Tutto, come dici tu, "il codice di merda" è scritto secondo la guida di base del linguaggio.https://www.mql5.com/ru/docs/basis/function/call

Dice anche: "Una funzione non può essere dichiarata dentro un'altra funzione."

È esattamente quello che dice. Ecco perché non funziona.

Ecco perché sto cercando di scoprire dagli esperti come chiamare la funzione(Deviazione(Kanal)). Quando dipende dalla chiamata della funzione indicatore(doppio Envelopes(...))

Aggiornamento: il problema è stato parzialmente risolto.

Avete già chiamato e passato il valore restituito dalla funzioneDeviation(Kanal) alla funzioneEnvelopes(........)

e nella funzioneEnvelopes(........) stessa, si dichiara l'ultimo parametro, che prenderà questo valore


allo stesso modo

double Envelopes(string symb, ENUM_TIMEFRAMES tf, int period, int shift, int method, int price, int buff, double Dev)
{
  double buf[1];
  int handle=iEnvelopes(Symbol(), tf, period, shift, method, price, Dev);
   if(handle<0)
   {
    Print("Failed to create handle ATR, Error: ",GetLastError());
    return(WRONG_VALUE);
   } else
   {
    if(CopyBuffer(handle,buff,0,1,buf)<0)
    {
     Print("Failed to copy data from the indicator ATR, Error: ",GetLastError());
     return(WRONG_VALUE);
    }
   }
   return(buf[0]);
}
 
KrasAleks:

Saluti a tutti. Buona fortuna nella vita e profitto nel lavoro.

Chiedo aiuto (inaspettato, eh? :) )

...................................................

Ed è qui che mi sono bloccato :). Cosa usare al posto di GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). The_failure_level(Symbol(),OP_BUY,Magic) dovrebbe essere usato ma come ottenerlo...


Sarò felice se mi aiuterai.
Z.U. Se date consigli, vi prego, tenete presente che sono ancora molto inesperto, non siate pigri a darmi qualche dettaglio in più, sapete, tipo se: FOREST THERE, non dimenticate di indicare la direzione <------ || ------>.

Grazie per la vostra attenzione :).

Buongiorno, pomeriggio, sera, notte (sottolineato).

Non voglio essere scortese, ma ti faccio una domanda. Ho pensato al mio mess.... Dovrei avere bisogno dell'ultimo OP_BUY && OP_SELL, il suo Magik || ticket || open_price..... Ho ragione? Se trovo l'ultimo ordine, posso in teoria calcolare la distanza da esso all'attuale ask\bid. Ho scaricato un paio di "mediatori" qui, imho ci dovrebbe essere qualcosa di simile, se non identico, ..... solo per rendermi conto che ho trovato quello che stavo cercando..... :)

Se non dispiace a nessuno :), continuerò a sperare nei vostri consigli, almeno un riferimento alla fonte delle informazioni di cui ho bisogno (se non è il librodi Kovalev, l'ho iniziato 3 giorni fa).

Motivazione: