Ваши вопросы по языку MQL4

vladradon

Программист
Страница 288 из 288 « Первая < 188 238 278 284 285 286 287 288
Перейти к новому Опции темы Поиск в этой теме Рейтинг:
24.08.2017, 18:33
#5741 (permalink)

mangold
Активный участник
Регистрация: 15.07.2014 / Сообщений: 91
Поблагодарили 45 раз(а) / Репутация: 46
Rep Report
Давай попробую, но он не все индикаторы от мт4 принимает. Может у меня такой уже готовый есть





24.08.2017, 19:19
#5742 (permalink)

dimik796
Местный житель
Регистрация: 15.02.2009 / Сообщений: 45
Поблагодарили 6 раз(а) / Репутация: 6
Rep Report
Сообщение от: mangold
Давай попробую, но он не все индикаторы от мт4 принимает. Может у меня такой уже готовый есть
буду признателен.
Вложения:
TmaSlope.v1.5_normalized_nmc.mq4 (13.2 Кб, 4 просмотров)

24.08.2017, 19:40
#5743 (permalink)

mangold
Активный участник
Регистрация: 15.07.2014 / Сообщений: 91
Поблагодарили 45 раз(а) / Репутация: 46
Rep Report
Пробуй. Чисто файл не загружается.Можешь переименовать , если надо, я сокращенное имя дала

TMA.zip

24.08.2017, 21:29
#5744 (permalink)

dimik796
Местный житель
Регистрация: 15.02.2009 / Сообщений: 45
Поблагодарили 6 раз(а) / Репутация: 6
Rep Report
Сообщение от: mangold
Пробуй. Чисто файл не загружается.Можешь переименовать , если надо, я сокращенное имя дала

Вложение 279808
спасибо за помощь!!!

mangold*
26.08.2017, 10:16
#5745 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Всем привет! У меня вопрос на засыпку: на демо счете Альпари функция подсчета профита по истории выдает при выборке ордеров по меджику или по комменту все правильно, но если на девственном счете убрать выборку и включить все ордера, то почему-то приплюсовывается изначальный депозит (с выборкой 100 реальный профит (к примеру), без выборки - баланс+профит, т.е. 5100, где 5000 - изначальный баланс). Получается, что подсчитать профит с учетом ручных ордеров (без меджика и т.п.) невозможно?
Или я очередной раз туплю...:
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...
Последний раз редактировалось vladradon; 26.08.2017 в 10:23.

26.08.2017, 11:23
#5746 (permalink)

PavlovTrade
Активный участник
Регистрация: 23.08.2017 / Адрес: Москва / Сообщений: 16
Поблагодарили 32 раз(а) / Репутация: 33
Rep Report
Сообщение от: vladradon
Всем привет! У меня вопрос на засыпку...
Смотря как считаете. По умолчанию на счете нулевой баланс. Депозит технически считается как ордер, без меджика. У него тип 6 (OrderType()). Т.е. отфильтровывая ордера 6го типа можно все подсчитать.

Удалить свою благодарность
vladradon*
26.08.2017, 12:51
#5747 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: PavlovTrade
Т.е. отфильтровывая ордера 6го типа можно все подсчитать.
Сообщение от: PavlovTrade
Смотря как считаете. По умолчанию на счете нулевой баланс. Депозит технически считается как ордер, без меджика. У него тип 6 (OrderType()). Т.е. отфильтровывая ордера 6го типа можно все подсчитать.
Спасибо за инфу - в тестере работает вроде - не знал про 6-й.)))
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...

Вчера, 06:05
#5748 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: PavlovTrade
У него тип 6 (OrderType()
А есть еще какие-нибудь типы ордеров, которые нужно учитывать в прогах, чтобы не попасть в просак?
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...

Вчера, 10:55
#5749 (permalink)

eevviill2
Местный знаток
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 569
Поблагодарили 553 раз(а) / Репутация: 551
Rep Report

Сообщение от: vladradon
А есть еще какие-нибудь типы ордеров, которые нужно учитывать в прогах, чтобы не попасть в просак?
7 кредит


Удалить свою благодарность
vladradon*
Вчера, 12:32
#5750 (permalink)

mobidik

Регистрация: 10.08.2012 / Адрес: Ua_Khm / Сообщений: 1,912
Поблагодарили 9,738 раз(а) / Репутация: 9743
Rep Report
Сообщение от: vladradon
А есть еще какие-нибудь типы ордеров, которые нужно учитывать в прогах, чтобы не попасть в просак?
Все зависит от того, какие поставлены цели. О типе ордеров = 6 справка молчит, у каждого брокера тут свои заморочки, нужно смотреть комент данных ордеров, как вариант, может быть: пополнение счета, вывод средств, бонус, рибейт. Можно узнать откуда/куда был сделан ввод/вывод средств: киви, яндекс, вм и т.д.

Удалить свою благодарность
vladradon*
Вчера, 13:16
#5751 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: eevviill2
7 кредит
Сообщение от: mobidik
Все зависит от того, какие поставлены цели. О типе ордеров = 6 справка молчит, у каждого брокера тут свои заморочки, нужно смотреть комент данных ордеров, как вариант, может быть: пополнение счета, вывод средств, бонус, рибейт. Можно узнать откуда/куда был сделан ввод/вывод средств: киви, яндекс, вм и т.д.
Так и вопрос встал не для каких-то серьезных расчетов, а для вывода инфы по полученной прибыли на счете, но после того, как я ввел в сове возможность управления чужими (ручными или ордерами от других сов, - у которых нет меджиков или комментов, или эти параметры другие) ордерами. Ордера в рынке - не проблема, а в истории мне нужно только суммарный профит подсчитать, что в итоге получается можно сделать не исключением какого-то типа ордеров, а подсчетом только профита определенных типов ордеров. Что в итоге тоже проще сделать в проверке исключением типа этого:
PHP код:
void*ProfitAll()
**{
***profitsumm=0;
***for(int*i=0;*i<OrdersHistoryTotal();*i++)
*****{
******if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)*&&*OrderType()!<0)*&&*OrderType()!>1)
******if((!UseCustom*&&*StringSubstr(OrderComment(),0,StringLen(Name))==Name)||UseCustom)
*********profitsumm+=OrderProfit()+OrderSwap()+OrderCommission();
*****}
**}*
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...
Последний раз редактировалось vladradon; Вчера в 13:55.


Вчера, 14:49
#5752 (permalink)

vlad_123
Местный знаток
Регистрация: 29.01.2013 / Сообщений: 451
Поблагодарили 926 раз(а) / Репутация: 930
Rep Report
Сообщение от: vladradon
OrderType()!<0) && OrderType()!>1)

Мне раньше и в голову не приходило использовать ! вместе с <>...
Прикольно

На заказ не программирую.

Удалить свою благодарность
vladradon*
Вчера, 15:35
#5753 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: vlad_123
Мне раньше и в голову не приходило использовать ! вместе с <>...
Прикольно
Тёзка, восклицательный знак - это отрицание следующей команды или инструкции. Вот тупо проверка на правильность ввода времени работы сова (Timing):
if(!(StartHour<0 || StartHour>23 || StartMinute<0 || StartMinute>59 || EndHour<0 || EndHour>23 || EndMinute<0 || EndMinute>59) &&
(StartHour>0 || StartHour>0 || StartMinute>0 || StartMinute>0 || EndHour>0 || EndHour>0 || EndMinute>0 || EndMinute>0))
st=DoubleToStr(StartHour,0)+":"+DoubleToStr(StartM inute,0)+" - "+DoubleToStr(EndHour,0)+":"+DoubleToStr(EndMinute ,0);
Но, конечно, с учётом входных параметров:
extern int StartHour=0;
extern int StartMinute=0;
extern int EndHour=0;
extern int EndMinute=0;
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...
Последний раз редактировалось vladradon; Вчера в 15:39.

Вчера, 16:02
#5754 (permalink)

mobidik

Регистрация: 10.08.2012 / Адрес: Ua_Khm / Сообщений: 1,912
Поблагодарили 9,738 раз(а) / Репутация: 9743
Rep Report
Сообщение от: vladradon
Так и вопрос встал не для каких-то серьезных расчетов, а для вывода инфы
Есть индюк "cm History Info", в сети есть несколько модификаций, посмотри в качестве примера, там есть вывод инфы для ордеров типа "6". Прикрепляю один из его вариантов:
Вложения:
cm History Info v12.mq4 (18.3 Кб, 3 просмотров)

Вчера, 16:10
#5755 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: mobidik
Есть индюк "cm History Info", в сети есть несколько модификаций, посмотри в качестве примера, там есть вывод инфы для ордеров типа "6". Прикрепляю один из его вариантов:
Спасибо, конечно, но весь смысл в том. чтобы избавиться от зависимости от брокера! Поэтому последний вариант (методом исключения включением только определенных типов) считаю оптимальным. Ты, кстати, выйди в скайп - есть тема...
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...

Вчера, 16:45
#5756 (permalink)

vlad_123
Местный знаток
Регистрация: 29.01.2013 / Сообщений: 451
Поблагодарили 926 раз(а) / Репутация: 930
Rep Report
Сообщение от: vladradon
Тёзка, восклицательный знак - это отрицание следующей команды или инструкции.
Да, кэп!
Я про то, что вместо !< мне в голову приходит обычно >=

На заказ не программирую.

Вчера, 17:32
#5757 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: vlad_123
Я про то, что вместо !< мне в голову приходит обычно >=
Да пребудет тебе в голову только безвосклицательные и правильнорасчётные мысли! Ты же в курсе, в чём сила, брат?
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...
Последний раз редактировалось vladradon; Вчера в 17:35.

vlad_123*
Вчера, 18:40
#5758 (permalink)

vladradon
Активный участник
Регистрация: 12.02.2015 / Сообщений: 216
Поблагодарили 73 раз(а) / Репутация: 72
Rep Report

Сообщение от: vlad_123
Да, кэп!
Я про то, что вместо !< мне в голову приходит обычно >=
Кстати, отрицание отрицания не есть факт положительного отношения - есть еще нейтральное и диаметрально противоположное.
Можно вечно смотреть на то, как горит огонь, как течет вода, и как работает трал...

Сегодня, 11:44
#5759 (permalink)

eevviill2
Местный знаток
Регистрация: 13.08.2016 / Адрес: Бандерівці / Сообщений: 569
Поблагодарили 553 раз(а) / Репутация: 551
Rep Report

Почему метаКроты сделали так?
(EURGBP,начало торгов в 00-00 понедельник)

iTime(Symbol(),PERIOD_W1,0)
Ты же задал период расчета недельный - т.е. твой параметр изменится как минимум спустя неделю после запуска сова.
 
Последнее редактирование модератором:

eevviill2

Местный знаток
Потому что неделя начинается с воскресенья в коде. (за бугром во многих странах официально). В этом есть смысл так как торги точно не будут идти до воскресенья, а вот открыться у некоторых брокеров например в 22:00 или 23:00 в воскресенья очень даже могу.

дни недели (DayOfWeek() и TimeDayOfWeek()):
0 - воскресенье
1 - понедельник
...
6 - суббота
Текущая недельная свеча должна начинатся с времени когда она открылась.
Если у брокера открытие в восресенье в 22 то так и нужно выводить при запросе времени текущей недельной свечи.
Нету смысла придумывать виртуальное время.
 

eevviill2

Местный знаток
Текущая недельная свеча должна начинатся с времени когда она открылась.
Если у брокера открытие в восресенье в 22 то так и нужно выводить при запросе времени текущей недельной свечи.
Нету смысла придумывать виртуальное время.
Тем более что время начала торгов имеется в терминале.
PHP:
datetime from=-1;
datetime to=-1;
ENUM_DAY_OF_WEEK day_start = -1;

//start
for(ENUM_DAY_OF_WEEK i=SUNDAY;i<=SATURDAY;i++)
{
if(SymbolInfoSessionTrade(Symbol(),i,0,from,to))
{
day_start=i;
break;
}
}
int from_hours=int(from)/60/60;
Alert(EnumToString(day_start)," Hours:",from_hours);
 
Последнее редактирование:

vladradon

Программист
Нету смысла придумывать виртуальное время.
Есть смысл запрограммировать так, чтобы работало как тебе надо, а не кому-то еще! И пусть проверка даты и времени будет каждый тик и это займет всего пару строк в коде - я буду уверен, что мой сов работает так, как я хочу. Вот так, как-то...
 

PavlovTrade

Местный житель
Текущая недельная свеча должна начинатся с времени когда она открылась.
Если у брокера открытие в восресенье в 22 то так и нужно выводить при запросе времени текущей недельной свечи.
Нету смысла придумывать виртуальное время.

я думаю что MQ видней как оно должно быть.

Есть 2 задачи и API MQL должно дать возможность их обе решить:
1) получить начальное время того или иного тайм фрейма
2) получить время первого тика на том или ином тайм фрейме.
Обе задачи решаются очень лекго сейчас.

Если вы не согласны с их политикой - внесите соответсвующие предложение на их офф форуме. FS они точно не читают :)
 

AlexeyVik

Программист mql4 mql5
я думаю что MQ видней как оно должно быть.

Есть 2 задачи и API MQL должно дать возможность их обе решить:
1) получить начальное время того или иного тайм фрейма
2) получить время первого тика на том или ином тайм фрейме.
Обе задачи решаются очень лекго сейчас.

Если вы не согласны с их политикой - внесите соответсвующие предложение на их офф форуме. FS они точно не читают :)
Его там пожизненно забанили. Уже и прокси не помогает.
 

ChijikPijik

Заблокирован
парни, или может можно прописать в советнике, чтобы он записывал историю своих закрытых и открытых ордеров в каком нибудь фаиле, например ТХТ, и пользовался только этим фаилом для поиска ордеров в истории, а при определенных условиях очищал его, такое возможно?
 

vladradon

Программист
Так и думал что ты из тех кто понимает что что то не правильно, но это так надо.
Красава
Что что-то не так сами брокеры не стесняются говорить - я в этой ветке вроде уже писал про то, что писал на заказ сова на 5-ке под брокера "Открытие" и только экспериментальным путем заставил открывать отложки в перевертыше, торгующем фьючерсами. Пришлось самому зарегиться, а сам заказчик писал письмо брокеру и получил ответ типа "да, мы знаем, что наш метаквотовский терминал не настроен"...)))))
 
Последнее редактирование:

ivansss

Новичок форума
Добрый день господа программисты, прощу вашей помощи. Есть такой код, строящий линии поддержки и сопротивления. Вроде код простой. Вроде в функцию отрисовки ( Draw_Phase(i, H_High, H_High - HL);поступают не меняющийся значения, за исключением i, но в функции ObjectCreate она задействована в имени линии. По итогу получается полно линий, то есть откуда-то вылазит переменная цены.:facepalm:
Буду очень благодарен кто мне поможет, цены уровней в один массив засунуть.Без отрисовки.



extern double H_High = 1.60354;
extern double H_Low = 0.82191;
extern int Factor = 64;

int init()


{
double HL = (H_High - H_Low) /Factor;
int None = 0;
double Rz = H_High - HL;


if (H_High - HL > H_Low - HL / 2.0)
for(int i = 0; i < 1024;i ++)
{
Draw_Phase(i, H_High, H_High - HL);
H_High = H_High - HL;;
}

return (0);
}



void Draw_Phase(int None, double H_High, double P_Level)
{
double S_level = 0.17 * (H_High - P_Level);
double K_level = 0.236 * (H_High - P_Level);


ObjectCreate(None + "4", OBJ_HLINE, 0, Time[0], (H_High - S_level + H_High - K_level) / 2.0);
ObjectSet(None+ "4", OBJPROP_COLOR, clrRed);
ObjectSet(None + "4", OBJPROP_WIDTH, 1);
ObjectCreate(None + "5", OBJ_HLINE, 0, Time[0], (P_Level + S_level + P_Level + K_level) / 2.0);
ObjectSet(None + "5", OBJPROP_COLOR, clrRed);
ObjectSet(None + "5", OBJPROP_WIDTH, 1);
ObjectCreate(None + "6", OBJ_HLINE, 0, Time[0], (H_High + P_Level) / 2.0);
ObjectSet(None + "6", OBJPROP_COLOR, clrRed);
ObjectSet(None + "6", OBJPROP_WIDTH, 1);

}
 

Вложения

  • Снимок.JPG
    Снимок.JPG
    179 КБ · Просмотры: 22

mobidik

-----
Добрый день господа программисты, прощу вашей помощи. Есть такой код, строящий линии поддержки и сопротивления. Вроде код простой. Вроде в функцию отрисовки ( Draw_Phase(i, H_High, H_High - HL);поступают не меняющийся значения, за исключением i, но в функции ObjectCreate она задействована в имени линии. По итогу получается полно линий, то есть откуда-то вылазит переменная цены.:facepalm:
Буду очень благодарен кто мне поможет, цены уровней в один массив засунуть.Без отрисовки.

extern double H_High = 1.60354;
extern double H_Low = 0.82191;
extern int Factor = 64;

int init()


{
double HL = (H_High - H_Low) /Factor;
int None = 0;
double Rz = H_High - HL;


if (H_High - HL > H_Low - HL / 2.0)
for(int i = 0; i < 1024;i ++)
{
Draw_Phase(i, H_High, H_High - HL);
H_High = H_High - HL;;
}

return (0);
}



void Draw_Phase(int None, double H_High, double P_Level)
{
double S_level = 0.17 * (H_High - P_Level);
double K_level = 0.236 * (H_High - P_Level);


ObjectCreate(None + "4", OBJ_HLINE, 0, Time[0], (H_High - S_level + H_High - K_level) / 2.0);
ObjectSet(None+ "4", OBJPROP_COLOR, clrRed);
ObjectSet(None + "4", OBJPROP_WIDTH, 1);
ObjectCreate(None + "5", OBJ_HLINE, 0, Time[0], (P_Level + S_level + P_Level + K_level) / 2.0);
ObjectSet(None + "5", OBJPROP_COLOR, clrRed);
ObjectSet(None + "5", OBJPROP_WIDTH, 1);
ObjectCreate(None + "6", OBJ_HLINE, 0, Time[0], (H_High + P_Level) / 2.0);
ObjectSet(None + "6", OBJPROP_COLOR, clrRed);
ObjectSet(None + "6", OBJPROP_WIDTH, 1);

}

Так Вы сами строите кучу линии, пока счетчик не станет 1024:
PHP:
for(int i = 0; i < 1024;i ++) 
{
Draw_Phase(i, H_High, H_High - HL);
H_High = H_High - HL;;
}

При построении горизонтальной линии, время лишнее, только цена:
PHP:
ObjectCreate(None + "4", OBJ_HLINE, 0, Time[0], ...
заменить на 
ObjectCreate(None + "4", OBJ_HLINE, 0, 0, ...
 

ivansss

Новичок форума
[/SPOILER]

Так Вы сами строите кучу линии, пока счетчик не станет 1024:
PHP:
for(int i = 0; i < 1024;i ++) 
{
Draw_Phase(i, H_High, H_High - HL);
H_High = H_High - HL;;
}

При построении горизонтальной линии, время лишнее, только цена:
PHP:
ObjectCreate(None + "4", OBJ_HLINE, 0, Time[0], ...
заменить на 
ObjectCreate(None + "4", OBJ_HLINE, 0, 0, ...

Так ,а какая роль цикла , переменная i увеличивается и в функцию передается, а в функции i за имя линии отвечает. А цена в цикле не меняется.Код никак не мой, но понять логику нужно, чтобы эти линии в один масив собрать.
 

vladradon

Программист
Так ,а какая роль цикла , переменная i увеличивается и в функцию передается, а в функции i за имя линии отвечает. А цена в цикле не меняется.Код никак не мой, но понять логику нужно, чтобы эти линии в один масив собрать.
Привет! Для того, чтобы все это настроить, нужно весь код видеть. Ну, или проще найти похожий код типа того, что выкладываю в приложении. Код не мой и я его не модифицировал, но открытый и выложен был уже не помню на каком сайте бесплатно. С него можно при желании снять уровни линий поддержки и сопротивления, если нужно использовать в советнике.
 

Вложения

  • SS_SupportResistance_v04c nmc.mq4
    52,5 КБ · Просмотры: 22

mobidik

-----
Так ,а какая роль цикла , переменная i увеличивается и в функцию передается, а в функции i за имя линии отвечает. А цена в цикле не меняется.Код никак не мой, но понять логику нужно, чтобы эти линии в один масив собрать.

Смотри, по пробую на пальцах: у тебя есть исходное значение H_High, есть цикл, который меняется от 0 до 1024. В цикле происходит следующие: при i=0 в функцию построения линии передается имя линии, связанное со значением i, кстати, в самой ф-ции оно должно быть задано как тип string, а не int, и значение цены, по которой нужно установить горизонтальную линию. Затем, строкой ниже, ты задаешь новое значение переменной H_High = H_High - HL. После этого, цикл переходит на следующий уровень, т.е., ведь есть на это указание: i++ и переменная становится i=1, все повторяется и так до тех пор, пока перестанет выполнятся условие в цикле. У тебя, помимо изменения имени, в цикле еще формируется новое значение цены, по которой строится линия.
 
Последнее редактирование:

vladradon

Программист
Смотри, по пробую на пальцах: у тебя есть исходное значение H_High, есть цикл, который меняется от 0 до 1024. В цикле происходит следующие: при i=0 в функцию построения линии передается имя линии, связанное со значением i, кстати, в самой ф-ции оно должно быть задано как тип string, а не int, и значение цены, по которой нужно установить горизонтальную линию. Затем, строкой ниже, ты задаешь новое значение переменной H_High = H_High - HL. После этого, цикл переходит на следующий уровень, т.е., ведь есть на это указание: i++ и переменная становится i=1, все повторяется и так до тех пор, пока перестанет выполнятся условие в цикле. У тебя, помимо изменения имени, в цикле еще формируется новое значение цены, по которой строится линия.
Согласен. Но может быть все-таки стоит отталкиваться от массивов, в которых содержатся расчитанные уровни, а на график выводить только линии по непустым значениям этих массивов и может проще не линиями, а другими типами объектов и не в цикле, а стандартными функциями индикаторов - т.е. задать каждому из массивов определенный тип отображения. Но это так- первое, что приходит в голову, чтобы не особо усложнять алгоритм.
 

mobidik

-----
Согласен. Но может быть все-таки стоит отталкиваться от массивов, в которых содержатся расчитанные уровни, а на график выводить только линии по непустым значениям этих массивов

А что изменится? И откуда возьмутся пустые значения? Что А+В, что В+А - результат тот же.

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

Что-то сперва не обратил внимание на это, отвлек вопрос о количестве линий. А что мешает загнать все эти данные в массив, но их не станет меньше, чем сейчас есть линий на графике, вернее, размер массива будет равен количеству линий. Возьми свой код - удали из него саму ф-цию построения линий и её вызов и сделай как на скрине и будут у тебя все значения храниться в массиве mas.
 

Вложения

  • LPNE.png
    LPNE.png
    112,3 КБ · Просмотры: 16

vladradon

Программист
А что изменится? И откуда возьмутся пустые значения? Что А+В, что В+А - результат тот же.
По свойствам индикаторных буферов, не имеющих предела данных, по каждому тику в них записывается какое-то данное, если на данный тик есть расчет, либо ячейка остается пустой (EMPTY) и, соответственно, не участвует в выводе стандартной для индикаторов графики на экран - я это имел ввиду. Но это в случае, если массивы прописаны как индексные и их значения автоматом прорисовываются на графике, в зависимости от свойств, заложенных в функции SetIndexStyle.
 

vladradon

Программист
Что-то сперва не обратил внимание на это, отвлек вопрос о количестве линий. А что мешает загнать все эти данные в массив, но их не станет меньше, чем сейчас есть линий на графике, вернее, размер массива будет равен количеству линий. Возьми свой код - удали из него саму ф-цию построения линий и её вызов и сделай как на скрине и будут у тебя все значения храниться в массиве mas.
А как разделять линии по своим расчетным параметрам - где какая линия? В индикаторе есть возможность использовать до 8-ми индексных массивов, чего вполне хватит на все типы линий поддержки и сопротивления, включая разделение на протестированные или нет, как это сделано в том коде, который выложил выше. Но это не мой код и спасибо его разработчику, с которым я не знаком.
 
Верх