Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 714

 
Où puis-je trouver le début et la fin des données de l'heure du déjeuner pour toutes les bourses en heure de Kiev ou en GMT ?
 
alexey1979621:

Bonjour à tous, j'ai déjà posé une question similaire à la page 711, malheureusement personne n'a répondu, peut-être que maintenant quelqu'un...

Je fais ça :

J'amène la situation en position cumulée zéro (verrouillage), puis je ferme le verrou.

Maintenant, le détail.

1. Calcul de la position globale :

Inverser les ordres

Si nous achetons, notre position globale est augmentée du lot de l'ordre.

En cas de vente, la position globale est réduite du lot de l'ordre.

Fin du cycle de recherche des commandes

2. Créer un emplacement :

si la position globale est supérieure à zéro, nous vendons ;

si la position globale est inférieure à zéro, nous achetons ;

Sinon, nous ne faisons rien.

La taille du lot est égale à la position globale.

3. Fermer beaucoup (positions chevauchées)

Boucle sans fin ( while (true) )

Remettre à zéro les ticks des ordres d'achat et de vente.

boucle sur les commandes

if (buy) valider le ticket pour un ordre d'achat

if (sell) valider le ticket d'ordre de vente

fermer la boucle de la commande

si( il y a une vente et un achat) alors un cross-close

sinon, sortir de la boucle sans fin (break)

fin de la boucle infinie

Maintenant nous programmons cet algorithme dans le langage choisi (MQL4)

 

les gars, dites-moi si je fixe une heure de clôture pour un ordre en attente

Data_1=iTime(Symbol(),PERIOD_D1,0) +86400 ; //le temps de vie de la commande

si elle est déjà sur le marché (c'est-à-dire qu'elle a déjà été exécutée), elle sera fermée ou non.

 
korobok777:

les gars, dites-moi si je fixe une heure de clôture pour un ordre en attente

Data_1=iTime(Symbol(),PERIOD_D1,0) +86400 ; //le temps de vie de la commande

si elle est déjà sur le marché (c'est-à-dire qu'elle a déjà été exécutée), elle sera fermée ou non.

pas de
 
artmedia70:
pas de
Merci beaucoup.
 

Bonjour à tous, je n'ai jamais travaillé avec des opérations de fichiers mais j'ai dû le faire et je n'arrive pas à comprendre.

La tâche consiste à écrire des données dans un fichier csv plusieurs fois par jour.

C'est-à-dire qu'aujourd'hui 24.09.2014 les données sont écrites dans une ligne dans différentes cellules du type

A B C

1 Date | valeur | valeur

si les données d'aujourd'hui ont changé, nous écrasons la ligne du 24.09.2014.

si c'est un nouveau jour, nous réécrivons la nouvelle ligne.

Je suis en train de fumer et je ne peux pas...

 
VOLDEMAR:

Bonjour à tous, je n'ai jamais travaillé avec des opérations de fichiers mais j'ai dû le faire et je n'arrive pas à comprendre.

La tâche consiste à écrire des données dans un fichier csv plusieurs fois par jour.

C'est-à-dire qu'aujourd'hui 24.09.2014 les données sont écrites dans une ligne dans différentes cellules du type

A B C

1 Date | valeur | valeur

si les données d'aujourd'hui ont changé, nous écrasons la ligne du 24.09.2014.

si c'est un nouveau jour, nous réécrivons la nouvelle ligne.

Je suis en train de fumer et je ne peux pas...

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;
}
Ça doit être quelque chose comme ça.
 
r772ra:
Probablement quelque chose comme ça.

et comment réécrire la dernière ligne si les données ont changé ?

 
VOLDEMAR:

comment réécrire la dernière ligne si les données ont changé ?

FileSeek(), aide.

 

Si les données ont changé, nous devrions mettre le pointeur à l'endroit où nous allons l'écraser avec fileseek, l'écraser avec la méthode standard filewrite..., se souvenir de la fin du fichier et le couper avec la fonction WinApi

Ou bien, en utilisant la méthode standard, écrire la position à la fin du fichier, là où l'information utile se termine, et ensuite lire cette position. (Vous pouvez écrire la position dans un autre fichier).

Mais de toute façon, il vaut mieux le tailler, et il n'y a pas d'outil de taille standard ((

c'estZhunko12.09.2014 20:19#

Ce serait intéressant en tant que fonctions WinApi