Morse code - страница 8

 
User_mt5:

С этим можно согласиться. Как раз в этих терминах - "возможно" и "в последствии".

Ещё до этого нужно определить этот самый "каждый паттерн". И он не профитный. Метод не имеет отношения к профиту и торговле вообще. Речь идёт о повторяющихся похожих фрагментах. Т.е. закономерном направлении в правой части при схожести их левых частей. Длина, форма, амплитуда, цикличность, другие параметры - всё это предмет исследований.

Да. И если делать всё то же самое на основе свечей, то и будет то же самое, но слабее и корявее. И паттернов меньше, - просто по определению свечи.

Вот только азбуку мне поздно рассказывать, выкурил
Паттерн — Википедия
Паттерн — Википедия
  • ru.wikipedia.org
Па́ттерн (англ.   — образец, шаблон; форма, модель; схема, диаграмма) — схема-образ, действующая как посредствующее представление, или чувственное понятие, благодаря которому в режиме одновременности восприятия и мышления выявляются закономерности, как они существуют в природе и обществе. Паттерн понимается в этом плане как повторяющийся...
 
Rafael Sahibgareev: По поводу идей , я бы посмотрел на свечи сформированные дельтой проторгованного объема , у Карпутова и Сайбера на эту тему были хорошие индикаторы...
можно ссылку или чуть детальней, что такое дельта проторгованного обьема?
 

https://www.mql5.com/ru/code/17427

https://www.mql5.com/ru/code/17426

https://www.mql5.com/ru/forum/96537/2852515#comment_2852515

Каждая свеча формируется количеством сделок на покупку и продажу,

т.е. buy-sell = delta ; if delta[1]>0 delta[1]=1

       else if delta[1]<0 delta[1]=0

 не корректно , но думаю понятно....


Session Buy Sell Orders Volume
Session Buy Sell Orders Volume
  • голосов: 11
  • 2017.01.19
  • Vladimir Karputov
  • www.mql5.com
В виде гистограммы максимальное и минимальное значения параметров SYMBOL_SESSION_BUY_ORDERS_VOLUME - "Общий объём ордеров на покупку в текущий момент" и SYMBOL_SESSION_SELL_ORDERS_VOLUME - "Общий объём ордеров на продажу в текущий момент".
 
Rafael Sahibgareev:

https://www.mql5.com/ru/code/17427

https://www.mql5.com/ru/code/17426

https://www.mql5.com/ru/forum/96537/2852515#comment_2852515

Каждая свеча формируется количеством сделок на покупку и продажу,

т.е. buy-sell = delta ; if delta[1]>0 delta[1]=1

       else if delta[1]<0 delta[1]=0

 не корректно , но думаю понятно....


У Сайбера тики - для пипсовки, у Карпутова - последнее значение на текущем баре, по их индикаторам нельзя напрямую получить историю, например, для последних 24 часов, поэтому сделал по минуткам, на часово баре берем все минуты, минута вверх - Бай обьем, минута вниз - Селл обьем, так для всех баров в каждой комбе, не сказал бы, что сильно результативно, но пусть будет такой вариант

/*
        int getChain(int &codes[], const int order)
        {
            ArraySetAsSeries(codes, true);

            for (int k = 0; k < order; k++) 
            {
                if (codes[k] == 0)
                {
                    codes[k] = 1;
                    return 1;
                }
                else
                {
                    codes[k] = 0;
                }
            }
        
            return 0;
        }

        int getPairs(SSets& series[], const string names, const bool validate = true)
        {
            string syms[];
            int index = 0, count = StringSplit(names, ',', syms);
        
            for (int k = 0; k < count; k++)
            {
                string inverse = StringSubstr(syms[k], 3, 3) + StringSubstr(syms[k], 0, 3) + StringSubstr(syms[k], 6);
                bool A = SymbolSelect(syms[k], true) && SymbolInfoInteger(syms[k], SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL;
                bool B = SymbolSelect(inverse, true) && SymbolInfoInteger(inverse, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL;
        
                if (A || validate == false)
                {
                    ArrayResize(series, index + 1); 
                    series[index].mSymbol.mName = syms[k];
                    series[index].mSymbol.mOrder = 0;
                    index++;
                }
                else if (B || validate == false)
                {
                    ArrayResize(series, index + 1); 
                    series[index].mSymbol.mName = inverse;
                    series[index].mSymbol.mOrder = 1;
                    index++;
                }
            }
            
            return index;
        }

        int getSourceSets(SSets& series[], const ENUM_TIMEFRAMES period, const int order, const int depth, const int position)
        {
            int bars = MathMin(getSetsBars(series, period, order, depth), depth);
        
            for (int k = 0; k < order; k++)
            {
                MqlRates rates[];
                int count = CopyRates(series[k].mSymbol.mName, period, position, bars, rates);

                if (count < 1)
                {
                    Print(
                        "Synchronization : " + series[k].mSymbol.mName + ", " + 
                        "Position : " + IntegerToString(position) + ", " + 
                        "Depth : " + IntegerToString(depth) + ", " + 
                        "Bars : " + IntegerToString(bars));
        
                    return 0;
                }

                int index = count - 1;

                setupSet(series[k], count);

                for (int n = count - 1; n > -1; n--)
                {
                    series[k].mLow[index] = rates[n].low;
                    series[k].mHigh[index] = rates[n].high;
                    series[k].mOpen[index] = rates[n].open;
                    series[k].mClose[index] = rates[n].close;
                    series[k].mPoint[index] = rates[n].close;
                    series[k].mSpread[index] = rates[n].spread;
                    series[k].mVolume[index] = rates[n].real_volume ? rates[n].real_volume : rates[n].tick_volume;
                    series[k].mTime[index] = rates[n].time;

                    index--;
                }
            }

            return bars;
        }
*/

В закоменченной части куски кода, которые не выкладывалл в прошлый раз, в этот раз те, кто захотят могут собрать это в кучу и смотреть статистику на чарте, надо только поубирать iSets и iHelpers и заменить на то, что в комментарии

Файлы:
 

Спасибо за индикатор чуть позже обязательно соберу ,

т.е. я так понял место все одно не рыбное...

 
А что, если разделить статистику на две части - для свеч над МА и под МА? Может надо учитывать не только свечи сами по себе, но и общую динамику?
 
-Aleks-:
А что, если разделить статистику на две части - для свеч над МА и под МА? Может надо учитывать не только свечи сами по себе, но и общую динамику?

А вот такое можно даже в виде индикатора (в виде гистограммы) сделать.

 
Vladimir Karputov:

А вот такое можно даже в виде индикатора (в виде гистограммы) сделать.

 

Сделать то можно, но индикатор не позволит же собрать статистику...
 
-Aleks-:

 

Сделать то можно, но индикатор не позволит же собрать статистику...

Уточните, пожалуйста, что за статистика?

 
Vladimir Karputov:

Уточните, пожалуйста, что за статистика?

 

Статистика о движении цены после формирования свечного паттерна.

Причина обращения: