Эмуляция тиков из советника/индикатора - страница 4

 
Zhunko:

Хоть один случай для примера?

Да взять хотя бы мой ChartBuilder, выложенный в кодебазе. Он может использовать большое число торговых инструментов. И если по тому инструменту, на котором он висит, некоторое время не приходят новые тики, то отображаемое значение уже является неактуальным (устаревшим).

Что касается связки эксперт+индикатор, то, если вы имеете ввиду перенос кода в эксперт ради снижения нагрузки на основной поток, то мне кажется что тогда уж рациональней перенести код сразу в ДЛЛ и импортировать в индикаторе. Коль уж заморачиваться с переносом кода, то хотя бы в нормальную среду.

 
Meat:Я понял, в чём была проблема.  Массив то нужно объявлять на глобальном уровне, а не на локальном.

нету тиков.... ((((

лог:

18:33:34 test EURUSD,H1: loaded successfully
18:33:36 test EURUSD,H1: initialized

правой мышью "обновить график" , комментарий был tick:  1 , стал: tick:  2 

в журнале нет ошибок 

ЗЫ: обрубил инте путем выставления галки "разрешить проксисервер" , перезагрузил терминал - связи нет  , зато когда убрал галку про прокси-сервер, как "затикало" ..... ;)

 
Как идея- отдельная Exe, находит окно МТ- шерстит внутри него окошки
и с заданной периодичностью начинает посылать им эмуляцию тиков.
 
jartmailru:
Как идея- отдельная Exe, находит окно МТ- шерстит внутри него окошки
и с заданной периодичностью начинает посылать им эмуляцию тиков.
У меня такая сделана. Только в DLL. Но Алексей хочет без сторонних DLL и EXE.
Meat:

1. Да взять хотя бы мой ChartBuilder, выложенный в кодебазе. Он может использовать большое число торговых инструментов. И если по тому инструменту, на котором он висит, некоторое время не приходят новые тики, то отображаемое значение уже является неактуальным (устаревшим).

2. Что касается связки эксперт+индикатор, то, если вы имеете ввиду перенос кода в эксперт ради снижения нагрузки на основной поток, то мне кажется что тогда уж рациональней перенести код сразу в ДЛЛ и импортировать в индикаторе. Коль уж заморачиваться с переносом кода, то хотя бы в нормальную среду.

1. Ещё раз повторю. Чтобы среагировать на инструмент не из текущего окна нужно воспользоваться временем сервера. WinAPI для этого не требуется. В MQL4 есть такая функция.

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

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

=====================

Последний вариант индикатора не работает на Windows 7. 


 
IgorM:

нету тиков.... ((((

...............

ЗЫ: обрубил инте путем выставления галки "разрешить проксисервер" , перезагрузил терминал - связи нет  , зато когда убрал галку про прокси-сервер, как "затикало" ..... ;)

Игорь, такой способ отключения от инета не годится. В таком режиме много чего не работает. Не надо отключать доступ к инету.

Например такой код для эксперта:

#include <WinUser32.mqh


void init()
 {
  int hwndChart = WindowHandle(Symbol(), 0);
  int nNewMessageWindow = RegisterWindowMessageA("MetaTrader4_Internal_Message");
  for (int i = 0; i < 200; i++) PostMessageA(hwndChart, nNewMessageWindow, 2, 1);
 }

void start()
 {
  int nCounter = 0;
  while (!IsStopped())
   {
    nCounter++;
    Comment(nCounter);
    Sleep(500);
   }
 }

работает по выходным и при отсутствии тиков, но не работает при отключении от инета. Там есть какая-то особенность непонятная.

Возможно, в последних билдах оптимизировали. Раньше это работало.

Луше выбери инструмент, который редко обновляется. 

 
Zhunko:
У меня такая сделана. Только в DLL. Но Алексей хочет без сторонних DLL и EXE.

1. Ещё раз повторю. Чтобы среагировать на инструмент не из текущего окна нужно воспользоваться временем сервера. WinAPI для этого не требуется. В MQL4 есть такая функция.

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

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

=====================

Последний вариант индикатора не работает на Windows 7. 


Я не пойму, что вы мне пытаетесь доказать? То что несколько запущенных файлов круче чем один? Да, можно конечно запускать ещё и зацикленного эксперта, но только не вижу смысла устраивать этот геморрой из двух работающих файлов, если всё то же самое я могу сделать в самом индикаторе, либо в подключенной длл. Я конечно понимаю, что вам больше нравится, когда запущено несколько разных программ, и каждая выполняет свою специализированую функцию: одна чистит логи, другая шлёт тики и т.д.   Но только ваш подход не единственно верный.

Эммулировать тики нужно только для старта эксперта в выходные

 Повторяю, вы ошибаетесь. Необходиомость в тиках не зависит от дня недели. Я уже объяснял почему. Если вы сами не торгуете, но поверьте мне, я последние несколько лет торгую фьючерсами, обновлять тики там частенько приходится. 

 

Есть предположение, что код не работает там, где стоит 64-битная винда. У меня просто 32, поэтому не могу проверить.   Попробуйте там после PostMsgAddr вставить четыре нулевых байта (не забыв увеличить размер массива). Вдруг заработает... Хотя наверное тогда и другие два параметра надо тоже сделать 64-битными... или нет?.. В общем я в 64-битной среде пока не работал, поэтому не знаю.

 
Meat:


1. Я не пойму, что вы мне пытаетесь доказать? То что несколько запущенных файлов круче чем один? Да, можно конечно запускать ещё и зацикленного эксперта, но только не вижу смысла устраивать этот геморрой из двух работающих файлов, если всё то же самое я могу сделать в самом индикаторе, либо в подключенной длл. Я конечно понимаю, что вам больше нравится, когда запущено несколько разных программ, и каждая выполняет свою специализированую функцию: одна чистит логи, другая шлёт тики и т.д.   Но только ваш подход не единственно верный.

2. Повторяю, вы ошибаетесь. Необходиомость в тиках не зависит от дня недели. Я уже объяснял почему. Если вы сами не торгуете, но поверьте мне, я последние несколько лет торгую фьючерсами, обновлять тики там частенько приходится. 

1. Теперь я не пойму... Где говорил, что чего круче? Уже неоднократно повторил, что не требуется эммуляция тиков для торговли. Это нужно только для отладки в выходные, когда нет тиков.

2. Как Вам удаётся торговать из индикатора? В MQL4 не предусмотрено это. Эксперт нужен или скрипт. Зацикливается эксперт и сравниваете время сервера с предыдущим. При несовпадении реагируете, как у Вас по ТС положено. И всё! Не надо никаких эммуляций. Вы-то что доказываете? Я уже в нескольких вариантах это написал в разных постах. Вот, чтобы отладить работу такого эксперта в выходные надо его запустить. Код выше написал.

 
Zhunko:

1. Теперь я не пойму... Где говорил, что чего круче? Уже неоднократно повторил, что не требуется эммуляция тиков для торговли. Это нужно только для отладки в выходные, когда нет тиков.

2. Как Вам удаётся торговать из индикатора? В MQL4 не предусмотрено это. Эксперт нужен или скрипт. Зацикливается эксперт и сравниваете время сервера с предыдущим. При несовпадении реагируете, как у Вас по ТС положено. И всё! Не надо никаких эммуляций. Вы-то что доказываете? Я уже в нескольких вариантах это написал в разных постах. Вот, чтобы отладить работу такого эксперта в выходные надо его запустить. Код выше написал.

Так вот я и говорю:  раз у вас торговли никакой нет, то лично вам и не нужна эта эмуляция.  Но тем, кто торгует, наверное видней, как думаете?

И при чём здесь торговля из индикатора, ну что вы, в самом деле! Торговля из метатрэйдера. А индикаторы нужны для анализа ситуации и принятия решения.  И не нужен мне ещё лишний довесок в виде зацикленного эксперта, если вполне достаточно и "тикающего" индикатора.

 
Meat:

Так вот я и говорю:  раз у вас торговли никакой нет, то лично вам и не нужна эта эмуляция.  Но тем, кто торгует, наверное видней, как думаете?

И при чём здесь торговля из индикатора, ну что вы, в самом деле! Торговля из метатрэйдера. А индикаторы нужны для анализа ситуации и принятия решения.  И не нужен мне ещё лишний довесок в виде зацикленного эксперта, если вполне достаточно и "тикающего" индикатора.

Как Вы торгуете из тикающего индикатора? В MQL4 не предусмотрено это.

Действительно! Зачем довесок из тикающего индикатора, который не может торговать, если можно всё сделать в зацикленном эксперте? Не нужны будут пляски с WinAPI, не будет тормозить интерфейс МТ4, работать будет в 3 раза быстрее. Зачем так усложнять?

Причина обращения: