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

 
Alexey Viktorov:

Notate in questo post le parole "Tutti i terminali hanno cartelle condivise".


Cerca informazioni su come fare questo e via... Si chiama collegamento di cartelle.

Quindi puoi fare questo. Scrivere una libreria e accedere a questa libreria da diversi terminali e possono scambiare dati o collegare un robot a terminali di 2 metri. Ho letto un po' di linking finché non l'ho capito. Forse c'è un topic dove puoi chiedere di più su questo?

 
Seric29:

Quindi puoi fare questo. Scrivere una libreria e accedere a questa libreria da diversi terminali e possono scambiare dati o collegare un robot a 2 terminali. Ho letto un po' sul collegamento finché non l'ho capito. Forse c'è un topic dove puoi chiedere di più su questo?

Non ho visto l'argomento sul forum, ma dopo aver guardato alcune istruzioni, trovo questa più comprensibile. L'ho provato, ha funzionato, ma non vedo ancora la necessità di usarlo. Anche se penso che sarebbe una buona idea combinare la storia di tutti i terminali in una sola cartella.

 
Alexey Viktorov:

Non mi sono imbattuto in questo thread sul forum, ma dopo aver guardato alcune istruzioni, trovo questa più comprensibile. L'ho provato e funziona, ma non ne vedo ancora la necessità. Anche se penso che unire la storia di tutti i terminali in una cartella sarebbe bello.

Grazie per il consiglio. Ho usato un link rigido



questo richiede che i terminali siano installati nello stesso volume

, ho stupidamente aggiunto un'unità poi ho unito i file ex4 e mq4, come risultato tutto funziona su entrambi i lati ora è possibile scrivere librerie condivise e usarle. Non so quanto sia affidabile, ma ho lanciato il robot sui conteggi del grafico. Quando compilo il codice i file cambiano su 2 lati, ma aggiornano i calcoli su un lato, se lascio il robot a lavorare in modalità online ho bisogno che il programma sia lo stesso e completato e compilato come funzionerà sconosciuto, forse qualcuno ha la possibilità di controllare, non posso ancora controllare.

 
Seric29:

Grazie per il consiglio. Ho usato un link rigido



questo richiede che i terminali siano installati nello stesso volume

, ho stupidamente aggiunto un'unità poi ho unito i file ex4 e mq4, come risultato tutto funziona su entrambi i lati ora è possibile scrivere librerie condivise e usarle. Non so quanto sia affidabile, ma ho lanciato il robot sui conteggi del grafico. Quando compilo i file di codice cambiare su 2 lati, ma aggiornare i calcoli su un lato, se lascio il robot a lavorare in modalità online ho bisogno del programma per essere lo stesso e completato e compilato come funzionerà è sconosciuto, forse qualcuno ha la possibilità di controllare, non posso testare ancora.

Quindi c'è una cartella magica direttamente nel compilatore, o non è adatta?


 
Seric29:

Grazie per il consiglio. Ho usato un link rigido

Perché fare collegamenti a file specifici? Non sarebbe meglio fare dei collegamenti simbolici alle cartelle e tutti i file di questa cartella saranno disponibili in quei terminali dove sono stati fatti questi collegamenti?

Questa è una buona idea:

Nell'immagine 00.png, a sinistra c'è la cartella stessa, e a destra un link da un terminale.

Nell'immagine 11.png anche un link da un altro terminale

E sul contenuto dell'immagine 22.png, sul lato sinistro è una cartella stessa, e sul lato destro è il contenuto di un link.

File:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

Quindi c'è una cartella magica proprio nel compilatore, o non è adatta?


Sto chiedendo se è possibile farlo e se funzionerà in modo affidabile. La risposta era no. Mi hanno consigliato un programma, ovviamente ci ho giocato ma non ha funzionato. Poi ha dato il consiglio della linea di comando, ho trascorso 3 ore giocando in giro e ottenuto qualcosa, ma non so come non è affidabile prima aggiorna data e contenuto del file, e poi ha cominciato a cambiare solo il contenuto e la data non è cambiato, è un po' strano. Dove posso leggere del suo metodo? Quanto è affidabile, i robot saranno in grado di comunicare tra loro online?

 
Alexey Viktorov:

Perché fare collegamenti a file specifici? Non sarebbe meglio fare dei collegamenti simbolici alle cartelle e tutti i file di questa cartella saranno disponibili nei terminali in cui sono stati fatti questi collegamenti?

È notevole così:

Nello screenshot 00.png a sinistra c'è la cartella stessa e a destra un link da un terminale

L'immagine 11.png ha anche un link da un altro terminale

E sull'immagine 22.png c'è un contenuto, sul lato sinistro una cartella stessa, e sul lato destro un link al contenuto.

L'ho visto, la sincronizzazione tramite TotalComander, ma da quanto ho capito trasferisce solo i file (ad esempio le immagini), e se stiamo parlando che c'è un file di testo e cambia, cambierà se aggiungo qualcosa al file? Quanto è affidabile la comunicazione di TotalComander e i robot possono comunicare tra loro online o è solo per scrivere codice?

 
Seric29:

Ho visto questo, la sincronizzazione tramite TotalComander, ma da quanto ho capito trasferisce solo i file (come le immagini), ma se stiamo parlando di un file di testo e cambia, cambierà se aggiungo qualcosa al file? Quanto è affidabile la comunicazione attraverso TotalComander, i robot saranno in grado di comunicare tra loro online o sarà utile solo per scrivere codice?

TotalComander serve solo per visualizzare il contenuto di due cartelle. Mi è più familiare di Windows Explorer. Ho anche fatto tutti i collegamenti simbolici sulla linea di comando. Solo che ho usato /D invece di /H e non un file, ma una cartella. E questo link da luoghi diversi ha accesso allo stesso file.

Anche se mi stavo chiedendo se il file sarà disponibile quando è usato da un terminale... Meglio contattare Segei Tarbolin di persona. Da quanto ho capito, lui lo usa e probabilmente lo sa esattamente.

 
Alexey Viktorov:

TotalComander serve solo a mostrare il contenuto di due cartelle. Mi è anche più familiare di Windows Explorer. E ho fatto tutti i collegamenti simbolici allo stesso modo dalla linea di comando. Solo che ho usato /D invece di /H e non un file, ma una cartella. E questo link da luoghi diversi ha accesso allo stesso file.

Anche se, ho pensato solo ora, ma se il file sarà disponibile quando viene utilizzato da un terminale ... Meglio scrivere nel personale Segei Tarbolin. Da quanto ho capito, lui lo usa e probabilmente lo sa esattamente.

ho giocato con il Total Commander, in generale, come ho capito, poi c'è solo la sincronizzazione al momento di premere il pulsante sta accadendo e attraverso la chiave console H, il contenuto del file sta cambiando in tempo reale, ma quando si fa clic su compilare i calcoli originali che il robot ha fatto per riferimento non sono cambiati, devo premere il pulsante di compilazione e il link, ma se il robot è lo stesso e non toccare il codice funziona, non so se funzionerà online, non ancora possibile testare può portare giù le impostazioni non finite programma. Ma dal momento che i file cambiano la proprietà penso che dovrebbe funzionare. In generale, qui o attraverso la console o il ragazzo ha suggerito qualcosa sopra, ma non ho trovato le informazioni normali. Scriverò all'uomo che avete consigliato.

 

Ciao a tutti, potreste per favore dirmi come riscrivere correttamente la funzione da MQL4 a MQL5:

//+------------------------------------------------------------------+
//Numero di Sell_Order chiusi nell'ultima barra
int Anz_g_Sell_Order()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
{
count++;
}
}
return(count);
}
//+---------------------------------------------------------------------+

L'ho riscritto, ma non funziona per qualche motivo, dov'è l'errore? :

//+------------------------------------------------------------------+
//Numero di Sell_Order chiusi sull'ultima barra
int Anzahl_g_Sell_Order()
{
int count = 0;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong ticket = HistoryDealGetTicket(i);
se(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
&& HistoryDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL
&& HistoryDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
count++;
}
}
}
return(count);
}
//+---------------------------------------------------------------------+