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

Dmitry Fedoseev
55148
Dmitry Fedoseev  
Roffild:

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

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


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

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

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

Похоже, действительно заработала. Только что прилетело обновление до 1550, проверил - при открытии позиции сразу после OrderSend() всё окружение синхронизировано. 
Artyom Trishkin
Модератор
43683
Artyom Trishkin  
Sergei Vladimirov:
Похоже, действительно заработала. Только что прилетело обновление до 1550, проверил - при открытии позиции сразу после OrderSend() всё окружение синхронизировано. 
Только новые напасти навалились :)
fxsaber
14970
fxsaber  
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)
Roffild
1297
Roffild  
Dmitry Fedoseev:

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

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

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

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

Slava
Модератор
12420
Slava  
Roffild:

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

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

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

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

Dmitry Fedoseev
55148
Dmitry Fedoseev  
Slawa:

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

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


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

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

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

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

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

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

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