Скачать MetaTrader 5

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

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

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

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


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


С любовью к трейдингу и уважению к трейдерам.
Ваш Джони Браво.
Джони Браво
525
Джони Браво 2013.12.21 13:56  
//|+-----------------------------------------------------------------+
//|Название : 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 2013.12.21 14:00  

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

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

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

Джони Браво
525
Джони Браво 2013.12.21 14:08  

15.

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

15.

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

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

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

((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 2013.12.21 14:22  
Link_x:
Честно - я не шучу. Моему организму по истине 15 лет, если вести отсчет от дня извлечения его из матки моего родителя.
Влияние Вашей Музы имеет побочные эффекты.
Sergey Dzyublik
4817
Sergey Dzyublik 2013.12.21 14:23  

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

extern int History = 10000;

int start(){
   for( p=0; p<History; p++) { 
// ----------------------------------
// ----------------------------------
   };
   return;
};
 
Джони Браво
525
Джони Браво 2013.12.21 15:07  
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.

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