Новая версия платформы MetaTrader 5 build 1525: Представление истории в виде позиций и улучшение тестера - страница 7
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подымает расход памяти до 6G, связано с тем, что создаётся и удаляется около 3000шт графических объектов в цикле, они создаются и удаляются по требованию пользователя, это графический безбуферный индикатор. Одновременно может создаваться 5-8 пачек объектов, в каждой до 3000шт, и вот со временем работы терминал начинает подвисать, и приходиться перезагружать, не так часто, но раз в сутки точно. Хорошо, как только найду закономерность - сразу сделаю заявку.
А что за надобность создавать столько объектов ??? Конечно, если создавать сотни тысяч графических примитивов - память можно исчерпать, даже если с ней работать корректно.
Можно привести пример, когда бы пользователю реально столько потребовалось ?
По-моему, уже при сотне объектов - нормальный человек начинает большую часть из них игнорировать...
Почему бы не добавить информацию о стакане (на глубину пусть 100 лотов хотя бы) на первый тик? Если торгуем мало ликвидный актив, то это может быть очень значимым показателем. Пусть не на каждой минуте, а начиная с 15 минутки.
А что за надобность создавать столько объектов ??? Конечно, если создавать сотни тысяч графических примитивов - память можно исчерпать, даже если с ней работать корректно.
Можно привести пример, когда бы пользователю реально столько потребовалось ?
По-моему, уже при сотне объектов - нормальный человек начинает большую часть из них игнорировать...
~1800 на кнопку при увеличенном графике, если уменьшить бары, то будет в два раза больше. На скрине нажато всего 2 кнопки (пачки) из 28, итого объектов = 3665шт. Тут игнорировать то нечего)
~1800 на кнопку при увеличенном графике, если уменьшить бары, то будет в два раза больше. На скрине нажато всего 2 кнопки (пачки) из 28, итого объектов = 3665шт. Тут игнорировать то нечего)
У вас на 1 пиксель по объекту чтоли?
Рисуется трендовыми линиями, как нарисовать бары, другого решения не нашёл. Сейчас расставил флаги, то пока работает очень даже хорошо, вот только с удалением и первоначальным рисование тормоза, но это не важно, 1-2 секунда ничего не решает в этом случае.
А вот так паршиво рисует в пятом терминале - отправил просьбу в СД
Рисуется трендовыми линиями, как нарисовать бары, другого решения не нашёл. Сейчас расставил флаги, то пока работает очень даже хорошо, вот только с удалением и первоначальным рисование тормоза, но это не важно, 1 секунда ничего не решает в этом случае.
Так что вы рисуете? Бары или кнопки? Вы же постоянно повторяете про кнопка-кнопка-кнопка.
Если кнопки, то их эффективнее рисовать канвас объектами - всего один объект на кнопку. Сделали два битмапа в памяти для нажатой и отжатой кнопки и все.
Так что вы рисуете? Бары или кнопки? Вы же постоянно повторяете про кнопка-кнопка-кнопка.
Если кнопки, то их эффективнее рисовать канвас объектами - всего один объект на кнопку. Сделали два битмапа в памяти для нажатой и отжатой кнопки и все.
Рисуются кнопки единоразово в самом начале, ну а потом уже бары, свечи и линии через буфера.
Больше всего потребление идёт именно на рисование баров, так-ка там много маленьких объектов, и их нужно обновлять при прокрутке графика, поэтому идёт частое обращение к существованию объекта и изменения точек привязки.
Возьмите один объект канвас на весь экран и сами в нем линии рисуйте.
Это категорически эффективнее попыток управлять тысячами мелких объектов.
Воспользуйтесь биржевой торговлей с постоянными переоткрытиями позиций между тоговыми сессиями, подержите позы пару недель и сразу станет понятно. Вместо десятков разрозненных ордеров и позиций вы увидите одну красивую и точную строку. Как и просили трейдеры.
Я трейдер и этого не просил. Более того, рациональность "одной строчки" если и прослеживается, то только в приведенном примере. Чтобы не быть голословным, привожу советник для тестера (выходные)
input int Amount = 5; // Количество OrderSend
input int Interval = 10000; // Через сколько тиков делать очередной OrderSend
bool MyOrderSend( double Lots )
{
MqlTick Tick;
SymbolInfoTick(_Symbol, Tick);
MqlTradeRequest Request = {0};
Request.action = TRADE_ACTION_DEAL;
Request.symbol = _Symbol;
if (Lots > 0)
{
Request.volume = Lots;
Request.price = Tick.ask;
Request.type = ORDER_TYPE_BUY;
}
else
{
Request.volume = -Lots;
Request.price = Tick.bid;
Request.type = ORDER_TYPE_SELL;
}
MqlTradeResult Result;
return(OrderSend(Request, Result));
}
void OnInit()
{
MyOrderSend(1); // Открываем начальную BUY-позицию
}
void OnTick()
{
static int i = 1;
static int Count = 0;
if ((Count < Amount) && (i % Interval == 0))
if (MyOrderSend((Count %2 == 0) ? -0.99 : 0.99)) // попеременно уменьшаем и увеличиваем BUY-позу на 0.99 лота
Count++;
i++;
}
Отчет
В тестере, к сожалению, новое представление не реализовано, но по отчету не сложно понять, что это будет в виде "одной строчки". Какую инфу и удобство несет эта одна строчка в данной ситуации - понять не могу. Можно месяцами очень активно торговать в режиме only BUY, при этом вместо полного закрытия позиции, оставлять мин. лот (0.01), который никакого риска не несет (копейки). И в итоге будет ОДНА строчка! Вместо того, чтобы показать, что здесь было куплено на 0.99, а здесь эти 0.99 были закрыты.
На форексе это тоже отлично помогает для компаний, кто использует ежедневное переоткрытие позиций вместо начисления свопа.
Именно так и нужно понимать смысл слияния - логическая цепочка состояний одной исходной позиции сворачивается в одну строку. Другая позиция по тому же символу, созданная по другой логике, будет отображаться отдельно.
Рисуется трендовыми линиями, как нарисовать бары, другого решения не нашёл.