Скачать MetaTrader 5

-Горячие пирожки, оладьи, блины! - конечно же в переносном значении. Обсуждаем, критикуем новые индикаторы.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Джони Браво
525
Джони Браво  
Возможно, данная тема имеется на форуме сайта MQL4community, но я не заметил.

Если нет, то:
-Приветствую вас, господа изобретатели! Вы попали к критикам. -

Из названия темы можно сделать вывод, что в данной теме "идет" обсуждение НОВЫХ индикаторов.
Не стесняйтесь, уважаемые трейдеры - программисты, здесь никто не допустит критиканства!


- Эврика!!! - кричит Архимед, сделав определенный вывод. Товарищи, родилась идея о создании определенного индикатора? Описывайте и "выкладывайте" в представленную тему.


С любовью к трейдингу и уважению к трейдерам.
Ваш Джони Браво.
Джони Браво
525
Джони Браво  
//|+-----------------------------------------------------------------+
//|Название : RSAR_Korsar / Корсар                                   |
//|Создатель : Jonny Bravo / Джони Браво                             |
//|Тип : зеркальнопериодический индикатор                            |
//|Построен на основе RSI, Stohastic, RVI, ADX.                      |
//|Работает на основе экстримумов и фигур.                           |
//|+-----------------------------------------------------------------+
#property copyright "Jonny Bravo"
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 DarkGreen 
#property indicator_color2 Green
#property indicator_color3 MediumSeaGreen
#property indicator_color4 MediumSeaGreen
#property indicator_color5 Green
#property indicator_color6 DarkGreen
//|+-----------------------------------------------------------------+
//|Inputs                                                            |
//|+-----------------------------------------------------------------+
extern double _N_  = 1;
extern double _NN_ = -1;
//|+--+
extern int History = 10000;
//|+--+
extern double RSI_Type_Line_1 = 0;
extern double RSI_Period_Line_1 = 5;
extern double ADX_Type_Price_1 = 0;
extern double ADX_Period_Line_1 = 5;
extern double RVI_Period_Line_1 = 5;
extern double Stohastic_MA_Metod_1 = 0;
extern double Stochastic_Period_Line_A_1 = 10;
extern double Stochastic_Period_Line_B_1 = 6;
//|+--+
extern double RSI_Type_Line_2 = 0;
extern double RSI_Period_Line_2 = 10;
extern double ADX_Type_Price_2 = 0;
extern double ADX_Period_Line_2 = 10;
extern double RVI_Period_Line_2 = 10;
extern double Stohastic_MA_Metod_2 = 0;
extern double Stochastic_Period_Line_A_2 = 10;
extern double Stochastic_Period_Line_B_2 = 6;
//|+--+
extern double RSI_Type_Line_3 = 0;
extern double RSI_Period_Line_3 = 20;
extern double ADX_Type_Price_3 = 0;
extern double ADX_Period_Line_3 = 20;
extern double RVI_Period_Line_3 = 20;
extern double Stohastic_MA_Metod_3 = 0;
extern double Stochastic_Period_Line_A_3 = 10;
extern double Stochastic_Period_Line_B_3 = 6;
//|+--+
extern double RSI_Type_Line_4 = 0;
extern double RSI_Period_Line_4 = 5;
extern double ADX_Type_Price_4 = 0;
extern double ADX_Period_Line_4 = 5;
extern double RVI_Period_Line_4 = 5;
extern double Stohastic_MA_Metod_4 = 0;
extern double Stochastic_Period_Line_A_4 = 10;
extern double Stochastic_Period_Line_B_4 = 6;
//|+--+
extern double RSI_Type_Line_5 = 0;
extern double RSI_Period_Line_5 = 10;
extern double ADX_Type_Price_5 = 0;
extern double ADX_Period_Line_5 = 10;
extern double RVI_Period_Line_5 = 10;
extern double Stohastic_MA_Metod_5 = 0;
extern double Stochastic_Period_Line_A_5 = 10;
extern double Stochastic_Period_Line_B_5 = 6;
//|+--+
extern double RSI_Type_Line_6 = 0;
extern double RSI_Period_Line_6 = 20;
extern double ADX_Type_Price_6 = 0;
extern double ADX_Period_Line_6 = 20;
extern double RVI_Period_Line_6 = 20;
extern double Stohastic_MA_Metod_6 = 0;
extern double Stochastic_Period_Line_A_6 = 10;
extern double Stochastic_Period_Line_B_6 = 6;
//|+-----------------------------------------------------------------+
//|Declaration                                                       |
//|+-----------------------------------------------------------------+
int p;
//|+--+
double Buf_0[];  double Buf_1[];  double Buf_2[]; 
double Line_1_A; double Line_2_A; double Line_3_A;
double Line_1_B; double Line_2_B; double Line_3_B;
double Line_1_C; double Line_2_C; double Line_3_C;
double Line_1_D; double Line_2_D; double Line_3_D;
double Line_1_I; double Line_2_I; double Line_3_I;
double Line_1_F; double Line_2_F; double Line_3_F;
double Line_1_K; double Line_2_K; double Line_3_K;
double Line_1_L; double Line_2_L; double Line_3_L;
double Line_1_M; double Line_2_M; double Line_3_M;
//|+--+
double Buf_3[];  double Buf_4[];  double Buf_5[]; 
double Line_4_A; double Line_5_A; double Line_6_A;
double Line_4_B; double Line_5_B; double Line_6_B;
double Line_4_C; double Line_5_C; double Line_6_C;
double Line_4_D; double Line_5_D; double Line_6_D;
double Line_4_I; double Line_5_I; double Line_6_I;
double Line_4_F; double Line_5_F; double Line_6_F;
double Line_4_K; double Line_5_K; double Line_6_K;
double Line_4_L; double Line_5_L; double Line_6_L;
double Line_4_M; double Line_5_M; double Line_6_M;
//|+-----------------------------------------------------------------+
//|Buf inform                                                        |
//|+-----------------------------------------------------------------+
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(1,Buf_1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(2,Buf_2);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(5,Buf_3);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(4,Buf_4);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
SetIndexBuffer(3,Buf_5);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
//|+--+
return;
}
//|+-----------------------------------------------------------------+
//|Start                                                             |
//|+-----------------------------------------------------------------+
int start()
  {
  //|+---------------------------------------------------------------+
  //|Level_1                                                         |
  //|+---------------------------------------------------------------+
  for(
  p=0;
  p<History;
  p++)
    {
    //|+-------------------------------------------------------------+
    //|Level_2                                                       |
    //|+-------------------------------------------------------------+
    Line_1_A = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_M = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_L = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,0,p);
    Line_1_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_1,Stochastic_Period_Line_B_1,Stochastic_Period_Line_B_1,Stohastic_MA_Metod_1,0,1,p);
    Line_1_C = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,0,p);
    Line_1_D = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,1,p);
    Line_1_I = iADX(Symbol(),0,ADX_Period_Line_1,ADX_Type_Price_1,2,p);
    Line_1_F = iRVI(Symbol(),0,RVI_Period_Line_1,ADX_Type_Price_1,p);
    //|+--+
    Line_2_A = iRSI(Symbol(),0,RSI_Period_Line_2,RSI_Type_Line_2,p);
    Line_2_M = iRSI(Symbol(),0,RSI_Period_Line_2,RSI_Type_Line_2,p);
    Line_2_L = iRSI(Symbol(),0,RSI_Period_Line_2,RSI_Type_Line_2,p);
    Line_2_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,0,p);
    Line_2_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_2,Stochastic_Period_Line_B_2,Stochastic_Period_Line_B_2,Stohastic_MA_Metod_2,0,1,p);
    Line_2_C = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,0,p);
    Line_2_D = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,1,p);
    Line_2_I = iADX(Symbol(),0,ADX_Period_Line_2,ADX_Type_Price_2,2,p);
    Line_2_F = iRVI(Symbol(),0,RVI_Period_Line_2,ADX_Type_Price_2,p);
    //|+--+
    Line_3_A = iRSI(Symbol(),0,RSI_Period_Line_3,RSI_Type_Line_3,p);
    Line_3_M = iRSI(Symbol(),0,RSI_Period_Line_3,RSI_Type_Line_3,p);
    Line_3_L = iRSI(Symbol(),0,RSI_Period_Line_3,RSI_Type_Line_3,p);
    Line_3_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,0,p);
    Line_3_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_3,Stochastic_Period_Line_B_3,Stochastic_Period_Line_B_3,Stohastic_MA_Metod_3,0,1,p);
    Line_3_C = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,0,p);
    Line_3_D = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,1,p);
    Line_3_I = iADX(Symbol(),0,ADX_Period_Line_3,ADX_Type_Price_3,2,p);
    Line_3_F = iRVI(Symbol(),0,RVI_Period_Line_3,ADX_Type_Price_3,p);
    //|+--+
    Line_4_A = iRSI(Symbol(),0,RSI_Period_Line_4,RSI_Type_Line_4,p);
    Line_4_M = iRSI(Symbol(),0,RSI_Period_Line_4,RSI_Type_Line_4,p);
    Line_4_L = iRSI(Symbol(),0,RSI_Period_Line_4,RSI_Type_Line_4,p);
    Line_4_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_4,Stochastic_Period_Line_B_4,Stochastic_Period_Line_B_4,Stohastic_MA_Metod_4,0,0,p);
    Line_4_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_4,Stochastic_Period_Line_B_4,Stochastic_Period_Line_B_4,Stohastic_MA_Metod_4,0,1,p);
    Line_4_C = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,0,p);
    Line_4_D = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,1,p);
    Line_4_I = iADX(Symbol(),0,ADX_Period_Line_4,ADX_Type_Price_4,2,p);
    Line_4_F = iRVI(Symbol(),0,RVI_Period_Line_4,ADX_Type_Price_4,p);
    //|+--+
    Line_5_A = iRSI(Symbol(),0,RSI_Period_Line_5,RSI_Type_Line_5,p);
    Line_5_M = iRSI(Symbol(),0,RSI_Period_Line_5,RSI_Type_Line_5,p);
    Line_5_L = iRSI(Symbol(),0,RSI_Period_Line_5,RSI_Type_Line_5,p);
    Line_5_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_5,Stochastic_Period_Line_B_5,Stochastic_Period_Line_B_5,Stohastic_MA_Metod_5,0,0,p);
    Line_5_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_5,Stochastic_Period_Line_B_5,Stochastic_Period_Line_B_5,Stohastic_MA_Metod_5,0,1,p);
    Line_5_C = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,0,p);
    Line_5_D = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,1,p);
    Line_5_I = iADX(Symbol(),0,ADX_Period_Line_5,ADX_Type_Price_5,2,p);
    Line_5_F = iRVI(Symbol(),0,RVI_Period_Line_5,ADX_Type_Price_5,p);
    //|+--+
    Line_6_A = iRSI(Symbol(),0,RSI_Period_Line_6,RSI_Type_Line_6,p);
    Line_6_M = iRSI(Symbol(),0,RSI_Period_Line_6,RSI_Type_Line_6,p);
    Line_6_L = iRSI(Symbol(),0,RSI_Period_Line_6,RSI_Type_Line_6,p);
    Line_6_B = iStochastic(Symbol(),0,Stochastic_Period_Line_A_6,Stochastic_Period_Line_B_6,Stochastic_Period_Line_B_6,Stohastic_MA_Metod_6,0,0,p);
    Line_6_K = iStochastic(Symbol(),0,Stochastic_Period_Line_A_6,Stochastic_Period_Line_B_6,Stochastic_Period_Line_B_6,Stohastic_MA_Metod_6,0,1,p);
    Line_6_C = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,0,p);
    Line_6_D = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,1,p);
    Line_6_I = iADX(Symbol(),0,ADX_Period_Line_6,ADX_Type_Price_6,2,p);
    Line_6_F = iRVI(Symbol(),0,RVI_Period_Line_6,ADX_Type_Price_6,p);
      //|+-----------------------------------------------------------+
      //|Level_3                                                     |
      //|+-----------------------------------------------------------+
      Buf_0[p] = _N_ * (((Line_1_B + Line_1_F) / Line_1_K) - ((Line_1_D + Line_1_I) / Line_1_C) + ((Line_1_A + Line_1_M) / Line_1_L));
      //|+--+
      Buf_1[p] = _N_ * (((Line_2_B + Line_2_F) / Line_2_K) - ((Line_2_D + Line_2_I) / Line_2_C) + ((Line_2_A + Line_2_M) / Line_2_L));
      //|+--+
      Buf_2[p] = _N_ * (((Line_3_B + Line_3_F) / Line_3_K) - ((Line_3_D + Line_3_I) / Line_3_C) + ((Line_3_A + Line_3_M) / Line_3_L));
      //|+--+
      Buf_3[p] = _NN_ * (((Line_4_B + Line_4_F) / Line_4_K) - ((Line_4_D + Line_4_I) / Line_4_C) + ((Line_4_A + Line_4_M) / Line_4_L));
      //|+--+
      Buf_4[p] = _NN_ * (((Line_5_B + Line_5_F) / Line_5_K) - ((Line_5_D + Line_5_I) / Line_5_C) + ((Line_5_A + Line_5_M) / Line_5_L));
      //|+--+
      Buf_5[p] = _NN_ * (((Line_6_B + Line_6_F) / Line_6_K) - ((Line_6_D + Line_6_I) / Line_6_C) + ((Line_6_A + Line_6_M) / Line_6_L));
        //|+---------------------------------------------------------+
        //|Level_4                                                   |
        //|+---------------------------------------------------------+
        }
        return;
        }
//|+-----------------------------------------------------------------+
//|The_end                                                           |
//|+-----------------------------------------------------------------+

Для начала, объясню зачем нужна такая "горькая" комбинация технических индикаторов и какой смысл в формуле:

N* (((B+ F) / K) - ((D + I) / C) + ((A + M / L)), где


N - число, равное только (-1) и только (1), устанавливает зеркальность трех основных линий.

B - число, определяемое индикатором Stochastic, служит фильтратом для периода (1).

F - число, определяемое индикатором RVI, служит идентификатором для периода (1) и в последствии синтеза периодов (1), (2), (3), для всех периодов.

K - число, определяемое индикатором Stochastic, служит фильтратом для уже определенного периода (1).

D - число, определяемое индикатором ADX, а именно его составляющей линией (+D), служит генератором положительного направления цены для дальнейшего создания периода (2).

I - число, определяемое индикатором ADX, а именно его составляющей линией (-D), служит генератором отрицательного направления цены для дальнейшего создания периода (2).

С - число, определяемое индикатором ADX, а именно его составляющей линией (Main), служит фильтратом генераторов направления цены, создает период (2).

A - число, определяемое индикатором RSI, служит генератором для периода(3).

M - число, определяемое индикатором RSI, служит генератором для периода(3).

L - число, определяемое индикатором RSI, служит фильтратом для периода(3).



Период 1 - период ценовых движений.

Период 2 - период движений ПО (отрицательное, положительное).

Период 3 - период движения ОС (относительной силы).




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

Складываем точное направление движения с его относительной силой и получаем относительную силу точного направления движения. ((1-2)+3).

Зеркальное отображение линий получается благодаря значению числа N.

Данная визуализация позволяет легче распознавать циклы изменения периодов(1, 2, 3), т.е. относительной силы точного направления движения цены.


А условия распознавания этих циклов я не опишу.
Dersu
750
Dersu  

Торреадор! Сме-е-елее в бой!

Маоденький - маоденький.

Сколько Вам лет, уважаемый (если не секрет)?

Джони Браво
525
Джони Браво  

15.

Совсем не секрет. )
Джони Браво
525
Джони Браво  
+---------------------------------------------------------------------------------------------------------+
Идея!!! Меня снова "посетила Муза".
Копирую из кода........
//+---------------------------------------------------------------------+
//|Название : IMB_Imbir / Имбирь                                        |
//|Создатель : Jonny Bravo / Джони Браво                                |
//|Тип : кластерный индикатор                                           |
//|Кластер состоит из трех основных частей                              |
//|Тип первой части : зеркальнопериодическая относительная сила движения|
//|Тип второй части : цикличновременная действенность                   |
//|Тип третей части : разносильная действенность тренда                 |
//+---------------------------------------------------------------------+
Сам код и описания - позже.
+---------------------------------------------------------------------------------------------------------+
Dersu
750
Dersu  
Link_x:

15.

Совсем не секрет. )

Шутите.
Джони Браво
525
Джони Браво  
Честно - я не шучу. Моему организму по истине 15 лет, если вести отсчет от дня извлечения его из матки моего родителя.
Sergey Dzyublik
5196
Sergey Dzyublik  

что за бред ???

((Line_1_A + Line_1_M) / Line_1_L))

где

    Line_1_A = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_M = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_L = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
Dersu
750
Dersu  
Link_x:
Честно - я не шучу. Моему организму по истине 15 лет, если вести отсчет от дня извлечения его из матки моего родителя.
Влияние Вашей Музы имеет побочные эффекты.
Sergey Dzyublik
5196
Sergey Dzyublik  

что за бред ???

extern int History = 10000;

int start(){
   for( p=0; p<History; p++) { 
// ----------------------------------
// ----------------------------------
   };
   return;
};
 
Джони Браво
525
Джони Браво  
ALXIMIKS:

что за бред ???

extern int History = 10000;

int start(){
   for( p=0; p<History; p++) { 
// ----------------------------------
// ----------------------------------
   };
   return;
};
 


Вы удалите эту часть кода и тогда получите индикатор без визуализации вычислений. Этот бред задает момент, когда индикатору потребуется провести вычисления над не подсчитанными барами.


    Line_1_A = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_M = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);
    Line_1_L = iRSI(Symbol(),0,RSI_Period_Line_1,RSI_Type_Line_1,p);


Спасибо, подметили. )
У переменной (A) RSI имеет период 5,
у переменной (М) RSI имеет период 20,
у переменной (L) RSI имеет период 10.

Премного вам благодарен!!!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий