[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 59
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Можно, меняете имя детализированного отчета на обычный и будет вам счастье
Подскажите, если нетрудно, где именно можно заменить это имя? В справке пользователя об этом вообще ничего не написано.
Есть ли индикатор, который считает волатильность, например дневную. Но не такой, что неопределенное число выдает типа 0,34. А так чтоб он считал количесво тиков свечи в день и делил напримеер на заданный период (количество дней), чтоб можно было знать среднее значение. Пример: открытие 100, закрытие 200; второй день - открытие 200, закрытие 250. Средняя волатильность за эти 2 дня = ((200-100)+(250-200))/2дня=(100+50)/2=75
Где скачать, если есть.
Эээ.. вы меня ставите в тупик.... вы что никогда файлы не переименовывали???
Предполагается, что терминал через заданный интервал времени, допустим каждые 20 минут, автоматически формирует отчет и скидывает его на фтп сервер. Фтп сервер хостера, для дальнейшего отображения отчета на сайте. Эта функция терминала по умолчанию сохраняет обычный отчет, тогда как хотелось бы детализированный, вместе с дополнительной информацией и графиком. Вручную то можно детализированный сохранить без проблем и выбрать период истории, который нужен.
И вы меня сперва поставили в тупик - что и где я должен вручную переименовывать, чтобы организовать работу автоматической функции? Вообще непонятно.
Повторение поста из https://forum.mql4.com/ru/10422, возможно здесь свой вопрос будет задать уместнее.
Вот часть кода, который из example.ini:
[common]
numCross=3
[cross1]
name=EURUSD
[cross2]
name=GBPUSD
[cross3]
name=USDJPY
читает кол-во пар и потом поочередно в массив of string сохраняет названия пар:
#include <IniFiles.mqh>
extern string config_path = "C:\Program Files\MetaTrader - MetaQuotes\experts\example.ini";
string CrossName[];
int numCross=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
string sectionName = "common";
numCross = ReadIniInteger(config_path, sectionName, "numCross", 0);
ArrayResize(CrossName, numCross);
for (int i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = ReadIniString(config_path, sectionName, "name", "-");
Print("init.1: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.1: read complete");
for (i=0; i<numCross; i++)
{
Print("init.2: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("-------------------------------");
for (i=0; i<numCross; i++)
{
sectionName = StringConcatenate("cross", i+1);
CrossName[i] = StringSubstr(ReadIniString(config_path, sectionName, "name", "-"), 0, 0);
Print("init.3: CrossName[", (i+1), "]=", CrossName[i]);
}
Print("init.3: read complete");
for (i=0; i<numCross; i++)
{
Print("init.4: CrossName[", (i+1), "]=", CrossName[i]);
}
return(0);
}
вроде бы все просто и после прочтения ini мы должны получить массив имен пар.
Но в результате после очередного чтения параметра из ini и присваивания очередному элементу массива значения,
все остальные ранее присвоенные элементы получают тоже самое значение.
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.4: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.3: CrossName[1]=EURUSD
2009.04.09 02:17:06 example GBPUSD,H4: -------------------------------
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[2]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.2: CrossName[1]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: read complete
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[3]=USDJPY
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[2]=GBPUSD
2009.04.09 02:17:06 example GBPUSD,H4: init.1: CrossName[1]=EURUSD
Получается, что при присваивании переменной строкового массива фактически происходит присвоение
ссылки а не значения. Просмотрел всю доступную документацию плюс форум, но ответа почему это так не нашел.
Выход нашел через использование StringSubstr, но что-то подсказывает, что это не совсем парвильно.
Вопроск тем, кто знает:как правильно элементам массива строк присваивать значения других переменных?
Повторение поста из https://forum.mql4.com/ru/10422, возможно здесь свой вопрос будет задать уместнее.
Вспомнил! Особенность реализации строк. После ресайза массива по нему надо пройтись и обнулить:
Могу ошибаться, но должно помочь.Предполагается, что терминал через заданный интервал времени, допустим каждые 20 минут, автоматически формирует отчет и скидывает его на фтп сервер. Фтп сервер хостера, для дальнейшего отображения отчета на сайте. Эта функция терминала по умолчанию сохраняет обычный отчет, тогда как хотелось бы детализированный, вместе с дополнительной информацией и графиком. Вручную то можно детализированный сохранить без проблем и выбрать период истории, который нужен.
И вы меня сперва поставили в тупик - что и где я должен вручную переименовывать, чтобы организовать работу автоматической функции? Вообще непонятно.
Шаблоны отчета statement.htm, и детализированного отчета StatementDetailed.htm находятся в папке terminal\templates\ . По умолчанию терминал отправляет обычный отчет statement.htm, вам же нужен детализированный StatementDetailed.htm, я Вам русским языком предложил переименовать в среде windows файл StatementDetailed.htm на statement.htm . Или инструкцию по переименованию тоже писать ?
Уважаемые эксперты,
пожалуйста помогите разораться с ЛОКированием сделок
подробности и код тут: 'Помогите разобраться с ЛОКированием позиций'
Всегда с уважением,
Шаблоны отчета statement.htm, и детализированного отчета StatementDetailed.htm находятся в папке terminal\templates\ . По умолчанию терминал отправляет обычный отчет statement.htm, вам же нужен детализированный StatementDetailed.htm, я Вам русским языком предложил переименовать в среде windows файл StatementDetailed.htm на statement.htm . Или инструкцию по переименованию тоже писать ?
Нет переименовать я и сам смогу, а вот чтобы заменить один шаблон на другой, мне это и в голову не пришло...
Огромное спасибо! Теперь все понятно и все работает!!!
Очень просто - при поступлении сигнала Cls_S или Cls_B забываем про позицию, открытую последней (сбрасываем значение переменной Last_Position обратно на -1).
if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;
теоретически понятно. только почему то теперь эксперт совсем перестал заключать сделки((
у меня сейчас так:
есть какая-то ошибка?