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

 
Oh, sei un'eroina, Junko, sistemando silenziosamente il codice e... È come se fosse successo questo. Mi dirai che è andata così e che ti sto solo prendendo per il culo? Sì?
 
Roger:
Perché stai leggendo da un file? Avete l'intero file nella variabile ReadCBOE, potete usarlo,

Nessun problema, ma non tutta la linea si adatta alla variabile! MT ha le sue restrizioni sulla lunghezza della linea, mentre il file viene scritto alle informazioni dal sito, e il file finisce </body></html> mentre la linea - si interrompe a 65k caratteri (circa). In ogni caso la dimensione finale del file è di 69KB.

 
Integer:

Leggi l'articolo. Fondamentalmente non c'è modo in natura di leggere una data linea di un file, bisogna leggere tutte le linee fino a una data linea... C'è una funzione nell'articolo per leggere un file di testo riga per riga.

Wow, grazie, non l'ho trovato io, avrei dovuto cercare per tag HTML.
 
Zhunko:

È così che funziona. Ho controllato.


Comunque, c'è un errore, e qui è
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
scrive TUTTA la stringanel file, senza tener conto dei 3 parametri della funzione, che è responsabile della dimensione della stringa.
 
Integer:
Sei un'eroina, Junko, che aggiusta in silenzio il codice e... come se fosse quello che è successo. Mi dirai che era così e che ti sto solo prendendo per il culo? Sì?

Risolto cosa? Controllo di NULL? Va bene. Cosa c'è che non va? Se trovo un errore, lo correggo.

Non si aggiusta. L'ho visto. Anche quando l'hai fatto notare, non l'hai corretto. Ti piace fare errori e non correggerli? E poi te ne vanti?

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

Sono scusato. Non scrivo quasi mai in MQL4. Ho già scritto tutto ciò di cui ho bisogno. Non lavoro con descrittori ed errori. Sono stati scritti molto tempo fa, incapsulati e dimenticati.

In C++, i descrittori sono solitamente confrontati con NULL.

mzk_3om6u:

Comunque, c'è un errore, e qui è
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
che scrive TUTTA la stringa nel file, indipendentemente dai 3 parametri della funzione che sono responsabili della dimensione della stringa.
Non lo è. Funziona. È solo che questo codice non sovrascrive il file. State guardando un file che è già scritto. Non sembra funzionare. Infatti, è stato scritto dove dovrebbe essere, ma la continuazione della linea è ancora quella vecchia.

Scrivete qualcos'altro, o cancellate il file, o mettete un flag di sola scrittura.

 
Zhunko:

Risolto cosa? Controllo di NULL? Va bene. Cosa c'è che non va? Se trovo un errore, lo correggo.

Non si aggiusta. L'ho visto. Anche quando l'hai fatto notare, non l'hai corretto. Ti piace fare errori e non correggerli? E poi te ne vanti?

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

Sono scusato. Non scrivo quasi mai in MQL4. Ho scritto tutto ciò di cui ho bisogno. Non lavoro con descrittori ed errori. Sono stati scritti molto tempo fa, incapsulati e dimenticati.

In C++, i descrittori sono solitamente confrontati con NULL.

Non lo è. Funziona. È solo che questo codice non sovrascrive il file. Stai guardando un file già scritto. Non sembra funzionare. Infatti, è stato scritto dove dovrebbe essere, ma la continuazione della linea è ancora quella vecchia.

Scrivi qualcos'altro, o cancella un file o imposta un flag di sola scrittura.


Sì, funziona... grazie.
 
Salve, è in arrivo MetaTrader per Windows Phone o Windows RT, e quando è prevista la sua uscita?
 
Buon tempo. Per favore aiutatemi a risolvere l'errore.
extern int OpenHH = 14; // Время открытия ордеров (часы).
extern int OpenMM = 25; // Время открытия ордеров (минуты).

extern int CloseHH = 23; // Время закрытие/удаление ордеров (часы).
extern int CloseMM = 45; // Время закрытие/удаление ордеров (минуты).


Questa parte del codice funziona e non ci sono lamentele al riguardo. Gli ordini del venerdì, 23:45 chiudono normalmente. La funzione DeleteOrders() funziona bene.

if (DayOfWeek() == 0 || DayOfWeek() == 6 ) return(0); // В выходные не работаем.
if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят.
if (Close_All_Orders) // Разрешение на закрытие ордеров.
if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то
TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час
TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты -
{ DeleteOrders(); return(0); } // все ордера закрываются.


Il codice di apertura degli ordini è fatto per analogia. Il codice non funziona affatto nella forma specificata.
Tuttavia, se rimuoviamo o commentiamo la linea con i minuti, tutto funziona bene e gli ordini si aprono alle 14:00. La funzione OpenOrders() funziona bene.
Quale può essere il problema in questa (o altra) linea di codice: TempoMinuto(TempoCorrente()) >= OpenMM ?

if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час,
TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты -
{ OpenOrders(); return(0); } // открыть ордера.


PS: Fondamentalmente, ci sono parecchi EA su Internet che aprono e chiudono gli ordini in base al tempo. Ma, per una ragione o per l'altra, potrebbero non essere soddisfacenti. Vorrei affrontare l'errore di cui sopra...

Grazie...

 
Crosswert:
Buon pomeriggio. Aiutami con questo errore.


Tutto sembra essere corretto, dovrebbe funzionare. Ho provato il tuo codice nel mio - funziona a minuti. Ma solo dalle 14:25 alle 14:59, dalle 15:25 alle 15:59 ecc.

int start()
  {
  int OpenHH=14,OpenMM=25;
  bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
 if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час
 TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты - 
 { OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.   
//----
   return(0);
  }
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


 

Forse è meglio così.

if ((Hour() == OpenHH && Minute() >= OpenMM) || (Hour() > OpenHH))