торговая стратегия на базе Волновой теории Эллиота - страница 296
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы не пробовали проводить дополнительные манипуляции с коэффициентами вейвлет преобразования.
В итоге получать что-то вроде этого:
PS: Пока придумал несколько вариантов в MT (в MathCAD такой проблемы нет):
(1). Создаю параметр (int count=0;) В цикле прохожу по диапазону, проверяю критерии, если удовлетворяет, то count=count+1. Далее, создаю массив с полученным count, и повторяю все заново: рассчитанные параметры записываю в массив, выбираю оптимальный канал.
(2) Создаю массив для параметров каналов в соответствии с первоначальной длиной диапазона.
... Как бы корректно выразиться – есть ли возможность динамически расширять количество элементов в массиве. Например, ищу стабильные каналы, на какой то области от нулевого бара. С начала поиска их количество мне не известно, возможно, что ни одного и не найду.
Честно говоря вопрос не совсем понятен. Количество элементов в массиве (размер) динамически изменяется с помощью ArrayResize. Если на самом деле хочется создавать структуры, то их обещают только в МТ5.
Чисто по созвучию слов - я решал проблему дополнительных свойств ордеров, их количество тоже заранее точно неизвестно и количество свойств (те самые 40 показателей) тоже заранее не знал. Использовались три функции, но новые свойства приходилось дописывать в каждую из них ручками, с последующей перекомпиляцией. То это или не то - не знаю, но всякий случай выкладываю код последней версии
//+------------------------------------------------------------------+ //| Изменение размеров массивов свойств ордера | //+------------------------------------------------------------------+ int ResizeOrdArrays() { ArrayResize(OrdID,OrdArrSize); ArrayResize(OrdTicket,OrdArrSize); // ArrayResize(OrdData1,OrdArrSize); // ArrayResize(OrdData2,OrdArrSize); // ArrayResize(OrdData3,OrdArrSize); // ArrayResize(OrdData4,OrdArrSize); return(0); } //+------------------------------------------------------------------+ //| Добавление ордера в список ордеров | //+------------------------------------------------------------------+ int AddOrder(int ID) { OrdInd=OrdNum; OrdNum++; if (OrdNum > OrdArrSize) { OrdArrSize = OrdNum; ResizeOrdArrays(); } OrdID[OrdInd] = ID; OrdTicket[OrdInd] = ticket; // OrdData1[OrdInd] = 123.45; // OrdData2[OrdInd] = 123.45; // OrdData3[OrdInd] = 123.45; // OrdData4[OrdInd] = 123.45; return(0); } //+------------------------------------------------------------------+ //| Исключение ордера из списка ордеров | //+------------------------------------------------------------------+ int CutOrder() { OrdNum--; if (OrdInd < OrdNum) { OrdID[OrdInd] = OrdID[OrdNum]; OrdTicket[OrdInd] = OrdTicket[OrdNum]; // OrdData1[OrdInd] = OrdData1[OrdNum]; // OrdData2[OrdInd] = OrdData2[OrdNum]; // OrdData3[OrdInd] = OrdData3[OrdNum]; // OrdData4[OrdInd] = OrdData4[OrdNum]; } return(0); }P.S. Кстати, аналогичную "структуру" я использовал и для своих каналов.
...Количество элементов в массиве (размер) динамически изменяется с помощью ArrayResize. ...
А разве изменение размера уже созданного массива не приводит к его обнулению?
Спасибо. Видать, как то неверно написал принт. :о)
При изменении размера матрицы в нее добавляется нулевая строка.