[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 104
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые программисты!
Помогите, пожалуйста. Индикатор рисует значения по бычьей скрытой дивергенции, и НИ В Какую не рисует медвежью скрытую.... Пишет, что ошибка 4002 - Индекс массива - вне диапазона.
Я вроде бы все поисправляла... Промучалась целый вечер... И обидно - код простейший... Но бычью рисует стрелками, а медвежью - никак... ПОМОГИТЕ! В чем ошибка?????????????????????
//+------------------------------------------------------------------+
//| div zz 5.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
#property indicator_color3 BlueViolet
#property indicator_color4 Red
#define arrowsDisplacement 0.0001
double cci[];
double cci1[];
double bullishDivergence[];
double bearishDivergence[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0, DRAW_NONE);
SetIndexStyle(1, DRAW_NONE);
SetIndexStyle(2, DRAW_ARROW);
SetIndexStyle(3, DRAW_ARROW);
SetIndexBuffer(0, cci);
SetIndexBuffer(1, cci1);
SetIndexBuffer(2, bullishDivergence);
SetIndexBuffer(3, bearishDivergence);
SetIndexArrow(2, 233);
SetIndexArrow(3, 234);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
//int limit=Bars-counted_bars;
double vpadcci[];
double v[];
double hh[];
double ss[];
for (int i=500; i>=0; i--)
{
cci[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
if (
(cci[i]<cci[i-1])&&
(cci[i]<cci[i-2])&&
(cci[i]<cci[i+1])&&
(cci[i]<cci[i+2])
)
{
vpadcci[i]=cci[i];
ss[i]=Low[i];
}
}
for(int j=500; j>0; j--)
{
cci[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
if (
((cci[j+1]>vpadcci[10])&&
(cci[j]<vpadcci[10])&&
(Low[j]>ss[10])) ||
((cci[j+1]>vpadcci[9])&&
(cci[j]<vpadcci[9])&&
(Low[j]>ss[9])) ||
((cci[j+1]>vpadcci[8])&&
(cci[j]<vpadcci[8])&&
(Low[j]>ss[8])) ||
((cci[j+1]>vpadcci[7])&&
(cci[j]<vpadcci[7])&&
(Low[j]>ss[7])) ||
((cci[j+1]>vpadcci[6])&&
(cci[j]<vpadcci[6])&&
(Low[j]>ss[6])) ||
((cci[j+1]>vpadcci[5])&&
(cci[j]<vpadcci[5])&&
(Low[j]>ss[5])) ||
((cci[j+1]>vpadcci[4])&&
(cci[j]<vpadcci[4])&&
(Low[j]>ss[4])) ||
((cci[j+1]>vpadcci[3])&&
(cci[j]<vpadcci[3])&&
(Low[j]>ss[3])) ||
((cci[j+1]>vpadcci[2])&&
(cci[j]<vpadcci[2])&&
(Low[j]>ss[2])) ||
((cci[j+1]>vpadcci[1])&&
(cci[j]<vpadcci[1])&&
(Low[j]>ss[1])) ||
((cci[j+1]>vpadcci[0])&&
(cci[j]<vpadcci[0])&&
(Low[j]>ss[0]))
)
{ bullishDivergence[j] = Low[j] - arrowsDisplacement;
}
}
for (i=1; i<500; i++)
{
cci1[i] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, i);
if
(
(cci1[i]>cci1[i-1])&&
(cci1[i]>cci1[i-2])&&
(cci1[i]>cci1[i+1])&&
(cci1[i]>cci1[i+2])
)
{
v[i]=cci1[i];
hh[i]=High[i];
}
}
for(j=1; j<500; j++)
{
cci1[j] = iCustom(NULL, 0, "CCI-OnArray_", 9, 3, 5, 25, 1, j);
if (
((cci1[j+1]<v[10])&&
(cci1[j]>v[10])&&
(High[j]<hh[10])) ||
((cci1[j+1]<v[9])&&
(cci1[j]>v[9])&&
(High[j]<hh[9])) ||
((cci1[j+1]<v[8])&&
(cci1[j]>v[8])&&
(High[j]<hh[8])) ||
((cci1[j+1]<v[7])&&
(cci1[j]>v[7])&&
(High[j]<hh[7])) ||
((cci1[j+1]<v[6])&&
(cci1[j]>v[6])&&
(High[j]<hh[6])) ||
((cci1[j+1]<v[5])&&
(cci1[j]>v[5])&&
(High[j]<hh[5]))
)
{ bearishDivergence[j] = High[j] + arrowsDisplacement;
}
}
return(0);
}
KoDim 14.02.2011 09:29
Здравствуйте.
В процессе программирования советника вызвал недоумение параметр ma_shift – сдвиг средней линий в барах. Если сдвиг положительный, то линия смещается вправо. И наоборот, если сдвиг отрицательный, то линия смещается влево.
При применении положительного значения при пересечении средних ордер открывается.
Однако если поставить параметр отрицательный - ордер не открывается.
С чем это связано?
Вот выдержка из кода
Здраствуйте! Я не давно начал пытаться разобраться в написании советников, есть такой вопрос. Как можно прописать что бы советник сам выставлял стоп лоссы, после того как я поставил (сам) стоп бай и стоп сел? Тоесть после прохода стоп бая или стоп села на пунктов 5 (грубо говоря) советник тут же ставил сам стоп лос.
Можно создать советник который закрыл бы все ордера при срабатывания take-profit-a у последнего открытова ордера?
можно.
Pupersa, найди этот ордер и измени в нём параметр "стоплосс", ничё сложного.
KoDim, может связано с тем что если значения сдвинуты влево то на барах правее (пересечение на которых ты наверн и проверяешь) их вообще нет?
вопрос програмистам: как сделать число после запятой целым?:)
например в числе 1,128 нужно 128, в 1,12 - 12, в 1,2 - 2)
число - внешняя переменная.
вопрос програмистам: как сделать число после запятой целым?:)
например в числе 1,128 нужно 128, в 1,12 - 12, в 1,2 - 2)
число - внешняя переменная.
посмотрите здесь: https://docs.mql4.com/ru/basis/operations/math
Если на рынке работают деньги и их объёмы (а не волны Эллиота) и движение цены не хаотичное, а обусловленное этими самыми объёмами, то два сигнала по 2 парам (из рассматриваемых трёх) дают боле сильный сигнал по третьей паре. Ищите уровни скопления ордеров, анализируйте VSA и Вы найдёте искомые X и Y :)))
Кроме того (см. рисунок) чёткий флет по одной валютной паре (образуемый 2-мя валютами) не мешает тренду третьей валюты (по оставшимся 2-м парам). При тренде по более чем 1-ой валюте - образуется своеобразный "рыночный хаос". Так как внутридневные тренды менее устойчивы, чем средне- и долгосрочные - данный хаос больше всего выражен на мелких ТФ.
Изучая рынок в таком свете я вообще стал склонен к мысли, что тренд самих валют (а не валютных пар) представляет собой более устойчивое образование, иначе мы бы получили график-осциллятор не поддающийся никакому анализу.
Вот о чём мне говорит этот рисунок. ))))
вопрос програмистам: как сделать число после запятой целым?:)
например в числе 1,128 нужно 128, в 1,12 - 12, в 1,2 - 2)
число - внешняя переменная.