Уважаемые программисты помогите перенести алгоритм индикатора на алгоритм советника!!! - страница 3

 
Vinin:


Зачем переносить код индикатора, заглядывающего в будущее в советник.

Такие индикаторы только на графике хороши


Вопрос состоит в том что я уже перенес частично... а вот второй график CloseDelta не как не могу... Задача состоит в том чтобы его перенести без потери...
 
Vinin:



ArrayMaximum ооо новая функция ну спасибо.... 
 
Старая вобще-то. И раньше была, просто не все о ней знали ;)
 

Мои дорогие программисты... Вы конечно молодцы раскрутили мою систему построек... МАCD - fractal(MACD).... но задача состоит сов сем в другом....

Задача состояла не в том чтобы система пересчитывала фракталы MCAD а в осуществлении скорости изменения DeltaClose по этому для начало прикрепляю:

1. прикрепляю график закупок и продаж Перед.jpg.

2. прикрепляю обновленный MACD_TIY.v1.02.mq4 и После.jpg.

Надеюсь по графику все понятно дааа??

Файлы:
 
evillive:
Старая вобще-то. И раньше была, просто не все о ней знали ;)

ArrayMaximum ооо новая функция ну спасибо.... 
 
Doctor.Tiy:

Мои дорогие программисты... Вы конечно молодцы раскрутили мою систему построек... МАCD - fractal(MACD).... но задача состоит сов сем в другом....

Задача состояла не в том чтобы система пересчитывала фракталы MCAD а в осуществлении скорости изменения DeltaClose по этому для начало прикрепляю:

1. прикрепляю график закупок и продаж Перед.jpg.

2. прикрепляю обновленный MACD_TIY.v1.02.mq4 и После.jpg.

Надеюсь по графику все понятно дааа??


в добавление хотелось бы обратить внимания... на новый MACD_TIY.v1.02.mq4 там элемент

for(int i=0; i<limit; i++)

{ MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

L_CloseDelta[i-2]=Close[i-2]- Close[m];

if (MacdBuffer[i-2]>delta && L_CloseDelta[i-2]>0)

if (MacdBuffer[i-2]-MacdBuffer[i-4] > 0) if (MacdBuffer[i-2]-MacdBuffer[i-3] > 0) if (MacdBuffer[i-2]-MacdBuffer[i-1] > 0) if (MacdBuffer[i-2]-MacdBuffer[i] > 0)

{ F_upper[i-2]=0; m=i-2; }

if (MacdBuffer[i-2]<-1*delta && L_CloseDelta[i-2]<0)

if (MacdBuffer[i-2]-MacdBuffer[i-4] < 0) if (MacdBuffer[i-2]-MacdBuffer[i-3] < 0) if (MacdBuffer[i-2]-MacdBuffer[i-1] < 0) if (MacdBuffer[i-2]-MacdBuffer[i] < 0)

{ F_lower[i-2]=0; m=i-2; } }

и как же перенести этот элемент в советник понятия не имею помогите даааа....

if (MacdBuffer_III<-1*delta [ функция && L_CloseDelta[i-2]>0 ])

if (MacdBuffer_III-MacdBuffer_V < 0) if (MacdBuffer_III-MacdBuffer_IV < 0) if (MacdBuffer_III-MacdBuffer_II < 0) if (MacdBuffer_III-MacdBuffer_I < 0) и т.д.

 
Doctor.Tiy:

Мои дорогие программисты... Вы конечно молодцы раскрутили мою систему построек... МАCD - fractal(MACD).... но задача состоит сов сем в другом....

Задача состояла не в том чтобы система пересчитывала фракталы MCAD а в осуществлении скорости изменения DeltaClose по этому для начало прикрепляю:

1. прикрепляю график закупок и продаж Перед.jpg.

2. прикрепляю обновленный MACD_TIY.v1.02.mq4 и После.jpg.

Надеюсь по графику все понятно дааа??


А файлик - то абсолютно тот же самый что и в первый раз, кроме && L_CloseDelta[i-2]>0 и && L_CloseDelta[i-2]<0.


Да и никто не будет помогать строить советник смотрящий в будущее, не ломайте устои и традиции данного общества

 
evillive:

А файлик - то абсолютно тот же самый что и в первый раз, кроме && L_CloseDelta[i-2]>0 и && L_CloseDelta[i-2]<0.


Да и никто не будет помогать строить советник смотрящий в будущее, не ломайте устои и традиции данного общества


Уважаемый evillive: вы расматриваете не тот аспект...

Меня мало интересует MACD_TIY.v1.02.mq4 мне главное установить соответствие в DoctornBuy-Sellsv1.01.mq4 как я могу перенести условия L_CloseDelta[R]=Close[R]- Close[m]; && L_CloseDelta[R]>0 и && L_CloseDelta[R]<0 в советник DoctornBuy-Sellsv1.01.mq4

и 2. "не ломайте устои и традиции данного общества "- а если они не правильны... система должна быть гибкой а тут без 100 г. не разберешься...

не хочу некого обидеть... просто замучился я с системой... вот и обратился к профиссионалам как вы...

P.S.

Спасибо за алгоритм

for(int i=0; i<limit; i++)
     {
      F_upper[i+2]=EMPTY_VALUE;
      F_lower[i+2]=EMPTY_VALUE;
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

      if(ArrayMaximum(MacdBuffer,5,i)==i+2 && MacdBuffer[i+2]>delta)
         F_upper[i+2]=0;

      if(ArrayMinimum(MacdBuffer,5,i)==i+2 && MacdBuffer[i+2]<-1.0*delta)
         F_lower[i+2]=0;

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

 

Вызывайте индикaтор в советнике как любой другой пользовательский индикатор, так проще, зачем переносить алгоритм?

Из справочника:

double  iCustom(
   string       symbol,           // symbol
   int          timeframe,        // timeframe
   string       name,             // path/name of the custom indicator compiled program
   ...                            // custom indicator input parameters (if necessary)
   int          mode,             // line index
   int          shift             // shift
   );
 

В вашем случае примерно так:

TIY_fractalup=iCustom(NULL,0,"MACD_TIY.v1.02",FastEMA,SlowEMA,SignalSMA,delta,1,0); //для фрактала вверх
TIY_fractaldn=iCustom(NULL,0,"MACD_TIY.v1.02",FastEMA,SlowEMA,SignalSMA,delta,2,0); //для фрактала вниз
TIY_CloseDelta=iCustom(NULL,0,"MACD_TIY.v1.02",FastEMA,SlowEMA,SignalSMA,delta,3,0); //для дельты

Правда если вы настаиваете на заглядывании в будущее, то не знаю как этот советник работать будет, разве что в тестере только...

 
Doctor.Tiy:


в добавление хотелось бы обратить внимания... на новый MACD_TIY.v1.02.mq4 там элемент

for(int i=0; i<limit; i++)

{ MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

L_CloseDelta[i-2]=Close[i-2]- Close[m];

if (MacdBuffer[i-2]>delta && L_CloseDelta[i-2]>0)

if (MacdBuffer[i-2]-MacdBuffer[i-4] > 0) if (MacdBuffer[i-2]-MacdBuffer[i-3] > 0) if (MacdBuffer[i-2]-MacdBuffer[i-1] > 0) if (MacdBuffer[i-2]-MacdBuffer[i] > 0)

{ F_upper[i-2]=0; m=i-2; }

if (MacdBuffer[i-2]<-1*delta && L_CloseDelta[i-2]<0)

if (MacdBuffer[i-2]-MacdBuffer[i-4] < 0) if (MacdBuffer[i-2]-MacdBuffer[i-3] < 0) if (MacdBuffer[i-2]-MacdBuffer[i-1] < 0) if (MacdBuffer[i-2]-MacdBuffer[i] < 0)

{ F_lower[i-2]=0; m=i-2; } }

и как же перенести этот элемент в советник понятия не имею помогите даааа....

if (MacdBuffer_III<-1*delta [ функция && L_CloseDelta[i-2]>0 ])

if (MacdBuffer_III-MacdBuffer_V < 0) if (MacdBuffer_III-MacdBuffer_IV < 0) if (MacdBuffer_III-MacdBuffer_II < 0) if (MacdBuffer_III-MacdBuffer_I < 0) и т.д.


Попробуйте для начала отказаться от заглядывания в будущее, тогда без проблем можно перенести все в советник
Причина обращения: