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

1715

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

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    130,8 КБ · Просмотры: 179
  • MA.mq4
    7,2 КБ · Просмотры: 19

DomovenokBrest

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

Вложения

  • DOMOVENOKBREST_2021-06-07_00067.JPG
    DOMOVENOKBREST_2021-06-07_00067.JPG
    365,6 КБ · Просмотры: 183
  • MA.mq4
    7,2 КБ · Просмотры: 38

DomovenokBrest

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

Вложения

  • MA.mq4
    7,4 КБ · Просмотры: 23

1715

Элитный участник
Вы просили на свече, когда происходит пересечение...
Вынес смещение в настройки - настраивайте, как Вам нужно...
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

Элитный участник
Этот алгоритм я написал.
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);
Стрелка появляется на пересечение.
А цена на пять баров отстаёт от пересечения.
Мне надо чтоб в момент пересечения появилась стрелка.
Пересечение происходит впереди цены, а цена до этого пересечения дойдёт только через пять свечек.
Мне надо чтоб в момент пересечения появилась стрелка на ценовой свечке.
Вот тут уже должна появиться стрелка.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    10,4 КБ · Просмотры: 77

DomovenokBrest

♔♕♖♗♘♙
Этот алгоритм я написал.
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);
Стрелка появляется на пересечение.
А цена на пять баров отстаёт от пересечения.
Мне надо чтоб в момент пересечения появилась стрелка.
Пересечение происходит впереди цены, а цена до этого пересечения дойдёт только через пять свечек.
Мне надо чтоб в момент пересечения появилась стрелка на ценовой свечке.

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

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

Вложения

  • MA.mq4
    8 КБ · Просмотры: 28
  • DOMOVENOKBREST_2021-06-07_00068.JPG
    DOMOVENOKBREST_2021-06-07_00068.JPG
    354,7 КБ · Просмотры: 113

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

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

DomovenokBrest

♔♕♖♗♘♙

Вложения

  • DOMOVENOKBREST_2021-06-07_00069.JPG
    DOMOVENOKBREST_2021-06-07_00069.JPG
    409,6 КБ · Просмотры: 100
  • DOMOVENOKBREST_2021-06-07_00070.JPG
    DOMOVENOKBREST_2021-06-07_00070.JPG
    243,3 КБ · Просмотры: 92

DomovenokBrest

♔♕♖♗♘♙
Может быть вот тут собака зарыта.
{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); - Устанавливает смещение второго буфера

ПыСы

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

Вложения

  • DOMOVENOKBREST_2021-06-07_00071.JPG
    DOMOVENOKBREST_2021-06-07_00071.JPG
    72,8 КБ · Просмотры: 8

1715

Элитный участник
SetIndexShift (0,shiftARR1); - Устанавливает смещение первого буфера
SetIndexShift (1,shiftARR2); - Устанавливает смещение второго буфера
Параметры помогли частично.
Стрелка ставится на прошедших барах.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    131,5 КБ · Просмотры: 79
  • Безымянный1.jpg
    Безымянный1.jpg
    137,7 КБ · Просмотры: 78

DomovenokBrest

♔♕♖♗♘♙
Параметры помогли частично.
Стрелка ставится на прошедших барах.
Увы, все согласно прописанному Вами алгоритму...
Меняйте условия.
Ну или уменьшите шифт стрелок на 1, т.е. поставьте (-6)
 

Вложения

  • DOMOVENOKBREST_2021-06-07_00072.JPG
    DOMOVENOKBREST_2021-06-07_00072.JPG
    158,2 КБ · Просмотры: 10

1715

Элитный участник
Увы, все согласно прописанному Вами алгоритму...
Меняйте условия.
Ну или уменьшите шифт стрелок на 1, т.е. поставьте (-6)
Нет не то.
Надо так, появилось пересечение на сдвинутых МА, на графике сразу должна быть установлена стрелка не текущей свече.
 

DomovenokBrest

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

Вложения

  • DOMOVENOKBREST_2021-06-07_00073.JPG
    DOMOVENOKBREST_2021-06-07_00073.JPG
    136,2 КБ · Просмотры: 163
Верх