Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 389

 
Vinin:


Можно узнать что это такое страшное


Произведение минут на секунды перемноженное на часы.
Движение цены не хаотично, но "зашифровано".
Для расшифровки этого движения необходимо выполнить синтез движения цены с закономерно - движущейся линией. Я выбрал временной континуум.
Синтезировать движение цены с движением времени нужно выполнять по особой формуле, которую я вам не раскрою.
Индикатор, представленный выше, построен на сокращенной формуле.
Полная формула (я подсчитал для удовлетворения своего интереса) в 37 раз сложнее сокращенной.

Индикатор на полной формуле был построен сегодня в 12:00 по МСК времени.
Моим глазам открылось зрелище, которое я себе представлял.
Я увидел закономерно - движущиеся линии, последующее движение которых можно вычислить, а так как их движение на прямую связано с движением цены, то движение цены будет предсказуемо.
 

Есть ещё один хитрый вариант.

#include <WinUser32.mqh>

int delay = 180;
datetime read_now;
int hWnd = 0;

void init()
 {
  read_now = TimeLocal() + delay;
  hWnd = WindowHandle(Symbol(), Period());
  for (ini i = 0; i < 300; i++) PostMessageA(hWnd, RegisterWindowMessageA("MetaTrader4_Internal_Message"), 2, 1);
 }
void start()
 {
  while(!IsStopped())
   {
    int how_many_remains = read_now - TimeLocal();
    Comment(StringConcatenate(StringSubstr("-", (how_many_remains%60 >= 0), 0),
                              StringSubstr("0", (MathAbs(how_many_remains/60) > 9), 0),
                              MathAbs(how_many_remains/60), ":",
                              StringSubstr("0", (MathAbs(how_many_remains%60) > 9), 0),
                              MathAbs(how_many_remains%60)));
    Sleep(1000);
   }
 }
Пока эта куча сообщений будет обрабатываться, успеет завершиться инит и перейдёт к ожиданию тика в старте.
 
Zhunko:

Настройте его на график с Вашим экспертом. Эксперт будет работать.

И ваш код тоже рабочий, то есть start() запускать с init() + while(!IsStopped()) не надо, достаточно TimeCurrent() поменять на TimeLocal() в тестовом эксперте и в вашем скрипте в void start() поставить while(!IsStopped()){} (естественно, запускать с другого чарта, Symbol() - Period() выставлять чарта с экспертом). Благодарю, теперь я в этом разобрался.
 
gyfto:
И ваш код тоже рабочий, то есть start() запускать с init() + while(!IsStopped()) не надо, достаточно TimeCurrent() поменять на TimeLocal() в тестовом эксперте и в вашем скрипте в void start() поставить while(!IsStopped()){} (естественно, запускать с другого чарта, Symbol() - Period() выставлять чарта с экспертом). Благодарю, теперь я в этом разобрался.

Он рабочий и работает. Из-за не той функции времени не видно, что он работает.

В Вашем коде не стал разбираться. Кто знает, что Вы хотели им сказать?...

 
Zhunko:

Так неприлично.


Да я знаю )))

Zhunko:
void init()
 {
  ServiceRefreshChart(hWnd, 100);
 }
void start()
 {
  ServiceStopRefreshChart(hWnd);
  while(!IsStopped())
   {
    ...
    Sleep(1000);
   }
 }

Понял...

Zhunko:

Есть ещё один хитрый вариант.


Опасно клинической смертью CPU на VPS.

 
gyfto:

Опасно клинической смертью CPU на VPS.

Это Ваш личный опыт?

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

В системе таких сообщений во все окна посылаются сотнями тысяч.

 
Zhunko:

В Вашем коде не стал разбираться. Кто знает, что Вы хотели им сказать?...

А там и нет ничего, это всего лишь удобная оболочка для запуска WSH-скриптов для парсинга.
Zhunko:

Это Ваш личный опыт?


Так точно, из жизненного опыта. Если нагрузка на CPU 100%, на VPS даже зайти нельзя, приходится связываться с техподдержкой и просить перезагрузить VPS. А нагрузка на CPU достигается моими WSH-скриптами крайне легко, приходится следить за каждым лишним битом в оперативке... Хорошо ещё, если я на VPS, а если меня там нет, то перезагрузка VM для ТС это плановое ЧП. Привык уже...
 
Так.
Разобрался с тригонометрической функцией:
MathCos

Но совсем не "врубаюсь", как сделать, используя эту функцию, синусоиду.


y = 2cos(x*x)


Эта задача сильно потрепала мою нервную систему.

 
Link_x:

Но совсем не "врубаюсь", как сделать, используя эту функцию, синусоиду.

y = 2cos(x*x)

Эта задача сильно потрепала мою нервную систему.


Угол в радианах надо подставлять. Если перевести градусы в радианы (180 градусов = пи радиан) надо:

1 radian=180/ПИ (ПИ =3.14.... берите точное значение до 20-го знака и забивайте в #definе)

 
Link_x:

Произведение минут на секунды перемноженное на часы.
Движение цены не хаотично, но "зашифровано".
Для расшифровки этого движения необходимо выполнить синтез движения цены с закономерно - движущейся линией. Я выбрал временной континуум.
Синтезировать движение цены с движением времени нужно выполнять по особой формуле, которую я вам не раскрою.
Индикатор, представленный выше, построен на сокращенной формуле.
Полная формула (я подсчитал для удовлетворения своего интереса) в 37 раз сложнее сокращенной.

Индикатор на полной формуле был построен сегодня в 12:00 по МСК времени.
Моим глазам открылось зрелище, которое я себе представлял.
Я увидел закономерно - движущиеся линии, последующее движение которых можно вычислить, а так как их движение на прямую связано с движением цены, то движение цены будет предсказуемо.


Но у Вас нет этого произведения, У Вас там какое-то совсем другое произведение
Причина обращения: