Индикаторы: MaFromMa - страница 4

 
Renat Akhtyamov:

Николай, как выполнить ползунок, т.е. просто код, без библиотек?

Так код же есть.

Функция  DrawSetup()  + обработчик событий OnChartEvent

Сам ползунок = линия + окружность. 

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

Также для упрощения жизни активно используется автоматически обновляемый экземпляр W структуры Window из библиотеки iCannas. Без этого код очень бы разросся, т.к. пришлось бы контролировать изменения размеров окна и другое.

struct Window
  {
   long              ChartId;     // current window identifier
   uint              Color;       // window background color
   int               Width;       // window width
   int               Height;      // window height
   int               Left_bar;    // number of the leftmost bar in the window
   double            Right_bar;   // number of the rightmost bar in the window
   double            Total_bars;  // the maximum number of bars in the window
   int               BarsInWind;  // number of visible bars in the window
   double            Y_min;       // The minimum value of the price in the window
   double            Y_max;       // The maximum value of the price in the window
   double            dy_pix;      // price change for one pixel
   int               dx_pix;      // changing the number of bars per pixel
   int               MouseX;      // coordinate X of the current position of the mouse pointer
   int               MouseY;      // coordinate Y of the current position of the mouse pointer
   double            MouseBar;    // the current bar position of the mouse pointer 
   double            MousePrice;  // the current price of the mouse pointer
   datetime          MouseTime;   // the current time of the mouse pointer
   int               MouseSubWin; // number of the subwindow in which the mouse pointer is located
   int               WindowsTotal;// total subwindows, including the main window
   int               SubWin;      // current subwindow
   datetime          time[];      // array of opening time of all visible bars in the window
  };
 
Nikolai Semko:

Так код же есть.

Функция  DrawSetup()  + обработчик событий OnChartEvent

Сам ползунок = линия + окружность. 

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

Также для упрощения жизни активно используется автоматически обновляемый экземпляр W структуры Window из библиотеки iCannas. Без этого код очень бы разросся, т.к. пришлось бы контролировать изменения размеров окна и другое.

ок. попробую
 
fxsaber:

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

Да, был не прав о бесполезности рекурсии.

Здесь без рекурсии код бы значительно усложнился.

 
Доброго времени суток. в build 2615 появляется только MA.
Всё вроде по местам и скомпилировано.
 
Pavel Verveyko:
Доброго времени суток. в build 2615 появляется только MA.
Всё вроде по местам и скомпилировано.

На гиф представлен индикатор MaFromMaVisual.
А Вы, наверное, запускаете MaFromMa.

 
Nikolai Semko:

На гиф представлен индикатор MaFromMaVisual.
А Вы, наверное, запускаете MaFromMa.

На всякий случай, даже оба запускал.
На графике есть один Bitmap Label, но его не видно. И собственно МАшка.
ps по части Canvas Вам равных нет. По крайней мере не встречал более интересных мыслей по Canvas.

 
Nikolai Semko:

На гиф представлен индикатор MaFromMaVisual.
А Вы, наверное, запускаете MaFromMa.

Прошу прощения, нашёл!
Всё работает, нужно было навести курсор на узкую область на мониторе (верх средина), тогда открывается блок настроек.

 
Pavel Verveyko:

ps по части Canvas Вам равных нет. По крайней мере не встречал более интересных мыслей по Canvas.

Спасибо.
Я был вынужден заняться Canvas, т.к. методы визуализации у MQ очень хромают. А если быть более точным, они очень сильно отстали от современных требований визуализации, просто забив на это.

 
Nikolai Semko:

Спасибо.
Я был вынужден заняться Canvas, т.к. методы визуализации у MQ очень хромают. А если быть более точным, они очень сильно отстали от современных требований визуализации, просто забив на это.

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

 
Pavel Verveyko:

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

А при чем тут канвас. Канвас это только удобная система управления.
Само зацикливание это всего две строчки кода:

handle=iMA(_Symbol,_Period,per,0,MaMethod,Price);
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

В 5-ке зацикливайте что угодно, в том числе и через iCustom, передавая хэндл предыдущего.

В 4-ке не получится. Точнее получится, но через большой цикл, в результате чего будет очень медленно работать.

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