Кодирование свечек

 

Обдумываю варианты кодирования :



Если вторая свеча будет белая, то ее код все равно будет 408 . А надо чтобы был другой . Как это сделать ?

 

В Вашей системе кодирования отсутствует информация о типе ценового уровня свечи. Этих типов четыре: Open, High, Low и Close. Их тоже надо закодировать, например 0, 1, 2, 3 или 0, 1, 2, 4 и вплести в общий код свечи.

 
Согласен, в этом случае неоднозначности нет. Спасибо .
 

Нашел !

Достаточно сравнить Open и Close .


//+------------------------------------------------------------------+
//|                                                   CANDLECODE.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
   Comment(
    COD(1) ,"  " ,  
    COD(2) ,"  " , 
    COD(3)
   );
 return(0);
 }

//+------------------------------------------------------------------+

int WW(int L1 , int S , double O1  , double C1)
{
int  k=1  ; int W0 = 0 ;

if (O1 > C1)k=+1 ;
if (O1 < C1)k=-1 ;

if (0  < L1 && L1 <= 10  ){W0 = 1    ;return(W0*k ) ;}
if (10 < L1 && L1 <= 20  ){W0 = 2    ;return(W0*k ) ;}
if (20 < L1 && L1 <= 30  ){W0 = 4    ;return(W0*k ) ;}
if (30 < L1 && L1 <= 40  ){W0 = 8    ;return(W0*k ) ;}
if (40 < L1 && L1 <= 50  ){W0 = 16   ;return(W0*k ) ;}
if (50 < L1 && L1 <= 60  ){W0 = 32   ;return(W0*k ) ;}
if (60 < L1 && L1 <= 70  ){W0 = 64   ;return(W0*k ) ;}
if (70 < L1 && L1 <= 80  ){W0 = 128  ;return(W0*k ) ;}
if (80 < L1 && L1 <= 90  ){W0 = 256  ;return(W0*k ) ;}
if (90 < L1 && L1 <= 100 ){W0 = 512  ;return(W0*k ) ;}

}
//+------------------------------------------------------------------+
int COD(int ind )
//+------------------------------------------------------------------+
{ double P[11] ;
   
P[0] = Close[1] ;   P[1]  = Close[2] ;   P[2]  = Close[3] ;
P[3] = Open[1]  ;   P[4]  = Open[2]  ;   P[5]  = Open[3]  ;
P[6] = High[1]  ;   P[7]  = High[2]  ;   P[8]  = High[3]  ;
P[9] = Low[1]   ;   P[10] = Low[2]   ;   P[11] = Low[3]   ;
   
double max = P[ ArrayMaximum(P) ];
double min = P[ ArrayMinimum(P) ];
double D   =  max - min ; 
double S   = (max - min)/10 ; 

int L1 = 100*(max - Low[ind]   )/D ;
int O1 = 100*(max - Open[ind]  )/D ;
int C1 = 100*(max - Close[ind] )/D ;
int H1 = 100*(max - High[ind]  )/D ;

int WL1 = WW(L1 ,  S, O1  , C1 ) ;
int WO1 = WW(O1 ,  S, O1  , C1 ) ;
int WC1 = WW(C1 ,  S, O1  , C1 ) ;
int WH1 = WW(H1 ,  S, O1  , C1 ) ;

int CC = WL1+WO1+WC1+WH1 ;

ObjectCreate ("CANDLECODE"+Time[ind ], OBJ_TEXT,0,Time[ind ],Open[ind ]);
ObjectSetText("CANDLECODE"+Time[ind ], DoubleToStr(CC,0), 10, "Times New Roman", Green);

return(CC) ; 
}
 

А зачем вам это надо?

По моему свечки рисовали японци когда еще небыло даже калькуляторов не говоря о компутерах.

 
Serj_Che писал (а) >>

А зачем вам это надо?

По моему свечки рисовали японци когда еще небыло даже калькуляторов не говоря о компутерах.

Да вот есть предположение, что после того как на графике отрисуется пара свечек с кодами -576 и -1028, то есть смысл сделать BUY :) .

Это к примеру .

И, похоже, есть еще несколько удачных комбинаций, после которых можно попытаться что-то заработать .


А кодирование сделано для того, что бы "работать" не глазами, а скриптом или советником .

Чтобы советник сам "смотрел", различал и запоминал.

Тогда на достаточном временном интервале можно провести исследование на эту тему, а заодно проверить и японцев, поскольку при таком кодировании

японские свечи - это частный случай, вдобавок полностью формализованный .

Вобщем хочу проверить ....

 
sprite писал(а) >>

Нашел !

Не шибко ли избыточное кодирование получается? При таком колве вариантов не затруднительно ли будет их дальнейшее использование, как-то поиск паттернов, анализ и т.д.? Хотя может у Вас совсем другие планы...Чем Вас не устроил метод Лиховидова (http://www.forextimes.ru/article/a14727.htm)? Кстати не встречали его реализацию для МТ? Где-то видел, но давно, а у самого руки никак не доходят:)

З.Ы. Снова кстати), варианты кодирования групп свечей пока не рассматривали?

 
Figar0 писал (а) >>
Не шибко ли избыточное кодирование получается? При таком колве вариантов не затруднительно ли будет их дальнейшее использование, как-то поиск паттернов, анализ и т.д.? Хотя может у Вас совсем другие планы...Чем Вас не устроил метод Лиховидова (http://www.forextimes.ru/article/a14727.htm)? Кстати не встречали его реализацию для МТ? Что-то у самого руки никак не доходят:)

Готов согласится :)

Вместо 10 разрядов сделать 8 или 6 .

 
Figar0 писал (а) >>
Чем Вас не устроил метод Лиховидова (http://www.forextimes.ru/article/a14727.htm)? Кстати не встречали его реализацию для МТ? Где-то видел, но давно, а у самого руки никак не доходят:)

Устраивает, но я увидел, что есть еще вариант . И хочу с ним поработать .

Мне тоже попадалась реализация Лиовидова, при случае дам ссылку .

 
Первые тесты показали, что 10 разрядное кодирование избыточно точное, что мешает искать похожие паттерны . Они есть, но их мало .
 

Очень интересная идея! Попробую использовать как нейрон.

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