Настоящий вопрос - страница 10

 
m100:

goldtrader, может я задам для вас слишком тупой вопрос, но все же, откуда тогда берет "Окно Данных" все значения?


Это вопрос разработчикам МТ4 терминала. Думаю что из буферов соответсвующих индикаторов и таймсерий.
 
goldtrader:
Это вопрос разработчикам МТ4 терминала. Думаю что из буферов соответсвующих индикаторов и таймсерий.

значит нету такой аналога функции типо GetWindowsData(3 буфер,0 бар) ?

ЗЫ GetWindowsData придумал сам отбалды

 
goldtrader:

Читайте msdn, WinApi, WindowHandle. Я не спец в этих технологиях. Имейте ввиду что для Вашей задачи это ИЗВРАТ полнейший.

Кое-что есть здесь https://www.mql5.com/ru/forum/120356

Что бы получить те значения из окна данных - нужно что бы курсор мыши всегда находился над нужным окном

как только курсор переедет куда-либо или потеряется фокус - окно перестанет обновляться

 
m100:

значит нету такой аналога функции типо GetWindowsData(3 буфер,0 бар) ?

Очевидно нет, т.к. всё необходимое есть, а избыточность не нужна. Оно вообще по сути не нужно это оконо данных.
 
ок всем спасибо, буду разбирать код drknn
 

Пожалуй стОит кое-что пояснить, чтоб довести дело до ума.

В строке MyValue=MyValue/(PeriodSkolzjaschej+1); к переменой PeriodSkolzjaschej прибавлена 1 потому, что цикл начнёт перебор со свечи, которая имеет номер = PeriodSkolzjaschej, а закончит показаниями нулевой свечи. Поэтому общее число свеч, которые поучаствовали в переборе будет равно PeriodSkolzjaschej+1. Это значит, что если PeriodSkolzjaschej=35, то на самом деле будет задействована MA с периодом = 36. Чтоб ни чего толком не меняя в коде получить всё же 35-ти периодное скользящее среднее, нужно переменной PeriodSkolzjaschej присвоить значение = 34.

 
drknn:

Пожалуй стОит кое-что пояснить, чтоб довести дело до ума.

В строке MyValue=MyValue/(PeriodSkolzjaschej+1); к переменой PeriodSkolzjaschej прибавлена 1 потому, что цикл начнёт перебор со свечи, которая имеет номер = PeriodSkolzjaschej, а закончит показаниями нулевой свечи. Поэтому общее число свеч, которые поучаствовали в переборе будет равно PeriodSkolzjaschej+1. Это значит, что если PeriodSkolzjaschej=35, то на самом деле будет задействована MA с периодом = 36. Чтоб ни чего толком не меняя в коде получить всё же 35-ти периодное скользящее среднее, нужно переменной PeriodSkolzjaschej присвоить значение = 34.

благодарю

applied_price лишняя переменная?

 
m100:

благодарю

applied_price лишняя переменная?


Нет - я по-умолчанию поставил в iMACD() значение ноль, что значит, что индикатор нужно строить по ценам закрытия. Если давать пользователю возможность выбора, то запрос значения индикатора нужно делать так:

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}