Мой подход. Ядро - Движок. - страница 159

 
Artyom Trishkin:

Я делал в пятёрке через таймер в тестере. Даже простое его использование (а он - милисекундный мультитаймер) приводило к серьёзному замедлению тестера. Посему просто отказался от таймера в визуализаторе - там один фиг по тикам работать. Сделал две модели - по таймеру и по флагам событий через OnTick(). По таймеру в реалтайме, по тикам - в визуализаторе.

ЗЫ. Вру - три модели - ещё и через OnChartEvent() - там тоже только реалтайм.

Тоже работал через OnTimer(), для тестера, но, прочитал это:

В тестере стратегий используется минимальный интервал в 1000 миллисекунд.

https://www.mql5.com/ru/docs/event_handlers/ontimer

Вопрос, возможно в тестере заполучить одну миллисекунду, и как?

Документация по MQL5: Обработка событий / OnTimer
Документация по MQL5: Обработка событий / OnTimer
  • www.mql5.com
//|                                               OnTimer_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
jdjahfkahjf:

Тоже работал через OnTimer(), для тестера, но, прочитал это:

В тестере стратегий используется минимальный интервал в 1000 миллисекунд.

https://www.mql5.com/ru/docs/event_handlers/ontimer

Вопрос, возможно в тестере заполучить миллисекунды, и как?

только генерацией кастомного символа и тиков к нему и работать по приходу тика

увы, тут вариантов особо нет, в МТ5 доступны для обработки конкретные события OnTick() , OnTimer().... и только их мы можем обработать, тем более событие OnChartEvent() в тестере не генерируется, в общем как и всегда - писать нужно 2 версии кода, одну для тестера 2-ю для торговли (или в одну версию кода делить на работу в тестере и на работу на торговом счете)


ЗЫ: если не ошибаюсь, то 1 миллисекунду нельзя сгенерировать, системный таймер Виндовс не дает такую точность

 
Igor Makanu:

только генерацией кастомного символа и тиков к нему и работать по приходу тика

увы, тут вариантов особо нет, в МТ5 доступны для обработки конкретные события OnTick() , OnTimer().... и только их мы можем обработать, тем более событие OnChartEvent() в тестере не генерируется, в общем как и всегда - писать нужно 2 версии кода, одну для тестера 2-ю для торговли (или в одну версию кода делить на работу в тестере и на работу на торговом счете)


ЗЫ: если не ошибаюсь, то 1 миллисекунду нельзя сгенерировать, системный таймер Виндовс не дает такую точность

Понятно, но то что вы говорите, это уже поняли. Все ровно спасибо.

Хорош МТ5, даже если уже столько лет "бета".

Но как здесь клялись что хедж версии не будет, надеюсь что и таймфреймов ниже минуты "не будет", тем более тиковых.

 

А смысл развивать направление C#? Там все равно тупик. В маркет не поместить. А вот использовать во вред другим, возможностей много (если в обход маркета начнут распостронять). И кто это контроллировать будет? Зачем это вообще делать? 

Но даже в этом случае, врядли многим потребуется. Я сделал настолько простое и легкое подключение к своему GUI, что ломать голову над другим подключением, будут только гурманы программирования.

Возможности движка будут и дальше расти, а использование упрощатся. У C# нет шансов меня остановить.)) 

Забавно, как некоторые думают, что для меня это катастрофа.)) Это ерунда, которая никому ничего не даст. Но, пусть пробуют. Интересно что получится.


Не важно, какие возможности предоставляет С#, важно, кто ими сможет воспользоваться. Большинство пользователей (кодеров), слишком слабы, чтобы создать что то серьезное самостоятельно. Это нужно создавать за них и для них. Это я и делаю. А направление С шарп наоборот уводит от простоты в мир сложного программирования. Поэтому, это не обретет массовую популярность.

 
Реter Konow:

А смысл развивать направление C#? Там все равно тупик.

...

Спасибо, отлично поржал перед сном.

 
Dmitry Fedoseev:

Спасибо, отлично поржал перед сном.

Схожу и Я поспать пару часов.

 
Реter Konow 2019.01.15 16:25      RU
Oleg Papkov:

Может рассоглассованость: и советник и движок, 1- оба передают друг другу, 2 - оба принимают, их OnTimer циклы не синхронизированны. Ждут момент случайной синхронизации нормальной работы. Может из-за этого?

Нагружается процессор до 40%. Не критично и почти не тормозит, но мне все равно не нравится. Причина пока не ясна. Внутри блока рисования тормозит функция ResourceReadImage и инициализация массива. Если закомментировать цикл, то тормозит ResourceReadImage, если закомментировать ResourceReadImage, то тормозит цикл. Причем, по отдельности они нагружают процессор на 50%, а вместе на 40%. Ерунда какая то... 

----------------------------------------------

Примерно, так, имхенько. 

Обычно - запрос на отправку/прием информации через тот, или иной порт. 

Разрешение и - транзакция. По стандартам (правилам) операционного окружения. Вы все это делали с Метаквотами? 

 

Честно говоря, я бы хотел чтобы сделали это решение с С#. Я быстро и легко его интегрирую к себе в движок. Там оно будет работать, предоставляя пользователю подключение на выбор через мой GUI, или его собственный от Виндоус. 

Будет круто. Василий, пиши скорее статью.

Привет негативщикам. :)

 

Алексей Тарабанов:

....

Примерно, так, имхенько. 

Обычно - запрос на отправку/прием информации через тот, или иной порт. 

Разрешение и - транзакция. По стандартам (правилам) операционного окружения. Вы все это делали с Метаквотами? 

Нет, тут вопрос внутренней связи через ресурсы. Удалось добится снижения нагрузки в два раза оптимизацией моей системы рисования. Теперь не тормозит. 

 
Провел тест траффика данных больших таблиц. Были интересны пределы возможностей. К своему удивлению, их пока не достиг. Сейчас выложу результат....