Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть ограничение на количество вопросов без нормального выкладывания кода...
Как объявлен массив?
Что за N? это типа глобальная переменная? При N=1 как нужно отрабатывать? (я думаю цикл должен пробежаться)
Двухмерные массивы могут несколько подтормаживать.
Есть ограничение на количество вопросов без нормального выкладывания кода...
Как объявлен массив?
Что за N? это типа глобальная переменная? При N=1 как нужно отрабатывать? (я думаю цикл должен пробежаться)
Двухмерные массивы могут несколько подтормаживать.
Весь код я ни за что не выложу, т.к. это чисто моя интеллектуальная собственность... Однако, если есть неравнодушные люди, то как раз у них и прошу помощи. Для бОльшего понимая выложу кусок кода, относящегося к данной функции. По поводу "тормозов" вопроса и не было! Был вопрос, что в какой то момент функция Bars перестает инкрементироваться.
// глобальные переменные
#define N 1200
#define iSar 11
int SAR[iSar][N];
//есть функция void GetFirstData(), в которой получает начальные данные - как видно из кода их получается 1200*11=13200 значения. Так вот для того, чтобы на каджом новом баре не пересчитывать историю, я на новом баре сдвигаю мой массив по типу забываем о последнем баре, и берем только 11 значений 0 бара. - void GetNewBar().
void GetNewBar()
{
for(int i=N-1;i>0;i--)
for(int j=0;j<iSar;j++)
SAR[j][i]=SAR[j][i-1];
}
Может я что то неправильно объясняю???
Может я что то неправильно объясняю???
Тема называется ошибка в Bars, покажите хоть один полный пример с демонстрацией ошибки и использования этой функции. GetNewBar отношения к делу не имеет.
А не так: тут есть функция старт, в ней все Bars равны что и ежу понятно, а тут у нас коммент за пределами всего.
К примеру
в этом коде ошибка возникает?
Весь код я ни за что не выложу, т.к. это чисто моя интеллектуальная собственность...
Жжете, автор. Не можете разобраться с базой языка и при этом утверждаете, что ваш код представляет интеллектуальную ценность.
Наверно я зря 5 лет на инженера-программиста учился судя по Вашему мнению! На mql4 пишу с момента его выхода в свет...
Ошибка была в следующей структуре:
if ((otstupDN==1) && (sushaUP>sushaDN) && (sushaDN>NBarsPmin) && (sushaDN<NBarsPmax) && (sushaUP>NBarsSmin) && (sushaUP<NBarsSmax))
{
if((1.0*sushaDN/sushaUP>1.0*Percmin/100) && (1.0*sushaDN/sushaUP<1.0*Percmax/100))
{
Operation=OP_SELL;
return(true);
}
Как только разнес все условия на 2 if-а зависания прошли. Т.е. условия в 1-м if работают корректно и во 2-м тоже. Но вместе не получается. Точно могу сказать, что деления на 0 не может происходить. Параметры sushaUP и sushaDN всегда ненулевые параметры.
Мне конечно не понятно по какой причине такое произошло, но результат был достугнут, хоть и "неправильным" стилем кодинга...
Наверно я зря 5 лет на инженера-программиста учился судя по Вашему мнению! На mql4 пишу с момента его выхода в свет...
Может, и не зря, судить не буду: я с вами в одной песочнице не работал. Почему-то только ищете ошибку сначала в Bars, а потом у себя... Ваш код Ценен, поэтому вероятность ошибок в нем куда меньше - плохая установка для инженера-программиста.
Может, и не зря, судить не буду: я с вами в одной песочнице не работал. Почему-то только ищете ошибку сначала в Bars, а потом у себя... Ваш код Ценен, поэтому вероятность ошибок в нем куда меньше - плохая установка для инженера-программиста.
О политике и моральных ценностях я пообщаюсь в другом месте. Однако для людей сказал: ошибка была в длине условий! такого раннее не видел!