Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
http://ruforum.forexpeoples.com/index.php?s=f3a21a8e902b46250912e7246ec5967d&showtopic=14530&view=findpost&p=295391
Если к ней добавить статистику, то результат может оказаться впечатляющим. Статистика хороша, когда обрабатывает некую базовую теорию.
Статья называется "Формула рыночной волны". С уважением и добрыми пожеланиями!
Вот несколько предложений и замечаний по коду OptimMA.mq4.
Предложения по увеличению быстродействия.
if (Low[k]<=LossPrice) { find = true; FileWriteInteger(hFile, -k); break;}//если нашли бар СЛ
else if (High[k]>=ProfitPrice) { find=true; FileWriteInteger(hFile, k); break;}//если нашли бар ТП
while (_ma<MaxK && find && k<MaxI) // проходим по вееру и классифицируем его
{
if (Sign(Ma.Sub[_ma][j])!=Sign(Ma.Sub[_ma][i])) {find=false; break;}// если не совпало направление каждой МА
else
if (MathAbs(Ma.Sub[_ma][j])>=MathAbs(Ma.Sub[_ma][i])*1.4 || MathAbs(Ma.Sub[_ma][j])<=MathAbs(Ma.Sub[_ma][i])*0.714)
{find=false; break;}// или если расстояния между ними не попадают в диапазон
_ma++;
}
Замечания о возможных ошибках.
Ф-ция CreatDataArray()
Почему используются цены Open и Close, а не High и Low? Ведь для расчета MA мы используем High и Low.
Может надо использовать Ma[0](с периодом 2) вместо Ma[1](с периодом 5), т.к. мы берем разницу между соседними MA.
Кажется должно быть j=1 тогда мы полностью составим картину для всех вееров на всех 125000 барах. Т.е. берем веер на каждом баре и сравниваем его со всеми подряд веерами на всех барах. А так мы сравниваем статистику на разных кол-вах баров.
Здесь же возникает вопрос как выбрать/извлечь веер-образец для дальнейшего использования, т.к. мы все же выбираем группу идентичных вееров?
Спасибо за все ваши корректировки. Очень приятно, что вы разобрались с кодом.
Большую часть из правок я нашел сам. А вот что касается вашего последнего замечания
строка 118: for (j=i+1; j<MaxI; j++)
Кажется должно быть j=1 тогда мы полностью составим картину для всех вееров на всех 125000 барах. Т.е. берем веер на каждом баре и сравниваем его со всеми подряд веерами на всех барах. А так мы сравниваем статистику на разных кол-вах баров.
здесь уже обсуждалось. Мы не должны заглядывать в будущее. Поэтому мой цикл правильный.
Спасибо за все ваши корректировки. Очень приятно, что вы разобрались с кодом.
Большую часть из правок я нашел сам. А вот что касается вашего последнего замечания
строка 118: for (j=i+1; j<MaxI; j++)
Кажется должно быть j=1 тогда мы полностью составим картину для всех вееров на всех 125000 барах. Т.е. берем веер на каждом баре и сравниваем его со всеми подряд веерами на всех барах. А так мы сравниваем статистику на разных кол-вах баров.
здесь уже обсуждалось. Мы не должны заглядывать в будущее. Поэтому мой цикл правильный.
Все с точностью до наоборот. Если вы например находителсь сейчас на баре номер 0, то ведь не знаете значения веера бара номер -1 или -2. Это ведь back to the future. А ограничением выборки от i+1 мы таким образом не смотрим на бары i, i-1, i-2 ...
Убедил?
Я понимаю где в таймсерии находится прошлое и будущее :-) Я говорю о том что статистическое исследование проведено неверно.
Если мы проводим его на 125 000 барах, то мы должны взять веер принадлежащий каждому бару и сравнить его с остальными 124 999 веерами.
И потом выбрать наиболее удачный шаблон веера. В варианте когда j=i+1 мы каждый следующий веер сравниваем с меньшим кол-вом вееров. Получается что для некоторых вееров мы проводим сравнение с 10, 11 ... 2000 и т.д. веерами. Мне кажется это не корректным.
я, наверное, опоздал к беседе. И я не профессионал. Мне просто хотелось понять, возможно с помощью вашей статьи или прикрепленных данных определить, например, время, когда та или иная валюта вообще становится более активна. Не важно, в каком направлении. Просто активна. Если да, то напишите, пожалуйста, как это сделать. Или может есть какой-то другой способ. Мне это, к сожалению, нужно, и я не могу решить этот вопрос. Мне надо определить статистически время ативности валюты, не направление и точку входа, а время входа.
с уважением, Азер.
Хорошая статья. Особенно подход необычен.
Что интересно, функция IsProfitFan, зачем там вставлена? Раз стоит значит что-то делала.
Спасибо за статью, хоть и давно это было.
обнаружил неточность в коде !IndoExp.mq4
последняя строка сработает если M2[i]==1.0 и SellSL[i-1]==-1.0 (и наоборот)
т.е. сигнал на покупку и убыток от продажи, а зачем продавать если сигнал на покупку? )))
надо расписать это условие
Жаль, что так никто и не создал ветку на форуме. А ведь обсудить есть что.
Интересный факт, если строку 96 заменить на: op=(High[i]+Low[i])/2.0;
а строку 98 заменить на: Ma.Sub[0][i]=op-Ma[0];
то результат получается намного скромнее.
Может для лучшего результата вообще стоит исключить из сравнения абсолютные значения малопериодных МА. Начать, например, с разницы МА5 и МА8?