Неужели никто не глядел код? Не могу понять, что не так? Спотыкается здесь:
MomSumBuffer[i]=iMAOnArray(MomBuffer,0,PeriodTDI,0,MODE_SMA,i);
Переделал код, чтобы в лоб вручную сумму считать, ничего не получилось. Я понимаю, что в array mql-4 ничего не понимаю.
Вспоминается предмет "Квантовая механика" и поговорка оттуда - "Кванты нельзя понять, к ним можно только привыкнуть" . Неужели такая же ситуация?
Вспоминается предмет "Квантовая механика" и поговорка оттуда - "Кванты нельзя понять, к ним можно только привыкнуть" . Неужели такая же ситуация?
Конечно, победил я с помощью функции-"паразита" ArrayResize(). :)
Но все равно не понимаю, разве на быстродействии не сказывается, что на каждом тике происходит
актуализация размера массива?
Но все равно не понимаю, разве на быстродействии не сказывается, что на каждом тике происходит
актуализация размера массива?
ArrayResize(MomBuffer,limit);
ArrayResize(MomAbsBuffer,limit);
ArrayResize(MomSumBuffer,limit);
ArrayResize(MomSumAbsBuffer,limit);
ArrayResize(MomAbsSumBuffer,limit);
ArrayResize(MomAbsSum2Buffer,limit);
ArraySetAsSeries(MomBuffer,true);
ArraySetAsSeries(MomAbsBuffer,true);
ArraySetAsSeries(MomSumBuffer,true);
ArraySetAsSeries(MomSumAbsBuffer,true);
ArraySetAsSeries(MomAbsSumBuffer,true);
ArraySetAsSeries(MomAbsSum2Buffer,true);
ArrayResize(MomAbsBuffer,limit);
ArrayResize(MomSumBuffer,limit);
ArrayResize(MomSumAbsBuffer,limit);
ArrayResize(MomAbsSumBuffer,limit);
ArrayResize(MomAbsSum2Buffer,limit);
ArraySetAsSeries(MomBuffer,true);
ArraySetAsSeries(MomAbsBuffer,true);
ArraySetAsSeries(MomSumBuffer,true);
ArraySetAsSeries(MomSumAbsBuffer,true);
ArraySetAsSeries(MomAbsSumBuffer,true);
ArraySetAsSeries(MomAbsSum2Buffer,true);
Дык массив у тебя динамический, и он очивидно просто выходит за границы массива. При объявлении массива надо указывать его длину:
В Делфи это делается так:
MomSumBuffer: array[1..1000] of double;
а на МкуЛе, очивидно, так:
double MomSumBuffer[1000];
Причем динамические массивы нужны, как правило, для хранения промежуточных данных, а потом удаляются для экономии памяти.
В Делфи так
MomSumBuffer:=NIL;
А на МкуЛе не знаю, у квотесов спроси. И вообще без ФАГа программировать - занятие для мазахиста.
В Делфи это делается так:
MomSumBuffer: array[1..1000] of double;
а на МкуЛе, очивидно, так:
double MomSumBuffer[1000];
Причем динамические массивы нужны, как правило, для хранения промежуточных данных, а потом удаляются для экономии памяти.
В Делфи так
MomSumBuffer:=NIL;
А на МкуЛе не знаю, у квотесов спроси. И вообще без ФАГа программировать - занятие для мазахиста.
Здесь уже работающий вариант, если интересно.
http://forexsystems.ru/phpBB/viewtopic.php?t=622
http://forexsystems.ru/phpBB/viewtopic.php?t=622
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто чего увидит - скажите , где ошибка?