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

 
Dove posso trovare i dati di inizio e fine dell'ora di pranzo per tutte le borse in ora di Kiev o GMT?
 
alexey1979621:

Ciao a tutti, ho già fatto una domanda simile a pagina 711, purtroppo nessuno ha risposto, forse ora qualcuno...

Io faccio questo:

Porto la situazione a zero in posizione cumulativa (bloccaggio), poi chiudo il blocco.

Ora, i dettagli.

1. Calcolo della posizione aggregata:

Ordini inversi

Se compriamo, la nostra posizione aggregata è aumentata del lotto dell'ordine.

Se si vende, la posizione complessiva viene ridotta del lotto dell'ordine.

Fine del ciclo di ricerca degli ordini

2. Creare una posizione:

se la posizione aggregata è superiore a zero, vendiamo;

se la posizione aggregata è sotto lo zero, compriamo;

Altrimenti, non facciamo nulla.

La dimensione del lotto è uguale alla posizione aggregata.

3. Chiudere un lotto (posizioni sovrapposte)

Ciclo infinito ( while (true) )

Azzera i tick degli ordini di acquisto e di vendita

fare un ciclo sugli ordini

se (comprare) impegna il biglietto per un ordine di acquisto

se (vendere) impegna il biglietto dell'ordine di vendita

chiudere il ciclo dell'ordine

se (c'è una vendita e un acquisto) allora un cross-close

altrimenti uscire dal ciclo infinito (break)

fine del ciclo infinito

Ora programmiamo questo algoritmo nel linguaggio selezionato (MQL4)

 

ragazzi, ditemi se imposto un tempo di chiusura per un ordine in sospeso

Data_1=iTime(Symbol(),PERIOD_D1,0) +86400; //il tempo di vita dell'ordine

se è già sul mercato (cioè è già stato eseguito), si chiuderà o no

 
korobok777:

ragazzi, ditemi se imposto un tempo di chiusura per un ordine in sospeso

Data_1=iTime(Symbol(),PERIOD_D1,0) +86400; //il tempo di vita dell'ordine

se è già sul mercato (cioè è già stato eseguito), si chiuderà o no

no
 
artmedia70:
no
Grazie mille.
 

Ciao a tutti, non ho mai lavorato con le operazioni sui file ma ho dovuto farlo e non riesco a capirlo.

Il compito è quello di scrivere i dati in un file csv più volte al giorno

Cioè oggi 24.09.2014 i dati sono scritti in una riga in diverse celle del tipo

A B C

1 Data | valore | valore

se i dati di oggi sono cambiati, sovrascriviamo la linea del 24.09.2014

se è un nuovo giorno, riscriviamo la nuova linea.

Sto fumando e non riesco a fumare...

 
VOLDEMAR:

Ciao a tutti, non ho mai lavorato con le operazioni sui file ma ho dovuto farlo e non riesco a capirlo.

Il compito è quello di scrivere i dati in un file csv più volte al giorno

Cioè oggi 24.09.2014 i dati sono scritti in una riga in diverse celle del tipo

A B C

1 Data | valore | valore

se i dati di oggi sono cambiati, sovrascriviamo la linea del 24.09.2014

se è un nuovo giorno, riscriviamo la nuova linea.

Sto fumando e non riesco a fumare...

void Запись()
{
  int handle;
  string st=TimeToStr(TimeCurrent(), TIME_DATE);
  string filename = st+" Bid_Ask.csv"; // Формируем имя файла
  handle = FileOpen(filename,FILE_CSV|FILE_READ | FILE_WRITE,';');
  if(handle < 1)
  {
    Print("Не удалось создать файл. Ошибка #", GetLastError());
    return;
    //FileClose(handle);
  }
  
  FileWrite(handle,                   
            " Время ",
            " Bid ",
            " Ask ",
            " Volume "); // заголовок
  FileSeek(handle, 0, SEEK_END);
  FileWrite(handle,
            TimeToStr(TimeCurrent(),TIME_MINUTES|TIME_SECONDS),
            Bid,
            Ask,
            Volume[0]);
 
  FileClose(handle);
  return;
}
Deve essere qualcosa del genere.
 
r772ra:
Probabilmente qualcosa del genere.

e come faccio a riscrivere l'ultima linea se i dati sono cambiati?

 
VOLDEMAR:

come faccio a riscrivere l'ultima riga se i dati sono cambiati?

FileSeek(), aiuto.

 

Se i dati sono cambiati, dovremmo mettere il puntatore al posto dove lo sovrascriveremo con fileseek, sovrascriverlo con il metodo standard filewrite..., ricordare la fine del file e tagliarlo con la funzione WinApi

O usando il metodo standard, scrivere la posizione alla fine del file, dove finiscono le informazioni utili, e poi leggere questa posizione. (Potete scrivere la posizione in un altro file).

Ma comunque, è meglio tagliarlo, e non c'è uno strumento di taglio standard ((

questo èZhunko12.09.2014 20:19#

Sarebbe interessante come funzioni WinApi

Motivazione: