[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 445

 

Je suis juste curieux - si la commande n'est pas passée, il doit y avoir une erreur ? Et vous ne pouvez probablement pas le lire et le corriger ?

/*Placer un ordre avec une prise et un stop à zéro, puis le corriger, c'est comme s'ils avaient introduit l'exécution ESP*/.

 
FAQ:

Je suis juste curieux - si la commande n'est pas passée, il doit y avoir une erreur ? Et vous ne pouvez probablement pas le lire et le corriger ?

/*Positionner un ordre avec une prise et un stop nuls, puis le corriger.

Je n'essaie pas de faire ça, mais les logs sont propres !

"Si c'est une question d'arrêts, c'est juste une option d'assurance".

 
vall:

c'est ça le truc - les journaux sont propres !

"Si la question porte sur les arrêts, c'est juste une option d'assurance en cas d'urgence".

Vous passez un ordre sans arrêt ni reprise et regardez s'il s'ouvre ou non !

La mise en place de stops et de take's dans votre société de courtage sur ce type de compte de trading est possible UNIQUEMENT par la modification des valeurs zéro fixées auparavant.

 
Roman.:

Passez un ordre sans arrêt ni reprise et regardez s'il s'ouvre ou non !

La mise en place de stops et de take's dans votre DC sur ce type de compte de trading est possible UNIQUEMENT en modifiant leurs valeurs nulles précédemment définies.


Merci, ça aide.

il s'avère qu'il faut ouvrir un compte à 0 et ensuite le modifier en introduisant des stops ?

 
vall:

Merci, ça aide.

Il faut donc ouvrir un compte à partir de 0 et le modifier ensuite en introduisant des stops ?

Il faudrait que j'ouvre un ordre avec des valeurs nulles de ces paramètres, puis que je les modifie en modifiant l'ordre ouvert.

 
Roman.:

ouvrir un ordre avec des valeurs nulles de ces paramètres, puis les modifier en modifiant l'ordre ouvert.


Merci, les stops sont-ils réglés sur la précision des symboles du graphique, c'est-à-dire 0.00001 ou sur la précision de 0.0001 ?
 

Les journaux sont propres, car personne ne se charge de la détection et du traitement des erreurs à votre place.

Спасибо, стопы устанавливаются в точностью до символов графика, т.е. 0,00001 или с точностью до 0,0001?

MarketInfo est entre vos mains.

 
Vinin:

Personne n'est prêt à répondre à votre question. Bien que vous auriez pu répondre à votre question il y a longtemps, si vous l'aviez voulu, bien sûr.
C'est ce que je crois... Croyez-moi, parfois la volonté seule n'est pas suffisante pour répondre à votre propre question.
 

Bon après-midi... Question sur les fonctions FileIsEnding et FileIsLineEnding. Afin de comprendre le fonctionnement des fonctions FileIsEnding et FileIsLineEnding, j'ai écrit le script suivant :

//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
#property show_inputs                                                    //выводим перед запуском скрипта окно свойств
extern int  position=0;                                                  //внешняя переменная: смещение файлового указателя ОТ НАЧАЛА ФАЙЛА (в БАЙТАХ)
//---------------------------------------------------------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name="Копия Запись чисел в файл.csv";                          //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                            //переменная: ошибка
   int handle=FileOpen(name,FILE_CSV|FILE_WRITE,';');                    //открываем заданный файл n записываем туда данные
   int запись=FileWrite(handle,DoubleToStr(1.3584,4));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose(handle);                                                    //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle=FileOpen(name,FILE_CSV|FILE_READ,';');                         //открываем заданный файл
   bool pos=FileSeek(handle,position,SEEK_SET);                          //смещаем от начала вправо указатель файла
   double чтение=FileReadNumber(handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   int size=FileSize(handle);                                            //вычисляем размер заданного файла
   h=FileIsEnding(handle);                                               //устанавливаем текущее значение переменной h
   h_l=FileIsLineEnding(handle);                                         //устанавливаем текущее значение переменной h_l
   error=GetLastError();                                                 //значение ошибки, производимой функцией FileIsEnding
   if(error!=0)Alert("Текущая ошибка ",error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
   FileClose(handle);                                                    //закрываем файл
//----------------------------------------------------------------------------------------- 3 -
   Comment("Размер файла ",name," составил ",size," байт",
           "\nФункция FileSeek вернула: ",pos,
           "\nФункция FileReadNumber(handle) вернула: ",чтение,
           "\nФункция FileIsLineEnding(handle) вернула: ",h_l,
           "\nФункция FileIsEnding(handle) вернула: ",h,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 4 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -

Dans le bloc 1-2, j'ai ouvert et écrit le nombre 1,3584 (que la fonction DoubleToStr convertit en texte) dans le fichier.

Dans le bloc 3-4, j'ai ouvert le fichier et lu le nombre qui y était écrit.

La variable externe int position est censée déplacer le pointeur de fichier en utilisant la fonction FileTell afin d'essayer de comprendre le fonctionnement des fonctions FileIsEnding et FileIsLineEnding et ce qu'est le pointeur de fichier.

Le livre MQL4.community indique que le pointeur de fichier est un analogue du curseur de texte.

MAIS, en exécutant le script plusieurs fois et en changeant à chaque fois la variable externe postiton à 1 (c'est-à-dire en déplaçant le pointeur de fichier de 1 octet à droite du début du fichier), la fonction Commentaire produit un certain nombre de messages, par exemple

si postiton=7, le message ressemblerait à ceci :


si postiton=8, le message ressemblerait à ceci :


Je comprends que, puisque les constantes de chaîne occupent 8 octets dans la mémoire du PC et qu'il n'y a qu'un seul numéro converti dans le fichier, le fait de déplacer le pointeur de fichier de 8 octets vers la droite me donnera une erreur 4099 (ce qui signifie que la fin du fichier a été atteinte). Je comprends également que la fonction FileIsEnding renvoie 1 (vrai) pour la même raison (fin du fichier atteinte). Mais je ne comprends pas pourquoi la fonction FileIsLineEnding renvoie 0 (faux, ce qui signifie que le pointeur de fichier n'a pas atteint la fin de la ligne). Après tout, en me basant sur l'analogie donnée dans le livre MQL (un pointeur de fichier est à peu près la même chose qu'un curseur de texte), je me suis dit que la fin du fichier est aussi la fin de la chaîne. Mais si l'on considère que FileIsEnding et FileIsLineEnding ont des valeurs différentes lorsque le pointeur de fichier atteint la fin du fichier, je ne sais pas ce qu'est un pointeur de fichier.

Question :

1. Qu'est-ce qu'un pointeur de fichier ?

2. Pourquoi la fin d'une ligne et la fin d'un fichier ne coïncident-elles pas (lorsqu'un pointeur de fichier atteint la fin d'un fichier) ?

P.S. Afin de ne pas encombrer le forum, merci d'avance pour la réponse.

 
7777877:

1. Qu'est-ce qu'un pointeur de fichier ?

2. Pourquoi la fin de ligne et la fin de fichier ne coïncident-elles pas (lorsque le pointeur de fichier atteint la fin du fichier) ?

P.S. Pour ne pas encombrer le forum, merci d'avance pour votre réponse.

1. le pointeur de fichier est en réalité un curseur lorsque vous tapez

2) Qui vous a dit qu'ils devaient coïncider ? Il y a le caractère de fin de chaîne "\n" et le caractère de fin de fichier "EOF" ; ce sont des caractères différents. Ils sont comme le caractère de fin de phrase (point) et le caractère de fin de paragraphe ("caractère de saut de ligne"). Il y a d'abord un point, qui est la fin de la ligne. Puis vient la fin du paragraphe.