Кастомные символы на реале можно использовать как индикатор для открытия или закрытия на реальных инструментах.
Вам и fxsaber: спасибо, и ведь ни слова об этом в документации. Предполагается, как всегда, что инфу надо черпать на форуме и сарафанном радио. Я-то думал, реализовали что-то вроде парного или n-инструментного трейдинга средствами терминала и еще думал, как они там кратность лота разруливают. Теперь ясно, для меня фишка наверное бесполезная.
template <typename T>
T MyPrint( const T Value, conststring Str, constbool DebugFlag = false ) { Print(Str + " = " + (string)Value); return(Value); }
#define _P(A) MyPrint(A, __FUNCSIG__", Line = " + (string)__LINE__ + ": " + #A) // Макрос для удобного и наглядного вывода значенийvoidOnStart()
{
conststring Name = "TEMP9"; // Имя кастомного символаconststring SymbOrig = "EURUSD"; // Имя оригинального символаMqlTick Ticks[];
constint Size = _P(CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)D'2019.01.01' * 1000)); // Считали EURUSD-тики за 2019 год.if ((Size > 0) && _P(CustomSymbolCreate(Name, NULL, SymbOrig)) && _P(SymbolSelect(Name, true))) // Создали символ на основе EURUSD.
{
_P(CustomTicksAdd(Name, Ticks)); // Поместили в него историю EURUSD через CustomTicksAddMqlTick AddTicks[1];
AddTicks[0] = Ticks[Size - 1]; // Взяли последний тик
AddTicks[0].time += 3600; // И к его времени добавили час
AddTicks[0].time_msc = (long)AddTicks[0].time * 1000;
_P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX)); // Удалили все тики, оставив только данные за январь 2019.
_P(CopyTicksRange(Name, Ticks)); // Посмотрели, сколько тиков осталось.
_P(CustomTicksAdd(Name, AddTicks)); // Пробросили один тик.
_P(CopyTicksRange(Name, Ticks)); // Увидели, что добавился не один тик, а 129.
_P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX)); // Делаем повторное удаление - да, 129!
_P(SymbolSelect(Name, false)); // Удалили символ из Обзора рынка.
_P(CustomSymbolDelete(Name)); // Удалили символ.
}
}
Результат
voidOnStart(), Line = 11: CopyTicksRange(SymbOrig,Ticks,COPY_TICKS_ALL,(long)D'2019.01.01'*1000) = 3316638voidOnStart(), Line = 13: CustomSymbolCreate(Name,NULL,SymbOrig) = truevoidOnStart(), Line = 13: SymbolSelect(Name,true) = truevoidOnStart(), Line = 15: CustomTicksAdd(Name,Ticks) = 3316638voidOnStart(), Line = 23: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 1158959voidOnStart(), Line = 24: CopyTicksRange(Name,Ticks) = 2157552voidOnStart(), Line = 26: CustomTicksAdd(Name,AddTicks) = 1voidOnStart(), Line = 28: CopyTicksRange(Name,Ticks) = 2157681voidOnStart(), Line = 29: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 129voidOnStart(), Line = 31: SymbolSelect(Name,false) = truevoidOnStart(), Line = 32: CustomSymbolDelete(Name) = true
Идет добавка бОльшего количества тиков, чем указано.
Что-то синтетики сильно жрут память и замедляют запуск терминала. Я вчера сделал два синтетика, открыл с ними по чарту на каждый. Сегодня терминал запускался три минуты(!!), потребление ОЗУ по Диспетчеру задач было 1.88 Гб. Удалил эти чарты, скрыл синтетики, запуск 20 сек., как раньше, ОЗУ 490 Мб. Билд 2006, Макс.баров в окне - Unlimited
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
Что-то синтетики сильно жрут память и замедляют запуск терминала. Я вчера сделал два синтетика, открыл с ними по чарту на каждый. Сегодня терминал запускался три минуты(!!), потребление ОЗУ по Диспетчеру задач было 1.88 Гб. Удалил эти чарты, скрыл синтетики, запуск 20 сек., как раньше, ОЗУ 490 Мб. Билд 2006, Макс.баров в окне - Unlimited
На первом синтетике была формула из Хелпа:
На втором простая формула:
0.5 * (ask(EURUSD) + ask(USDCAD))
Синтетики при запуске терминала съедает очень много ресурсов SSD диска. Если SSD диск медленный, то старт терминала, если запущенно несколько синтетиков может быть и 10 минут.
Про использование HDD для запуска терминала с синтетиками я и не говорю.
Когда поставил быстрый диск (Samsung 970 Pro) все проблемы с запуском терминала и синтетиками закончились.
Оперативной памяти при старте терминала при этом используется около 12 Gb. Процессор i7-6700K.
Только если мышкой поскроллить чарт, он приходит в норму. Могли бы поправить визуализацию по ChartRedraw?
Порекомендуйте способ обновления чарта после CustomRatesUpdate, чтобы он принудитльно нарисовал обновленные бары, а не только тогда, когда сам решит это сделать.
Кастомные символы на реале являются только информационными, не торговыми. Торговать по ним можно только в Тестере.
Кастомные символы на реале можно использовать как индикатор для открытия или закрытия на реальных инструментах.
Кастомные символы на реале можно использовать как индикатор для открытия или закрытия на реальных инструментах.
Вам и fxsaber: спасибо, и ведь ни слова об этом в документации. Предполагается, как всегда, что инфу надо черпать на форуме и сарафанном радио. Я-то думал, реализовали что-то вроде парного или n-инструментного трейдинга средствами терминала и еще думал, как они там кратность лота разруливают. Теперь ясно, для меня фишка наверное бесполезная.
Баг 05.
Баг CustomTicksAdd
Результат
Идет добавка бОльшего количества тиков, чем указано.
Что-то синтетики сильно жрут память и замедляют запуск терминала. Я вчера сделал два синтетика, открыл с ними по чарту на каждый. Сегодня терминал запускался три минуты(!!), потребление ОЗУ по Диспетчеру задач было 1.88 Гб. Удалил эти чарты, скрыл синтетики, запуск 20 сек., как раньше, ОЗУ 490 Мб. Билд 2006, Макс.баров в окне - Unlimited
На первом синтетике была формула из Хелпа:
На втором простая формула:
0.5 * (ask(EURUSD) + ask(USDCAD))
Что-то синтетики сильно жрут память и замедляют запуск терминала. Я вчера сделал два синтетика, открыл с ними по чарту на каждый. Сегодня терминал запускался три минуты(!!), потребление ОЗУ по Диспетчеру задач было 1.88 Гб. Удалил эти чарты, скрыл синтетики, запуск 20 сек., как раньше, ОЗУ 490 Мб. Билд 2006, Макс.баров в окне - Unlimited
На первом синтетике была формула из Хелпа:
На втором простая формула:
0.5 * (ask(EURUSD) + ask(USDCAD))
Синтетики при запуске терминала съедает очень много ресурсов SSD диска. Если SSD диск медленный, то старт терминала, если запущенно несколько синтетиков может быть и 10 минут.
Про использование HDD для запуска терминала с синтетиками я и не говорю.
Когда поставил быстрый диск (Samsung 970 Pro) все проблемы с запуском терминала и синтетиками закончились.
Оперативной памяти при старте терминала при этом используется около 12 Gb. Процессор i7-6700K.
Баг 05.
Баг CustomTicksAdd
Идет добавка бОльшего количества тиков, чем указано.
2007 - стало еще хуже. CustomTicksAdd вместо одного добавляет 63969 тиков.
ЗЫ 2007 - все баги актуальны.
Баг 02.
визуального эффекта даже ChartRedraw не дает.
Только если мышкой поскроллить чарт, он приходит в норму. Могли бы поправить визуализацию по ChartRedraw?
Порекомендуйте способ обновления чарта после CustomRatesUpdate, чтобы он принудитльно нарисовал обновленные бары, а не только тогда, когда сам решит это сделать.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов и API для языка R
fxsaber, 2019.02.22 12:40
Правильно ли, что после RatesUpdate в OnCalculate сбрасыватеся всегда в ноль prev_calculated?
Ведь если, например, обновляю свежий бар, то пересчитывать весь индикатор не нужно же.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов и API для языка R
fxsaber, 2019.02.22 12:14
Большая просьба, если нет символа, но есть его tkc-файлы, удалять их.
Столкнулся с ситуаций, что нештатно вылетел Терминал.
Захожу и вижу, что моего символа нет. Просто создаю одноименный символ и оказывает, что он с историей из tkc. Это выглядит ошибкой.