Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На реал-тайме сказываться не должно.
У меня, к сожалению, сказывается.
Есть кнопка, нажатие на которую отображает/скрывает историю сделок. Все, конечно, отображать смысла нет, но часто нужно выбрать несколько десятков "своих" по символу, магику, или комментарию из нескольких тысяч других. Вот тогда и начинаются тормоза. Мысль — кэшировать список "своих" и обновлять его только новыми историческими сделками.
А еще я видел глючного брокера, который реджектил маркет-ордера, и работающий советник за час мог сгенерировать сотню тысяч реджектнутых ордеров в историю. Тогда и сам терминал вешался...
Нужен пример ТС, в которой торговая история (не ценовая) существенно влияет на время бэктеста.
В качестве фантазии: построение кривой баланса по историческим сделкам и расчет лота новых сделок в зависимости от наклона кривой.
Если не держать свой кэш, историю нужно будет перед каждой сделкой прочесывать полностью. Но тут, конечно, проще собирать в массив значения баланса, хранить все сделки не нужно.
У меня, к сожалению, сказывается.
Есть кнопка, нажатие на которую отображает/скрывает историю сделок. Все, конечно, отображать смысла нет, но часто нужно выбрать несколько десятков "своих" по символу, магику, или комментарию из нескольких тысяч других. Вот тогда и начинаются тормоза. Мысль — кэшировать список "своих" и обновлять его только новыми историческими сделками.
Понял проблему. Да, встроенное в библу полноценное кеширование все же назрело. Надо будет думать, как реализовать.
А еще я видел глючного брокера, который реджектил маркет-ордера, и работающий советник за час мог сгенерировать сотню тысяч реджектнутых ордеров в историю. Тогда и сам терминал вешался...
Хотелось бы посмотреть этого замечательного брокера.
В качестве фантазии: построение кривой баланса по историческим сделкам и расчет лота новых сделок в зависимости от наклона кривой.
Если не держать свой кэш, историю нужно будет перед каждой сделкой прочесывать полностью. Но тут, конечно, проще собирать в массив значения баланса, хранить все сделки не нужно.
Думал про такое, но в том то и дело, что сразу напрашивается ВР баланса. Как это не парадоксально, но, похоже, кеширование торговой истории востребовано только для боевого применения (не Тестер).
Понял проблему. Да, встроенное в библу полноценное кеширование все же назрело. Надо будет думать, как реализовать.
По идее, будет достаточно хранить тикет DEAL_ENTRY_IN для каждой сделки, т.к. 99% времени выполняется GetPositionDealIn (а в ней — HistorySelectByPosition).
Хотелось бы посмотреть этого замечательного брокера.
PrimeXM-LiveUK
Это костыльный мост в саксо-банк.
По идее, будет достаточно хранить тикет DEAL_ENTRY_IN для каждой сделки, т.к. 99% времени выполняется GetPositionDealIn (а в ней — HistorySelectByPosition).
Давно было сделано сравнение Hash с торговой историей. Поэтому, наверное, оптимально копать в Generic-сторону.
Как мотиватор изучить этот метод - пойдет! Где-нибудь летом в спокойной обстановке...
Обновление от fxsaber:
Работа с длинной историей теперь просто летает!
Модераторы, если есть возможность, залейте код в базу.
Обновление от fxsaber:
Работа с длинной историей теперь просто летает!
Модераторы, если есть возможность, залейте код в базу.
Спасибо, обновил на всех языках
Использую эту библиотеку в своих советниках на МТ4.
Обнаружил странный момент:
Если тестирование идет на серверах Метаквотс - демо, то библиотека работает нормально. (например при открытие ордера)
Если взять для тестов брокера фхтм демо- то функция OrderSend открывает сделку, но возвращает ошибку.
После отладки ticket = -1;
Текст журнала ниже:
При этом в журнале же выводится сообщение о том, что все нормально.
Почему может быть такая проблема?
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::AccountInfoString(ACCOUNT_SERVER) = ForexTimeFXTM-Demo01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) (bool)::TerminalInfoInteger(TERMINAL_CONNECTED) = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoInteger(TERMINAL_PING_LAST) = 55335
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoDouble(TERMINAL_RETRANSMISSION) = 0.8875739644970414
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) ::TerminalInfoInteger(TERMINAL_BUILD) = 1835
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) (bool)::TerminalInfoInteger(TERMINAL_X64) = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Res = false
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) MT4ORDERS::OrderSendBug = true
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.action = TRADE_ACTION_DEAL (1)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.magic = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.order = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.symbol = EURUSD
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.volume = 0.01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.price = 1.17681
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.stoplimit = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.sl = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.tp = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.deviation = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type = ORDER_TYPE_BUY (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type_filling = ORDER_FILLING_FOK (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.type_time = ORDER_TIME_GTC (0)
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.expiration = 1970.01.01 00:00:00
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.comment =
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.position = 2210821620
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Request.position_by = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.retcode = 10009
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.deal = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.order = 2210821775
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.volume = 0.01
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.price = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.bid = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.ask = 0.0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.comment = Request executed 190.826 + 1000.396 ms
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.request_id = 154
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) Result.retcode_external = 0
2018.06.08 22:58:47.197 EA MT5 (EURUSD,M1) MT4ORDERS: not Sync with History!, please, send logs to fxsaber!
2018.06.08 22:55:47.197 EA MT5 (EURUSD,M1) OrderSend with error 4754
Спасибо, обновил на всех языках
Хорошо бы и fxsaber-а вернуть.