# Доработка ботов (советников, индикаторов) vol. 2

Раздел: Язык программирования MQL4
Автор темы: chocolate
Создана: 2014-10-02 12:48
Ответов: 33814 | Просмотров: 6670119
Страница 1263 из 1691
Источник: https://forexsystemru.com/threads/77111/page-1263

---

## erex — 2021-06-07 10:53

> Цитата (omg):
> приветствую а можете поделится стрелочками зелёными и оранжевыми? заранее спасибо)

Не поручусь, что не рисуют. Я их пока проверяю.

## omg — 2021-06-07 11:34

благодарю

## good_heart — 2021-06-07 15:00

> Цитата (MakarFX):
> tTime        = 12;

я меняю, любой другой периуд, стрелки как и были так и остаются на тех местах...

## MakarFX — 2021-06-07 17:58

> Цитата (good_heart):
> я меняю, любой другой периуд, стрелки как и были так и остаются на тех местах...

Дай скрин

У меня стрелок нет, только статистика

## 1715 — 2021-06-07 18:52

Уважаемые программисты помогите сдвинуть стрелки.
Красная МА сдвинута на 5 баров вперёд, синяя на 10 баров вперёд.
Пересечение происходит когда цена находится на пять баров взади.
Надо чтоб стрелка сигналила на свече когда происходит пересечение.
Где должны быть стрелки указал стрелкой в квадратике.
Спасибо.

## DomovenokBrest — 2021-06-07 19:02

> Цитата (1715):
> Уважаемые программисты помогите сдвинуть стрелки.
> Красная МА сдвинута на 5 баров вперёд, синяя на 10 баров вперёд.
> Пересечение происходит когда цена находится на пять баров взади.
> Надо чтоб стрелка сигналила на свече когда происходит пересечение.
> Где должны быть стрелки указал стрелкой в квадратике.
> Спасибо.

## 1715 — 2021-06-07 19:16

Это не то.
Ты вообще сдвиг МА убрал.

## DomovenokBrest — 2021-06-07 19:21

> Цитата (1715):
> Это не то.
> Ты вообще сдвиг МА убрал.

Вы просили на свече, когда происходит пересечение...
Вынес смещение в настройки - настраивайте, как Вам нужно...
*extern int shift1 = 0;//Смещение для быстрой МА
extern int shift2 = 0;//Смещение для медленной МА*

## 1715 — 2021-06-07 19:31

> Цитата (DomovenokBrest):
> Вы просили на свече, когда происходит пересечение...
> Вынес смещение в настройки - настраивайте, как Вам нужно...
> *extern int shift1 = 0;//Смещение для быстрой МА
> extern int shift2 = 0;//Смещение для медленной МА*

Этот алгоритм я написал.
  double     MA0 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i);
  double     MA01 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i);
  double     MA1 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i+1);
  double     MA11 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i+1);
Стрелка появляется на пересечение.
А цена на пять баров отстаёт от пересечения.
Мне надо чтоб в момент пересечения появилась стрелка.
Пересечение происходит впереди цены, а цена до этого пересечения дойдёт только через пять свечек.
Мне надо чтоб в момент пересечения появилась стрелка на ценовой свечке.

## 1715 — 2021-06-07 19:42

> Цитата (1715):
> Этот алгоритм я написал.
>   double     MA0 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i);
>   double     MA01 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i);
>   double     MA1 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i+1);
>   double     MA11 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i+1);
> Стрелка появляется на пересечение.
> А цена на пять баров отстаёт от пересечения.
> Мне надо чтоб в момент пересечения появилась стрелка.
> Пересечение происходит впереди цены, а цена до этого пересечения дойдёт только через пять свечек.
> Мне надо чтоб в момент пересечения появилась стрелка на ценовой свечке.

Вот тут уже должна появиться стрелка.

## DomovenokBrest — 2021-06-07 19:47

> Цитата (1715):
> Этот алгоритм я написал.
>   double     MA0 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i);
>   double     MA01 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i);
>   double     MA1 = iMA(NULL, 0, 5, 5, MODE_EMA, PRICE_CLOSE, i+1);
>   double     MA11 = iMA(NULL, 0, 20, 10, MODE_EMA, PRICE_CLOSE, i+1);
> Стрелка появляется на пересечение.
> А цена на пять баров отстаёт от пересечения.
> Мне надо чтоб в момент пересечения появилась стрелка.
> Пересечение происходит впереди цены, а цена до этого пересечения дойдёт только через пять свечек.
> Мне надо чтоб в момент пересечения появилась стрелка на ценовой свечке.

> Цитата (1715):
> Вот тут уже должна появиться стрелка.

Играйтесь с шифтами. По логике, если я Вас правильно понял, так как в настройках и должно быть...
*extern int PereodMA1 = 5;
extern int shiftMA1 = 5;//Смещение для быстрой МА
extern int shiftARR1 = -10;//Смещение для синей стрелки
extern int PereodMA2 = 20;
extern int shiftMA2 = 10;//Смещение для медленной МА
extern int shiftARR2 = -20;//Смещение для красной стрелки*

## 1715 — 2021-06-07 20:04

> Цитата (DomovenokBrest):
> Играйтесь с шифтами. По логике, если я Вас правильно понял, так как в настройках и должно быть...
> *extern int PereodMA1 = 5;
> extern int shiftMA1 = 5;//Смещение для быстрой МА
> extern int shiftARR1 = -10;//Смещение для синей стрелки
> extern int PereodMA2 = 20;
> extern int shiftMA2 = 10;//Смещение для медленной МА
> extern int shiftARR2 = -20;//Смещение для красной стрелки*

Я пробовал не помогает. Этими параметрами линии двигаются.
А мне надо стрелку от пересечения сдвинуть на пять баров назад.

## 1715 — 2021-06-07 20:10

Может быть вот тут собака зарыта.
{BufUp*=Low - ArrShift;pos=i;if (b<2 && Al==true) {Alert(Symbol()+" MA BUY "+Close);b=b+1;s=0;}}
Надо стрелку назад сдвинуть на N баров.*

## DomovenokBrest — 2021-06-07 20:20

> Цитата (1715):
> Я пробовал не помогает. Этими параметрами линии двигаются.
> А мне надо стрелку от пересечения сдвинуть на пять баров назад.

## DomovenokBrest — 2021-06-07 20:24

> Цитата (1715):
> Может быть вот тут собака зарыта.
> {BufUp*=Low - ArrShift;pos=i;if (b<2 && Al==true) {Alert(Symbol()+" MA BUY "+Close);b=b+1;s=0;}}
> Надо стрелку назад сдвинуть на N баров.*

SetIndexShift (0,shiftARR1);  **- Устанавливает смещение первого буфера**
SetIndexShift (1,shiftARR2); **-  Устанавливает смещение второго буфера

ПыСы**
Первый буфер - синяя стрелка
Второй буфер - красная стрелка

## 1715 — 2021-06-07 20:52

> Цитата (DomovenokBrest):
> SetIndexShift (0,shiftARR1);  **- Устанавливает смещение первого буфера**
> SetIndexShift (1,shiftARR2); **-  Устанавливает смещение второго буфера**

Параметры помогли частично.
Стрелка ставится на прошедших барах.

## DomovenokBrest — 2021-06-07 20:55

> Цитата (1715):
> Параметры помогли частично.
> Стрелка ставится на прошедших барах.

Увы, все согласно прописанному Вами алгоритму...
Меняйте условия.
Ну или уменьшите шифт стрелок на 1, т.е. поставьте (-6)

## 1715 — 2021-06-07 21:03

> Цитата (DomovenokBrest):
> Увы, все согласно прописанному Вами алгоритму...
> Меняйте условия.
> Ну или уменьшите шифт стрелок на 1, т.е. поставьте (-6)

Нет не то.
Надо так, появилось пересечение на сдвинутых МА, на графике сразу должна быть установлена стрелка не текущей свече.

## DomovenokBrest — 2021-06-07 21:03

> Цитата (1715):
> Параметры помогли частично.
> Стрелка ставится на прошедших барах.

Я не пойму, зачем Вы гланды через задницу выдираете?
если Вам нужны стрелки - сделайте шифт в расчете мувингов = 0, а если Вы хотите отобразить и смещенные мувинги - введите новые буфера и там уже в расчетах применяйте шифт...

## 1715 — 2021-06-07 21:03

> Цитата (DomovenokBrest):
> Увы, все согласно прописанному Вами алгоритму...
> Меняйте условия.
> Ну или уменьшите шифт стрелок на 1, т.е. поставьте (-6)

Спасибо за помощь.

---

Следующая страница: https://forexsystemru.com/threads/77111/page-1264
