Если кому-нить не трудно, доведите до ума пожалуйста AdaptiveExtrapolator v1.1 - страница 4

 
diamondyar писал(а) >>

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

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

Так вот, может кто в состоянии сделать так, чтобы индикатор всетаки перерисовывался с приходом новой свечи, но при этом старый кусок перспективного движения (красный который) тоже оставался на графике. Это даст веер кривых соответственно со скоплениями и пересечениями. считаю что будет очень интересный результат...

Если кто возъмется, то имейте ввиду, что желательно иметь возможность отключения данной функции + иметь возможность устанавливать(тоесть ограничивать по желанию) количество мертвых перспективных линий на графике.

Думаю, что идея кого-нибудь обязательно заинтеесует...)))))

может ктонить это всетаки сможет прокоментировать и сделать))))

 

формируешь внутрений массив данных, С приходом новой свечи смещаешь массив на 1,производишь расчет этой свечи и полученое

значение записываешь в начало нового массива..для отображение этот массив пересылаешь в буфер отображения..

extern int  Counter   = 1000;
// Массивы отображения данных 
double FxView[];
// рабочие переменные и массивы
int TimeSave;
int  TimeCurr;
double  TimeBuf[];

void Init()
{
     SetIndexBuffer(0,FxView);
      TimeSave=Time[Counter];
      ArrayResize(TimeBuf,Counter);
     ArrayInitialize(TimeBuf,EMPTY_VALUE);
     return;
}

void done()
{
      ArrayResize(TimeBuf,0);
     return;
}

void Start()

{

  TimeCurr=Time[0];
  CalcCount=iBarShift(NULL,0,TimeCurr)-iBarShift(NULL,0,TimeSave);
// смещение данных
for (int Ix=Counter-1;Ix>=CalcCount;Ix--)
{
    TimeBuf[Ix+1]=TimeBuf[Ix];
}


...

расчеты на кол-ве данных CalcCount

for (Ix=CalcCount-1;Ix>=0;Ix--)
{
    TimeBuf[Ix]=functionCalculated();
}
TimeSave=TimeCurr;
// отображение полученого массива
ArrayCopy(FxView,TimeBuf,0,0,Counter);

  return;

}

 
forte928 писал(а) >>

формируешь внутрений массив данных, С приходом новой свечи смещаешь массив на 1,производишь расчет этой свечи и полученое

значение записываешь в начало нового массива..для отображение этот массив пересылаешь в буфер отображения..

спасибо! Логику действий я в принципе понимаю. Знаю что это не ахти сложно...

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

...Поэтому просьба то собственно одна -------- дать готовое решение если можно, в виде индикатора, который достаточно компильнуть и все...

...заранее спасибо...----извиняюсь за настойчивость...

 

Брось тот индикатор который тебе необходио доделать в личку..в пятницу сделаю..

 
forte928 писал(а) >>

Брось тот индикатор который тебе необходио доделать в личку..в пятницу сделаю.

так я про твой же говорю индикатор -------- про который тема эта, ------ разве не понятно это?
 

Вся проблема для этого индикатора заключается в том что данные которые он отображает постоянно исменяються..т.е при более больших кол-вах

гармоник индикатор в индентичности повторяет те точки через которые проходит при меньших кол-вах гармоник он изменяеет свои точки расчета..

если посмотреть при смещении влево динамически при помощи скрипта, то это точно наблюдается..

Вот для примера показано два графика на них четко видна разница в положении линии..параметры индиатора на двух графиках индентичны..

Но если тебе нужна реализация как буферизировать расчетные данные и производить расчет только тех которые обновились то

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

и расчет только лишь небольшого участка новых данных..

Файлы:
gegapbuff.mq4  9 kb
 
forte928 писал(а) >>

Вся проблема для этого индикатора заключается в том что данные которые он отображает постоянно исменяються..т.е при более больших кол-вах

гармоник индикатор в индентичности повторяет те точки через которые проходит при меньших кол-вах гармоник он изменяеет свои точки расчета..

если посмотреть при смещении влево динамически при помощи скрипта, то это точно наблюдается..

Вот для примера показано два графика на них четко видна разница в положении линии..параметры индиатора на двух графиках индентичны..

Но если тебе нужна реализация как буферизировать расчетные данные и производить расчет только тех которые обновились то

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

и расчет только лишь небольшого участка новых данных..

...мы явно друг друга не понимаем...)))))

все же вроде не сложно для понимания ...----- Вот на последнем тике свечи имеем некую картину перспективы ------ она у нас красная --- для данной свечи это последнее изменение "будущего" для цены клоз...

... сохраняем какимто образом эту кривую на графике прямо в том месте где она была актуальна ------ замораживаем ее ---... Далее поступает первый тик новой свечи ------- и "живой индикатор" переходит на текущую свечу ---- и будет жить и дергаться на ней до момента прихода последнего тика соответствующего клозу свечи ------- и тут эта кривая "будущего" снова замерает по цене последнего изменения и в таком виде остается на графике...

...таким образом у нас уже 2 мертвые красные кривые "будущего" нарисованые на клозах 1 и 2 баров + одна живая кривая на баре номер 0.... ------- и так далее...

...именно это я ввиду имел. Понимаете?

 

Половину я понял, но более точно нужно просто расписать алгоритм..

начнем с такого описания имее три (или два) бара и что как последовательно получается, а процес реализации тогда более

быстрее подет..

- начало третьего бара :

- окончание третьего бара :

-требуемый результат :

- начало второго бара :

- окончание второго бара :

-требуемый результат :

P.S. Если в комнату войдет два человека - они по разному увидят ее..поэтому

в том что мы просто не поняли немного друг друга нет ничего сложного..

нужны простые вещи чтобы описать сложную систему..

 
forte928 писал(а) >>

Половину я понял, но более точно нужно просто расписать алгоритм..

начнем с такого описания имее три (или два) бара и что как последовательно получается, а процес реализации тогда более

быстрее подет..

- начало третьего бара :

- окончание третьего бара :

-требуемый результат :

- начало второго бара :

- окончание второго бара :

-требуемый результат :

P.S. Если в комнату войдет два человека - они по разному увидят ее..поэтому

в том что мы просто не поняли немного друг друга нет ничего сложного..

нужны простые вещи чтобы описать сложную систему..

...)))) понятно, что ничего не понятно...))))0

Тогда так:

1. Правильно ли я понимаю что на графике отрображается индикатор, который перерисовывается фактически с каждым тиком свечи, и состоит он из двух частей: прошлое---синяя и будущее --- красная.--------- делитель прошлого и будущего ----- это текущий бар, во время жизни которого мы наблюдаем локальную перерисовку индикатора...?

2. С появлением новой свечи ------ происходит глобальная перерисовка, тоесть ко всему прочему еще и смещается вправо граница между прошлым и будущим?

3. До наступления момента времени=опен(0) на графике есть индикатор в ввиде последней перерисовки?

...все что нужно ------ это поймать переход к новому бару, т.е. до момента образования индикатора на свече номер 0, сразу после появления котировки=опен(0) -- нужно сохранить изображения индикатора в некий буфер ------ чтобы из него можно было его выводить на экран уже в статичном виде ------ а при этом же отображать на графике текущие значения для нулевой свечи. Т.е. на графике должны быть красные куски индикотора актуальные для значений клоз(1), клоз(2), клоз(3), клоз(4).....----- они понатно статичны(заморожены) и уже не перерисовываются, и должен быть живой динамичный индикатор на текущем баре с перерисовками...

...напишите, что из этого вам понятно, а что нет))))))0

 

Ничего толкового из этого не вышло..

Желтая линия статический массив данных..

Файлы:
Причина обращения: