Авторское - страница 8

 
alexeymosc:

Спасибо господин Human.

А откуда берутся трактовки сигналов "лонг" и "шорт", вы сами их прописали в коде? 

Не понял вопроса, что значит сам прописал? Как вы себе представляете трактовку паттернов?
 
her.human:

Допустим нашли наиболее  частый паттерн, о чем говорит этот паттерн? Что надо делать дальше, покупать или продавать?

 Без разделения на buy и sell невозможно посчитать общее количество паттернов а следовательно и среднее.

В данном случае мне проще ответить кодом.
Файлы:
 
hrenfx:
В данном случае мне проще ответить кодом.

Один хрен только вид сбоку.

В моем случае используется всего два массива (arr_buy и arr_sell) для хранения всей информации по паттернам,

которые легко сохранять на случай вынужденного перезапуска советника, чтобы не потерялась статистика.

В вашем случае, кроме одного массива Patterns[index],  есть еще несколько статичных переменных без которых не обойтись,

например  static int Element[]; 

                  static int PrevIndex = -1;

Изначально тоже начал писать с одним массивом но потом отказался.

По поводу идентификации паттернов и убрать индикатор: еще не до конца разобрал  ваш код (без комментов сложнее).

 

PS. Еще я так понял, у вас отсутствует возможность учитывать полное отсутствие сигнала (отсутствие паттерна), предполагается что сигнал есть всегда? 

 
Должно быть по крайней мере 3 области пространства вариантов состояний рынка (покупка/продажа/неопределённо). Т.е. есть две области, которые четко идентифицируются, и одна, к которой принадлежат состояния неопределённые.

В идеале должно быть 4: покупка/продажа/неопределённо/неизвестный(невиданный ранее), но на практике такую схему реализовывать не целесообразно, достаточно 3-х.

 
her.human:
Не понял вопроса, что значит сам прописал? Как вы себе представляете трактовку паттернов?
Я, честно, код не разбирал. Поэтому спрашиваю простыми словами: какие паттерны записываются, что это такое, и бинарные сигналы откуда, из истории? Не понятно.
 
her.human:
Советник, конечно, написан только для тестера. Поэтому потери статистики при вынужденом перезапуске советника быть не может.

Массив static int Element[] объявлен так только из целесообразности не выделять под него память на каждом вызове функции. Т.е. статичность можно убрать.

Все описание дал здесь. Поэтому, в частности, комментарии в коде отсутствуют.

Сигнал, действительно, есть всегда (как и у вас). Но переворот происходит только по порогу. Закрытие в момент неопределенности сигнала, как у вас:

if(stat_sign<porog_clos && PositionGetDouble(POSITION_PROFIT)>0.0)
  trade.PositionClose(_Symbol); // выход из позиции
делать не стал.
 
joo:
Должно быть по крайней мере 3 области пространства вариантов состояний рынка (покупка/продажа/неопределённо). Т.е. есть две области, которые четко идентифицируются, и одна, к которой принадлежат состояния неопределённые.

В идеале должно быть 4: покупка/продажа/неопределённо/неизвестный(невиданный ранее), но на практике такую схему реализовывать не целесообразно, достаточно 3-х.

В приведенном выше коде советника примерно так и сделано. Имеется 4 состояния, которые записываются в два одномерных массива, которые можно потом интерпретировать как угодно.

1. buy=0, sell=0, -  нету никаких сигналов

2. buy=1, sell=0, -  покупка

3. buy=0, sell=1, -  продажа

4. buy=1, sell=1, - неопределенность, можно заходить как в buy так и sell, или оставаться на заборе ждать определенности (кому как нравится)  

Как интерпретировать у самого пока нет четкой определенности.  

 
alexeymosc:
Я, честно, код не разбирал. Поэтому спрашиваю простыми словами: какие паттерны записываются, что это такое, и бинарные сигналы откуда, из истории? Не понятно.

Записываются поттерны, на каждом новом баре, длинной 10 бит (можно добавить при желании). Получается 1024 различных комбинаций сигналов.

Каждый бит паттерна это один из простых (бинарных) сигналов на выбор (пока сделано 17 видов, то что первое в голову взбрело).

Например:

  • цена выше машки - 1,   цена ниже машки - 0;
  • high1>high2 -1,             high1<high2 - 0;
  • время до обеда -1,       время после обеда - 0;

и т.д.. 

Конечно из истории, а откуда еще брать, будущее неизвестно.

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 

Несколько выборочных вариантов входных параметров:

 

Плохо, конечно, хоть и 2.5 года ТС постоянно в рынке. Но не в этом суть. 

 
her.human:


  • цена выше машки - 1,   цена ниже машки - 0;
  • high1>high2 -1,             high1<high2 - 0;
  • время до обеда -1,       время после обеда - 0;

и т.д.. 


Вот это меня и интересовало. Спасибо за объяснение. Стало быть, априорно считается, что если цена выше машки, то это указание на движение вверх, и т.д.?
Причина обращения: