[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 615

 
ToLik_SRGV:


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

А СУЩЕСТВУЕТ ЛИ ЕЩЁ СПОСОБ ОПРЕДЕЛЕНИЯ ВОЗРАСТАЕТ ЭКВИТИ ИЛИ ПАДАЕТ ?
 
sllawa3:
А СУЩЕСТВУЕТ ЛИ ЕЩЁ СПОСОБ ОПРЕДЕЛЕНИЯ ВОЗРАСТАЕТ ЭКВИТИ ИЛИ ПАДАЕТ ?

Я бы к вышесказанному добавила сглаживание в виде измерения процентного изменения.

Как раз на последних нескольких барах.

Как-то баловалась -- очень хорошо работает.

P.S. Capslock хорошо бы отжать.

 
Swetten:

Я бы к вышесказанному добавила сглаживание в виде измерения процентного изменения.

Как раз на последних нескольких барах.

Как-то баловалась -- очень хорошо работает.

P.S. Capslock хорошо бы отжать.

процентное изменение чего и по отношению к чему ?
 
sllawa3:
процентное изменение чего и по отношению к чему ?

Процентное изменение эквити.

По отношению к самому себе.

 
имею в виду соотношение эквити и баланса (т.к. возможно уменьшение расстояния между ними несмотря на обоюдный рост или рост одного при падении другого ) ? и всё равно же для сравнения изменения надо создавать массив
 
sllawa3:
имею в виду соотношение эквити и баланса (т.к. возможно уменьшение расстояния между ними несмотря на обоюдный рост или рост одного при падении другого ) ? и всё равно же для сравнения изменения надо создавать массив

Массив создавать надо.

Меряем (меряли) только эквити.

 
double эквити;
int limit = 10; //глубинa в барах
for(int i=0;i<limit;i++)
{
эквити=(AccountEquity(),i);

}

вот чё нить типа этого ( как с индюками )ток как записать корректно... (а то у нас в деревне школы не было... )

 

Лучше так

double эквити[];
int limit = 10; //глубинa в барах 
ArrayResize(эквити,limit);
for(int i=limit-1;i>=0;i--)
{
if(i!=0)эквити[i]=эквити[i-1];
else эквити=AccountEquity();

}
 
Roger:

Лучше так

double эквити[];
int limit = 10; //глубинa в барах 
ArrayResize(эквити,limit);
for(int i=limit-1;i>=0;i--)
{
if(i!=0)эквити[i]=эквити[i-1];
else эквити=AccountEquity();

}

Что-то мне подсказывает, что тут есть загвоздочка... Я конечно ещё молод в MQL (в апреле сего года занялся) и с массивами пока не очень, но ведь эта конструкция будет заполнять массив на каждом тике, значит эквити будет в каждом элементе массива одним и тем же (тем, который имеется на данный момент времени), а нужно элементы массива заполнять с открытием каждого бара, чтобы в элементы массива, адресуемые i заносить данные о состоянии эквити на каждом баре. Т.е. в цикле должна быть проверка на открытие нового бара, если да, то записываем значение эквити, в ячейку массива, адресуемую i, если еще не открылся новый бар, то и заносить в следующую ячейку массива, адресуемую уже i -1, ничего не нужно, иначе занесём туда текущее состояние эквити...
Поправьте, если я не прав...

 
artmedia70:

Что-то мне подсказывает, что тут есть загвоздочка... Я конечно ещё молод в MQL (в апреле сего года занялся) и с массивами пока не очень, но ведь эта конструкция будет заполнять массив на каждом тике, значит эквити будет в каждом элементе массива одним и тем же (тем, который имеется на данный момент времени), а нужно элементы массива заполнять с открытием каждого бара, чтобы в элементы массива, адресуемые i заносить данные о состоянии эквити на каждом баре. Т.е. в цикле должна быть проверка на открытие нового бара, если да, то записываем значение эквити, в ячейку массива, адресуемую i, если еще не открылся новый бар, то и заносить в следующую ячейку массива, адресуемую уже i -1, ничего не нужно, иначе занесём туда текущее состояние эквити...
Поправьте, если я не прав...


по моему прав.. у мня тож таки сомнения...