Ошибки, баги, вопросы - страница 1804
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Sleep нужен только для случаев, когда символа нет в Обзоре рынка. Для всех символов, что есть в Обзоре рынка перед запуском (и во время работы) индикатора, никакие слипы не нужны.
1531 - тормоза Metaquotes-Demo не исчезли.
Запрос с ответом
Request.magic = 0
Request.order = 0
Request.symbol = #KO
Request.volume = 1.0
Request.price = 40.31
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Position
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 117613087
Result.order = 133997293
Result.volume = 1.0
Result.price = 40.31
Result.bid = 40.28
Result.ask = 40.31
Result.comment = Request executed 345.781 + 26.356 ms
Result.request_id = 5712
Result.retcode_external = 0
345 мс выполнялся OrderSend и 26 мс понадобилось на то, чтобы в истории стали доступны соответствующие ордер и сделка. Т.е. очень медленная синхронизация - такого раньше не наблюдал.
Стандартный лог
2017.02.14 22:26:46.852 Trades '5122740': accepted prices for #KO 1.00
2017.02.14 22:26:46.852 Trades '5122740': answer prices for #KO 1.00 40.28 / 40.31 in 86.046 ms (0.190 ms on server)
2017.02.14 22:26:46.852 Trades '5122740': request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades '5122740': accepted request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades '5122740': deal #117613087 buy 1.00 #KO at 40.31 done (based on order #133997293)
2017.02.14 22:26:47.107 Trades '5122740': order #133997293 buy 1.00 / 1.00 #KO at 40.31 done in 345.709 ms (3.022 ms on server)
Новый лог теперь в 1531! Прошу пояснить по этому случаю, что к чему.
ЗЫ Лог почти сразу после тормозов
2017.02.14 22:26:47.503 Trades '5122740': accepted prices for #KFT 1.00
2017.02.14 22:26:47.506 Trades '5122740': answer prices for #KFT 1.00 49.17 / 49.20 in 70.980 ms (4.166 ms on server)
2017.02.14 22:26:47.506 Trades '5122740': request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades '5122740': accepted request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades '5122740': deal #117613092 buy 1.00 #KFT at 49.20 done (based on order #133997299)
2017.02.14 22:26:47.583 Trades '5122740': order #133997299 buy 1.00 / 1.00 #KFT at 49.20 done in 149.304 ms (3.015 ms on server)
Это Requested-символы, поэтому на маркет-ордерах помедленнее, чем другие.
Тормоза на TRADE_ACTION_REMOVE.
Request.magic = 0
Request.order = 134003202
Request.symbol =
Request.volume = 0.0
Request.price = 0.0
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 0
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_FOK (0)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134003202
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 290.089 + 0.005 ms
Result.request_id = 10078
Result.retcode_external = 0
GG 0 23:02:46.849 Trades '5122740': accepted buy limit 1.00 Si-3.17 at 56288
PR 0 23:02:46.852 Trades '5122740': order #134003202 buy limit 1.00 / 1.00 Si-3.17 at market done in 54.423 ms (0.342 ms on server)
PR 0 23:02:46.854 Trades '5122740': cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
LL 0 23:02:47.142 Trades '5122740': accepted cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
CE 0 23:02:47.144 Trades '5122740': cancel #134003202 buy limit 1.00 Si-3.17 at market done in 290.050 ms (1.400 ms on server)
Как это нет цены, есть даже в логе она указана?!
Запрос
2017.02.14 23:18:41.442 Request.magic = 0
2017.02.14 23:18:41.442 Request.order = 0
2017.02.14 23:18:41.442 Request.symbol = EURPLN
2017.02.14 23:18:41.442 Request.volume = 1.0
2017.02.14 23:18:41.442 Request.price = 4.30632
2017.02.14 23:18:41.442 Request.stoplimit = 0.0
2017.02.14 23:18:41.442 Request.sl = 0.0
2017.02.14 23:18:41.442 Request.tp = 0.0
2017.02.14 23:18:41.442 Request.deviation = 100
2017.02.14 23:18:41.442 Request.type = ORDER_TYPE_BUY (0)
2017.02.14 23:18:41.442 Request.type_filling = ORDER_FILLING_RETURN (2)
2017.02.14 23:18:41.442 Request.type_time = ORDER_TIME_GTC (0)
2017.02.14 23:18:41.442 Request.expiration = 1970.01.01 00:00:00
2017.02.14 23:18:41.442 Request.comment = My Position
2017.02.14 23:18:41.442 Request.position = 0
2017.02.14 23:18:41.442 Request.position_by = 0
2017.02.14 23:18:41.442 Result.retcode = 10021
2017.02.14 23:18:41.442 Result.deal = 0
2017.02.14 23:18:41.442 Result.order = 0
2017.02.14 23:18:41.442 Result.volume = 0.0
2017.02.14 23:18:41.442 Result.price = 0.0
2017.02.14 23:18:41.442 Result.bid = 0.0
2017.02.14 23:18:41.442 Result.ask = 0.0
2017.02.14 23:18:41.442 Result.comment = No prices 0.028 + 0.000 ms
2017.02.14 23:18:41.442 Result.request_id = 0
2017.02.14 23:18:41.442 Result.retcode_external = 0
2017.02.14 23:18:41.442
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_BID) = 4.30151
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_ASK) = 4.30632
Ошибка [No prices] на ровном месте
Как это нет цены, есть даже в логе она указана?!
ЗЫ. В данный момент общаюсь с техподдержкой очень известной компании на L... (ведётся конфиденциальная переписка, поэтому называть не буду), они объясняют, что время исполнения на их торговом сервере одинаково что для приказов исходящих с МТ4 (у них МТ4), что отправленных по FIX и составляет примерно 1-6мс. Тогда, вопрошаю я у них, на что тратятся время 40-50 мс при торговле из МТ4, так с момента отправки приказа и получения ответа проходит 40-60 мс примерно. Они толерантно пожимают плечами, типа ищи у себя в задержках сетевых, я им говорю пинг 1-2мс, а они опять пожимают плечами. Вывод - тормозит серверная часть МТ4/5. Теперь вот логи новые показывают это. Я понимаю, что время не может быть "чистым" как по FIX, но по крайней мере должно быть одинакового порядка.
ЗЫ. В данный момент общаюсь с техподдержкой очень известной компании на L... (ведётся конфиденциальная переписка, поэтому называть не буду), они объясняют, что время исполнения на их торговом сервере одинаково что для приказов исходящих с МТ4 (у них МТ4), что отправленных по FIX и составляет примерно 1-6мс. Тогда, вопрошаю я у них, на что тратятся время 40-50 мс при торговле из МТ4, так с момента отправки приказа и получения ответа проходит 40-60 мс примерно. Они толерантно пожимают плечами, типа ищи у себя в задержках сетевых, я им говорю пинг 1-2мс, а они опять пожимают плечами. Вывод - тормозит серверная часть МТ4/5. Теперь вот логи новые показывают это. Я понимаю, что время не может быть "чистым" как по FIX, но по крайней мере должно быть одинакового порядка.
В L... имели в виду, что когда получают в свою систему приказ, то время исполнения в самой системе и отправке обратно мизерное. Получить они приказ могут от MT4-сервера, либо по FIX и другим их API. Сам же MT4-сервер многие десятки мс тратит на внутреннюю обработку, никак не связанную с execution.
Когда-то на MT4 минимальное время было 150 мс. Похоже, что-то серьезно подрихтовали, раз стало 40-60. Но MT5 заметно быстрее. По логам теперь видно, сколько сам сервер отрабатывал. Осталось понять, на что основное время уходит.
Ошибка компиляции: нельзя обратиться к f() //2
#import "Test.ex5"
void f(); //1
#import
void f() {} //2
void OnStart()
{
fn g1 = Test::f; //нормально
fn g2 = f; //Error: 'f' - cannot resolve function address
}