Особенности языка mql5, тонкости и приёмы работы - страница 15

 
Roffild:

Я лишь описал официально подтверждённый баг. Это вы предложили использовать какое-то API для решения этой проблемы.

Прошу не путать создание индикатора и его вызов через iCustom.‌


Вот и не путайте реальность со своими фантазиями. Это не баг. Какой API и ежу понятно. А вы вообще с какой целью здесь присутствуете?
 
Комментарии, не относящиеся к этой теме, были перенесены в "В режиме визуализации не отрисовываются отложенные ордера".
 
prostotrader:

Можете закончить танцы с бубном.

В СД ответили, что со следующего билда OrderSend() будет работать как надо :) 

Похоже, действительно заработала. Только что прилетело обновление до 1550, проверил - при открытии позиции сразу после OrderSend() всё окружение синхронизировано. 
 
Sergei Vladimirov:
Похоже, действительно заработала. Только что прилетело обновление до 1550, проверил - при открытии позиции сразу после OrderSend() всё окружение синхронизировано. 
Только новые напасти навалились :)
 
Sergei Vladimirov:
Только что прилетело обновление до 1550, проверил - при открытии позиции сразу после OrderSend() всё окружение синхронизировано. 

Подтверждаю, OrderSend стал полностью синхронизированным. Баги тормозов остались

З‌апрос/ответ

Request.action = TRADE_ACTION_REMOVE (8)
Request.magic = 0
Request.order = 136746576
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 = 136746576
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 2194.767 + 0.003 ms
Result.request_id = 245
Result.retcode_external = 0

Р‌езультат

MP      0       22:37:32.113    Trades  '5338170': cancel order #136746576 buy limit 0.10 #AA at 36.99
JM      0       22:37:34.308    Trades  '5338170': accepted cancel order #136746576 buy limit 0.10 #AA at 36.99
FE      0       22:37:34.308    Trades  '5338170': cancel #136746576 buy limit 0.10 #AA at market done in 2194.779 ms

И‌нтересно, что в лог теперь каждый раз записывается длительность выполнения OrderSend больше, чем есть на самом деле. Т.е. если замерить самому время выполнения OrderSend, то оно каждый раз будет на несколько миллисекунд меньше того значения, что указывается в Журнале.

ЗЫ Появились такие записи

deal #120390530 sell 0.10 #PG at 90.36 done (based on order #136747126)
 
Dmitry Fedoseev:

Вот и не путайте реальность со своими фантазиями. Это не баг. Какой API и ежу понятно. А вы вообще с какой целью здесь присутствуете?

Так где же код решения этой проблемы?

Разработчики уже подтвердили, что это баг и решения нет.

‌Коротко о себе: здесь с 2009 года, и полноценные макросы и конструкция B'1001011' - это мои предложения для MQL5. 

 
Roffild:

Так где же код решения этой проблемы?

Разработчики уже подтвердили, что это баг и решения нет.

Какой баг? Где подтвердили?

Для чтения-записи шаблонов никаких API не требуется. Всё штатно, средствами MQL5. В четвёрке тоже сделали https://www.mql5.com/ru/forum/168767/page14#comment_4122244

 
Slawa:

Какой баг? Где подтвердили?

Для чтения-записи шаблонов никаких API не требуется. Всё штатно, средствами MQL5. В четвёрке тоже сделали https://www.mql5.com/ru/forum/168767/page14#comment_4122244


Вообще не про шаблоны разговор, а про программное прикрепление индикатора, но с установкой индикаторной линии своего цвета. Вот этот товарищ выше считает, что отсутствие возможности установить свой цвет является багом.
 

Отсутствие возможности программно установить цвет индикатору является не багом, а особенностью архитектуры.

Индикаторы разделены на две части - рисовательную и рассчётную. Рисовательная часть индикатора отвечает за отрисовку в соответствии с выставленными настройками рассчитанных буферов. Рассчётная часть соответственно считает буфера. Рисовательная часть индикатора живёт на графике и работает в гуёвом потоке. Рассчётная часть индикатора живёт в кеше символа-периода и работает в потоке обновления символа.

Рассчётная часть индикатора ничего не знает про рисовательную часть. Эксперты оперируют исключительно рассчётными частями индикаторов (у которых в подавляющем числе случаев нет рисовательных частей).

Рисовательная часть созданного экспертом индикатора возникает только в том случае, если вызвана команда добавления индикатора на график (неважно, ручное добавление или ChartIndicatorAdd)‌. К одной и той же рассчётной части индикатора может обращаться несколько рисовательных частей, например, если открыто несколько графиков одного и того же символа-периода с одинаковым индикатором.

Резюме. Рассчётная часть индикатора может "иметь" любое количество рисовательных частей, от 0 до 99‌. Рассчётная часть индикатора не знает, сколько рисовательных частей её рисуют.

 
Slawa:
...
а нельзя ли сделать так, что бы по команде "Открыть график" во вкладке "Бэктест" после тестирования на открывшийся график автоматически добавлялись все индикаторы, которые использовались в советнике, с соответствующими параметрами?