Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Стоп. Вы же написали:
Так у кого там какая армия из чего состоит?
Ну и вашу грубость насчёт "умника" я спишу на то, что вы по-русски плохо говорите, и не понимаете, что это обращение обозначает уничижительно-пренебрежительное отношение к собеседнику.
А что, потеряли чувство юмора, что-ли.
К сожалению да. Интерфейс обратного вызова между двумя принципиально разными системами замутить не получится.
Собственно, вопрос был почти риторический)
ИМХО, с добавлением совместимости с NET, настоятельно назрела необходимость добавить в терминал колл-бэки. Хотя бы один) Хотя бы, пропихивающий событие в очередь терминала.
Если через таймер, то как в тестере собрался работать? Ты ж вроде сказал, что кроссплатформенный код делаешь.
Артём, ну что за вопросы ? если таймер не работает, то он эмулируется от других источников..
это даже в "боевом роботе" всегда так, потому как EventSetTimer :-)
ps/ что-то заразительно потянуло в милитаристскую тематику..командные пункты, боевые роботы.."Галактеко опасносте"
Собственно, вопрос был почти риторический)
ИМХО, с добавлением совместимости с NET, настоятельно назрела необходимость добавить в терминал колл-бэки. Хотя бы один) Хотя бы, пропихивающий событие в очередь терминала.
у меня не получилось в МТ5события отловить, почему то Spy++ не видит события чартов, видимо самописные классы и событийные модели используются, а не стандартные виндовские, в МТ4 без проблем можно виндовс событие отправить
тож через OnTimer опрашиваю, и поэтому стараюсь минимальный пакет данных в запросе получать, хотя при современных скоростях ПК, может и зря так жадничаю )))
Если через таймер, то как в тестере собрался работать? Ты ж вроде сказал, что кроссплатформенный код делаешь.
в МТ5 таймер в тестере генерится без проблем, да и под C# одно удовольствие код писать - вызвал .dll, сразу запустил форму и в отдельный поток ( Thread ) всю графику и все, дальше только работаем с обменом данными между C# и МТ5, а графическая форма с кнопками сама по себе работает как обычное виндовское приложение - в запросе от МТ5 только состояние ранее кликнутых элементов передается, ничего не тормозит и не будет тормозить ;)
Артём, ну что за вопросы ? если таймер не работает, то он эмулируется от других источников..
это даже в "боевом роботе" всегда так, потому как EventSetTimer :-)
ps/ что-то заразительно потянуло в милитаристскую тематику..командные пункты, боевые роботы.."Галактеко опасносте"
Дык... Я ж хотел у Василия узнать как он сделает. Дабы сравнить с тем, что я себе сам давно уже сделал (не без подсказок Василя конечно)
у меня не получилось в МТ5события отловить, почему то Spy++ не видит события чартов, видимо самописные классы и событийные модели используются, а не стандартные виндовские, в МТ4 без проблем можно виндовс событие отправить
тож через OnTimer опрашиваю, и поэтому стараюсь минимальный пакет данных в запросе получать, хотя при современных скоростях ПК, может и зря так жадничаю )))
в МТ5 таймер в тестере генерится без проблем, да и под C# одно удовольствие код писать - вызвал .dll, сразу запустил форму и в отдельный поток ( Thread ) всю графику и все, дальше только работаем с обменом данными между C# и МТ5, а графическая форма с кнопками сама по себе работает как обычное виндовское приложение - в запросе от МТ5 только состояние ранее кликнутых элементов передается, ничего не тормозит и не будет тормозить ;)
Я делал в пятёрке через таймер в тестере. Даже простое его использование (а он - милисекундный мультитаймер) приводило к серьёзному замедлению тестера. Посему просто отказался от таймера в визуализаторе - там один фиг по тикам работать. Сделал две модели - по таймеру и по флагам событий через OnTick(). По таймеру в реалтайме, по тикам - в визуализаторе.
ЗЫ. Вру - три модели - ещё и через OnChartEvent() - там тоже только реалтайм.
у меня не получилось в МТ5события отловить, почему то Spy++ не видит события чартов, видимо самописные классы и событийные модели используются, а не стандартные виндовские, в МТ4 без проблем можно виндовс событие отправить
тож через OnTimer опрашиваю, и поэтому стараюсь минимальный пакет данных в запросе получать, хотя при современных скоростях ПК, может и зря так жадничаю )))
в МТ5 таймер в тестере генерится без проблем, да и под C# одно удовольствие код писать - вызвал .dll, сразу запустил форму и в отдельный поток ( Thread ) всю графику и все, дальше только работаем с обменом данными между C# и МТ5, а графическая форма с кнопками сама по себе работает как обычное виндовское приложение - в запросе от МТ5 только состояние ранее кликнутых элементов передается, ничего не тормозит и не будет тормозить ;)
если ещё замутить Model на уровне MQL, а прочее на шарпее, то может совсем захорошеть. Тогда логика отдельно, вид отдельно. Фронтенд занимается дизайном с юзабилити и не лезет в торговый бэк. Смена конфигурации кнопок на форме или разделение формы на две-три ну никак не должно трогать алгоритмы советника
Петр, если ты не возражаешь, я подготовлю статью, как на MQL можно достаточно просто создать графическое приложение, используя новую возможность интеграции с библиотеками .Net. Статья будет называться "Создание пользовательских форм в VisualStudio для торговых экспертов на базе .Net Framework и C#".
Твой подход и твои идеи раззадорили меня. Я задался вопросом: можно ли легко и быстро, обладая лишь базовыми возможностями в программировании, создать для своего эксперта графическую форму. Я провел эксперимент, и оказалось что можно! У меня получилась вот так формочка:
Идея была именно в том, что бы пользователь нарисовал нужную ему форму в редакторе VisualStudio, а вся необходимая работа по объединению этого окна с MQL кодом была бы выполнена "за кулисами", в автоматическом режиме. Для этого пришлось написать сферхкомпактный контроллер на C# - некий аналог твоего ядра, однако, занимает он всего около 200 строк кода.
О том, как все это работает вы сможете прочитать в статье, которую я начал.
Ну все, Василий, накрыл вядро медным тазом.
Ну все, Василий, накрыл вядро медным тазом.
в общем и ожидается что подобным закончится, но конкретной статьи-то пока нет..
хотя шанс что подобная статья выйдет раньше чем ядро-движок 99%. Петру надо уложиться в остающийся процент
Я делал в пятёрке через таймер в тестере. Даже простое его использование (а он - милисекундный мультитаймер) приводило к серьёзному замедлению тестера. Посему просто отказался от таймера в визуализаторе - там один фиг по тикам работать. Сделал две модели - по таймеру и по флагам событий через OnTick(). По таймеру в реалтайме, по тикам - в визуализаторе.
ЗЫ. Вру - три модели - ещё и через OnChartEvent() - там тоже только реалтайм.
я еще с дизайном не определился, проверил, что в тестере без проблем работает, спасибо @fxsaber помог с кодом #define - автоматически при подключении инклудника добавляю обработчики OnTick(), OnTimer()... поэтому могу в любой секции советника дооформить необходимые вызовы
хотя даже не пойму где тормозить то может? таймер юзаю довольно часто 400 мс, но вызов всего лишь получение из .dll 2-х массивов int по 10 эл-в и 2 int (сколько кнопок и сколько чекбоксов, такая размерность массивов), там просто физически ничего не может тормозить, ибо даже пишу в массивы если был клик по кнопкам ,а в инт номер кнопки передаю, массив в принципе не нужен, для подстраховки если у юзера нервы не в порядке и он быстрее чем 0,5 сек будет мышей долбить кнопку )))
тут просто задачи у нас разные видимо, если речь идет об построении ТС, то графика не нужна, если речь идет об отладке и визуализации ТС, то тут скорость тестера не нужна ;)
если ещё замутить Model на уровне MQL, а прочее на шарпее, то может совсем захорошеть. Тогда логика отдельно, вид отдельно. Фронтенд занимается дизайном с юзабилити и не лезет в торговый бэк. Смена конфигурации кнопок на форме или разделение формы на две-три ну никак не должно трогать алгоритмы советника
! оставлю себе на память, хороший пост! , так и напишу в описании если созрею для публичного обсуждения