Artyom voulait dire par "... condition déclenchée - mettre une marque", ce qu'il voulait dire c'est qu'il fallait écrire dans le code du script pour mettre l'icône (marqueur) lorsque la condition est déclenchée.
La référence MQL4 contient de très bons exemples de scripts pour la création d'icônes. Par exemple, ce script qui crée et déplace les icônes "Acheter" sur un graphique.
Je veux écrire la structure, mais je ne peux pas ! Il est écrit dans l'aide que FileWriteStruct écrit dans un fichier binaire, si la taille n'est pas spécifiée, alors la structure entière.
Qui a une opinion ?
Il écrit toujours sur un binaire.
Ou m'envoyer dans une agence où ils pourront m'aider.
Je veux écrire la structure, mais je ne peux pas ! Il est écrit dans l'aide que FileWriteStruct écrit dans un fichier binaire, si la taille n'est pas spécifiée, alors la structure entière.
Qui a une opinion ?
Il écrit toujours sur un binaire.
Ou me diriger vers une agence où ils peuvent m'aider.
Dans la déclaration " ORD Orders[10] ;" ou via "ArrayResize( Orders, 10)", mais cela n'affecte pas l'erreur. Je viens de le vérifier. (Je n'ai pas vraiment précisé la taille dans le script).
Je suppose qu'il n'y a pas de possibilité de convertir différents types de données.
dans la déclaration " ORD Orders[10] ;" ou via "ArrayResize( Orders, 10)", mais cela n'affecte pas l'erreur. Je viens de vérifier. (Je n'ai pas vraiment spécifié de taille dans le script).
Je suppose qu'il n'y a pas de possibilité de convertir différents types de données.
Terminal 646, ME 934.
L'exemple de test a signalé que le fichier a été créé. Je n'arrive pas à le trouver.
Je l'ai trouvé. Bien que je l'aie dans un répertoire complètement différent. Donc ça marche.
Je peux voir les corrections ? Si le fichier est le mien.
Si celui de l'aide, DEMO_FileWriteStruct, donc il compile, j'ai essayé de prendre la fonction d'écriture au fichier de celui-ci, mais je n'ai pas besoin de contrôler le nombre de lignes écrites. Ou ai-je bien compris que la structure est écrite octet par octet ?
J'ai alors une question : faut-il aussi le lire octet par octet ? Dans la structure, lorsqu'il est nécessaire de la recharger à partir du fichier ?
Pouvons-nous jeter un coup d'œil aux corrections ?
J'ai utilisé l'exemple de l'aide
//+------------------------------------------------------------------+//| Demo_FileWiteStruct.mq5 |//| Copyright 2013, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2013, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//--- покажем окно входных параметров при запуске скрипта#property script_show_inputs//--- параметры для получения данных из терминалаinputstring InpSymbolName="EURUSD"; // валютная параinputENUM_TIMEFRAMES InpSymbolPeriod=PERIOD_H1; // таймфреймinputdatetime InpDateStart=D'2013.01.01 00:00'; // дата начала копирования данных//--- параметры для записи данных в файлinputstring InpFileName="EURUSD.txt"; // имя файлаinputstring InpDirectoryName="Data"; // имя директории//+------------------------------------------------------------------+//| Структура для хранения данных свечи |//+------------------------------------------------------------------+struct candlesticks
{
double open; // цена открытияdouble close; // цена закрытияdouble high; // максимальная ценаdouble low; // минимальная ценаdatetime date; // дата
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
datetime date_finish=TimeCurrent();
int size;
datetime time_buff[];
double open_buff[];
double close_buff[];
double high_buff[];
double low_buff[];
candlesticks cand_buff[];
//--- сбросим значение ошибкиResetLastError();
//--- получим время появления баров из диапазонаif(CopyTime(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,time_buff)==-1)
{
PrintFormat("Не удалось скопировать значения времени. Код ошибки = %d",GetLastError());
return;
}
//--- получим максимальные цены баров из диапазонаif(CopyHigh(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,high_buff)==-1)
{
PrintFormat("Не удалось скопировать значения максимальных цен. Код ошибки = %d",GetLastError());
return;
}
//--- получим минимальные цены баров из диапазонаif(CopyLow(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,low_buff)==-1)
{
PrintFormat("Не удалось скопировать значения минимальных цен. Код ошибки = %d",GetLastError());
return;
}
//--- получим цены открытия баров из диапазонаif(CopyOpen(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,open_buff)==-1)
{
PrintFormat("Не удалось скопировать значения цен открытия. Код ошибки = %d",GetLastError());
return;
}
//--- получим цены закрытия баров из диапазонаif(CopyClose(InpSymbolName,InpSymbolPeriod,InpDateStart,date_finish,close_buff)==-1)
{
PrintFormat("Не удалось скопировать значения цен закрытия. Код ошибки = %d",GetLastError());
return;
}
//--- определим размерность массивов
size=ArraySize(time_buff);
//--- сохраним все данные в массиве структурыArrayResize(cand_buff,size);
for(int i=0;i<size;i++)
{
cand_buff[i].open=open_buff[i];
cand_buff[i].close=close_buff[i];
cand_buff[i].high=high_buff[i];
cand_buff[i].low=low_buff[i];
cand_buff[i].date=time_buff[i];
}
//--- откроем файл для записи массива структуры в файл (если его нет, то создастся автоматически)ResetLastError();
int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON);
if(file_handle!=INVALID_HANDLE)
{
PrintFormat("Файл %s открыт для записи",InpFileName);
PrintFormat("Путь к файлу: %s\\Files\\",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
//--- подготовим счетчик количества байтuint counter=0;
//--- в цикле запишем значения массиваfor(i=0;i<size;i++)
counter+=FileWriteStruct(file_handle,cand_buff[i]);
PrintFormat("В файл %s записано %d байт информации",InpFileName,counter);
PrintFormat("Всего байтов: %d * %d * %d = %d, %s",size,5,8,size*5*8,size*5*8==counter ? "Верно" : "Ошибка");
//--- закрываем файлFileClose(file_handle);
PrintFormat("Данные записаны, файл %s закрыт",InpFileName);
}
elsePrintFormat("Не удалось открыть файл %s, Код ошибки = %d",InpFileName,GetLastError());
}
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Nah... J'ai toujours aimé les filles.
Euh... (expire doucement) : )
C'est génial ! :)
Je promets de ne pas abuser de ces connaissances. :)
Lan. Nuit-nuit ! Je vais dormir maintenant.
Artyom voulait dire par "... condition déclenchée - mettre une marque", ce qu'il voulait dire c'est qu'il fallait écrire dans le code du script pour mettre l'icône (marqueur) lorsque la condition est déclenchée.
La référence MQL4 contient de très bons exemples de scripts pour la création d'icônes. Par exemple, ce script qui crée et déplace les icônes "Acheter" sur un graphique.Bon script, tirez la fonction requise de là,
et voilà.
Je veux écrire la structure, mais je ne peux pas ! Il est écrit dans l'aide que FileWriteStruct écrit dans un fichier binaire, si la taille n'est pas spécifiée, alors la structure entière.
Qui a une opinion ?
Il écrit toujours sur un binaire.
Ou m'envoyer dans une agence où ils pourront m'aider.
Je veux écrire la structure, mais je ne peux pas ! Il est écrit dans l'aide que FileWriteStruct écrit dans un fichier binaire, si la taille n'est pas spécifiée, alors la structure entière.
Qui a une opinion ?
Il écrit toujours sur un binaire.
Ou me diriger vers une agence où ils peuvent m'aider.
Où définissez-vous la taille du tableau?
Où définissez-vous la taille du tableau ?
Dans la déclaration " ORD Orders[10] ;" ou via "ArrayResize( Orders, 10)", mais cela n'affecte pas l'erreur. Je viens de le vérifier. (Je n'ai pas vraiment précisé la taille dans le script).
Je suppose qu'il n'y a pas de possibilité de convertir différents types de données.
Terminal 646, ME 934.
dans la déclaration " ORD Orders[10] ;" ou via "ArrayResize( Orders, 10)", mais cela n'affecte pas l'erreur. Je viens de vérifier. (Je n'ai pas vraiment spécifié de taille dans le script).
Je suppose qu'il n'y a pas de possibilité de convertir différents types de données.
Terminal 646, ME 934.
L'exemple de test a signalé que le fichier a été créé. Je n'arrive pas à le trouver.
L'exemple de test a signalé que le fichier a été créé. Je n'arrive pas à le trouver.
Je l'ai trouvé. Bien que je devrais l'avoir dans un répertoire complètement différent. Donc ça marche.
Je l'ai trouvé. Bien que je l'aie dans un répertoire complètement différent. Donc ça marche.
Je peux voir les corrections ? Si le fichier est le mien.
Si celui de l'aide, DEMO_FileWriteStruct, donc il compile, j'ai essayé de prendre la fonction d'écriture au fichier de celui-ci, mais je n'ai pas besoin de contrôler le nombre de lignes écrites. Ou ai-je bien compris que la structure est écrite octet par octet ?
J'ai alors une question : faut-il aussi le lire octet par octet ? Dans la structure, lorsqu'il est nécessaire de la recharger à partir du fichier ?
Pouvons-nous jeter un coup d'œil aux corrections ?
J'ai utilisé l'exemple de l'aide
J'ai utilisé l'exemple de l'aide