Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 714
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С использованием OnTradeTransaction странно изменилось время оптимизации. Система на 15М, очень простая, история годовая, один прогон происходит за 0,3 - 0,4 секунды.
После запуска оптимизации первые 200-300 прогонов идут со скоростью меньше секунды, следующие замедляются вплоть до 15-20 секунд (в 50 раз!);
Перегрева процессора и троттлинга нет, памяти свободно больше половины (из 16 ГБ).
До использования обработчика OnTradeTransaction ничего подобного не было - даже более сложные советники на мелких таймфреймах оптимизировались с примерно одинаковой скоростью.
Это HistoryDealSelect так сильно влияет на скорость? Как можно ликвидировать тормоза?
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
if( trans.type != TRADE_TRANSACTION_DEAL_ADD) return;
ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
long deal_type =0;
double deal_volume =0;
long deal_magic =0;
if(HistoryDealSelect(trans.deal))
{
deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
}
else
return;
if (deal_type == DEAL_TYPE_BUY && deal_magic == MagicNumber) current_position += deal_volume;
if (deal_type == DEAL_TYPE_SELL && deal_magic == MagicNumber) current_position -= deal_volume;
}
Привет!
Кто знает - как в индикаторе отобразить бары, которые будут находиться справа от нулевого бара и сколько их максимум? (прогноз цены чтобы сделать)
Это HistoryDealSelect так сильно влияет на скорость? Как можно ликвидировать тормоза?
Разработчики рекомендуют сводить к минимуму вызов History-функций (дорогие) - через кэширование истории.
Рабочее такое решение выкладывал в кодобазу (MT4Orders), но Вам оно, наверное, не подойдет.
После использования кэширования тормозов не наблюдал.
ЗЫ Хотя, в Вашем OnTradeTransaction тормозить не должно, хоть и написан не оптимально.
Привет!
Кто знает - как в индикаторе отобразить бары, которые будут находиться справа от нулевого бара и сколько их максимум? (прогноз цены чтобы сделать)
К времени открытия последнего бара приплюсуй PeriodSeconds() и туда рисуй графическими объектами свечу. Максимум сколько будет видно справа. Но не проверял как будет отображаться если попадёт выходной. Наверное надо самостоятельно учитывать.
К времени открытия последнего бара приплюсуй PeriodSeconds() и туда рисуй графическими объектами свечу. Максимум сколько будет видно справа. Но не проверял как будет отображаться если попадёт выходной. Наверное надо самостоятельно учитывать.
На чарте рисует продолжение, а в окне индикатора - к сожалению нет.
Может быть я конечно ошибаюсь...
Что скажете - можно ли продолжить линию индикатора за нулевой бар вправо?
Кто в курсе - можно ли продолжить линию индикатора за нулевой бар вправо?
Можно. Можно поставить сдвиг, но сделать расчёт по не существующим значениям наверное не получится, да и в отображении индикатора не используется время. Потому я и говорил об отображении баров графическими элементами. В ObjectCreate() присутствует и номер окна(подокна) и время. Так-что проблем с созданием графических элементов быть не должно.
В окне чарта используя метки времени обратиться к будущим предполагаемым барам можно. Получилось.
Однако сделать то же самое в окне индикатора не удается. То есть записать значения в буфер индикатора с индексом -1, -2 и прочее не получается.
Вопрос в этом.
В принципе понятно. Выход - построение индикатора графическими объектами.
В окне чарта используя метки времени обратиться к будущим предполагаемым барам можно. Получилось.
Однако сделать то же самое в окне индикатора не удается. То есть записать значения в буфер индикатора с индексом -1, -2 и прочее не получается.
Вопрос в этом.
В принципе понятно. Выход - построение индикатора графическими объектами.