tradehistoryexporter_v1.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «tradehistoryexporter_v1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Скрипт для MetaTrader 4, который экспортирует историю торговых операций в текстовый файл (CSV или разделитель-зависимый формат). Он проходит по всем закрытым ордерам в истории аккаунта и записывает подробные данные о каждой сделке: тикет, символ, тип, объём, даты открытия и закрытия, цены, прибыль, комиссии, свопы и магический номер. Числа форматируются в итальянском стиле (запятая в качестве десятичного разделителя), даты — в формате ДД/ММ/ГГГГ.
Скрипт поддерживает фильтрацию по символу торгового инструмента и магическому номеру ордера, а также позволяет выбрать разделитель — точку с запятой или запятую. Перед записью данных об ордерах выводятся метаданные аккаунта: сервер, номер аккаунта, валюта и дата экспорта. Результат сохраняется в папку MQL4/Files/.
Скрипт обрабатывает только ордера типов BUY и SELL; прочие типы ордеров пропускаются. Все данные записываются в один файл за один запуск, после чего скрипт завершает работу.
Настройки программы
| Настройка | Описание |
|---|---|
| OutputFileName | Имя файла, в который будет записана экспортированная история торгов. По умолчанию — TradeHistory.csv. Файл сохраняется в папку MQL4/Files/. |
| OnlySymbol | Символ торгового инструмента для фильтрации ордеров. Если поле не пустое, экспортируются только ордера по указанному символу. Пустая строка означает экспорт по всем символам. |
| MagicFilter | Магический номер для фильтрации ордеров. Если значение равно -1 (по умолчанию), фильтрация не применяется и экспортируются все ордера. Иное значение — только ордера с совпадающим магическим номером. |
| UseSemicolon | Переключатель формата разделителя полей в файле. При значении true используется точка с запятой, при false — запятая. |
Поиск по коду файла
#property strict
input string OutputFileName = "TradeHistory.csv";
input string OnlySymbol = "";
input int MagicFilter = -1;
input bool UseSemicolon = true;
string D(double value)
{
string s = DoubleToString(value, 2);
StringReplace(s, ".", ",");
return s;
}
string FormatDate(datetime t)
{
return StringFormat("%02d/%02d/%04d",
TimeDay(t),
TimeMonth(t),
TimeYear(t));
}
string FormatTime(datetime t)
{
return StringFormat("%02d:%02d",
TimeHour(t),
TimeMinute(t));
}
int OnStart()
{
// код доступен только после оплаты
}
int total = OrdersHistoryTotal();
int exported = 0;
int handle = FileOpen(OutputFileName, FILE_WRITE|FILE_TXT);
if(handle == INVALID_HANDLE)
{
Print("Errore apertura file: ", GetLastError());
return 0;
}
string sep = UseSemicolon ? ";" : ",";
FileWriteString(handle, "Broker"+sep+AccountServer()+"\r\n");
FileWriteString(handle, "Account"+sep+IntegerToString(AccountNumber())+"\r\n");
FileWriteString(handle, "Currency"+sep+AccountCurrency()+"\r\n");
FileWriteString(handle, "ExportDate"+sep+FormatDate(TimeCurrent())+" "+FormatTime(TimeCurrent())+"\r\n");
FileWriteString(handle, "\r\n");
FileWriteString(handle,
"Ticket"+sep+"Symbol"+sep+"Type"+sep+"Lots"+sep+
"OpenDate"+sep+"OpenTime"+sep+"OpenPrice"+sep+
"CloseDate"+sep+"CloseTime"+sep+"ClosePrice"+sep+
"SL"+sep+"TP"+sep+
"Profit"+sep+"Commission"+sep+"Swap"+sep+
"NetProfit"+sep+"Magic"+sep+"Comment"+sep+
"DurationMin\r\n"
Показано первые 50% кода (символов: 2307)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.