Author: ��� ����� �. aka KimIV
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
i-Bul_Jerk
//+----------------------------------------------------------------------------+
//|                                                            i-Bul_Jerk.mq4  |
//|                                                                            |
//|  29.06.2013  Èíäèêàòîð òîðãîâûõ ñèãíàëîâ.                                  |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_color2 Salmon
#property indicator_width1 1
#property indicator_width2 1

//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -----------------------------------------
extern int NumberOfBars  = 1000;  // Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå)
extern int NumbOfBars    = 3;     // Êîëè÷åñòâî ñèãíàëüíûõ áàðîâ
extern int PriceDistance = 50;    // Ðàññòîÿíèå â ïóíêòàõ

//------- Ãëîáàëüíûå ïåðåìåííûå ------------------------------------------------

//------- Áóôåðû èíäèêàòîðà ----------------------------------------------------
double dBuf0[],dBuf1[];
//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé -------------------------------------------

//+----------------------------------------------------------------------------+
//|                                                                            |
//|  ÏÐÅÄÎÏÐÅÄÅ˨ÍÍÛÅ ÔÓÍÊÖÈÈ                                                  |
//|                                                                            |
//+----------------------------------------------------------------------------+
//|  Custom indicator initialization function                                  |
//+----------------------------------------------------------------------------+
void init() 
  {
   SetIndexArrow(0,233);
   SetIndexBuffer(0,dBuf0);
   SetIndexEmptyValue(0,EMPTY_VALUE);
   SetIndexStyle(0,DRAW_ARROW);

   SetIndexArrow(1,234);
   SetIndexBuffer(1,dBuf1);
   SetIndexEmptyValue(1,EMPTY_VALUE);
   SetIndexStyle(1,DRAW_ARROW);

   Comment("");
  }

//+----------------------------------------------------------------------------+
//|  Custom indicator deinitialization function                                |
//+----------------------------------------------------------------------------+
void deinit() { Comment(""); }
//+----------------------------------------------------------------------------+
//|  Custom indicator iteration function                                       |
//+----------------------------------------------------------------------------+
void start() 
  {
   int bs,LoopBegin,sh;
   int ArrowInterval=(WindowPriceMax()-WindowPriceMin())/100*5/Point;

   if(NumberOfBars==0) LoopBegin=Bars-50;
   else LoopBegin=NumberOfBars;
   LoopBegin=MathMin(Bars-50,LoopBegin);

   for(sh=LoopBegin; sh>=0; sh--) 
     {
      bs=GetSignal(sh);
      if(bs>0) dBuf0[sh]=Low [sh]-ArrowInterval*Point;
      if(bs<0) dBuf1[sh]=High[sh]+ArrowInterval*Point;
     }
  }
//+----------------------------------------------------------------------------+
//|                                                                            |
//|  ÏÎËÜÇÎÂÀÒÅËÜÑÊÈÅ ÔÓÍÊÖÈÈ                                                  |
//|                                                                            |
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Àëåêñàíäð Áàãðÿíîâ, al22bag@live.com.au                        |
//|           : http://ruforum.mt5.com/members/11292-al22bag                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 29.06.2013                                                     |
//|  Îïèñàíèå : Ôîðìèðóåò è âîçâðàùàåò òîðãîâûé ñèãíàë.                        |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    nb - íîìåð áàðà                 (0 - òåêóùèé áàð)                       |
//+----------------------------------------------------------------------------+
//|  Âîçâðàùàåìîå çíà÷åíèå:                                                    |
//|     1 - ïîêóïàé                                                            |
//|     0 - ñèäè, êóðè áàìáóê                                                  |
//|    -1 - ïðîäàâàé                                                           |
//+----------------------------------------------------------------------------+
int GetSignal(int nb=0) 
  {
   int bs=0;
   double hi=NormalizeDouble(High[iHighest(NULL,0,MODE_HIGH,NumbOfBars,nb+1)], Digits);
   double lo=NormalizeDouble(Low [iLowest (NULL,0,MODE_LOW ,NumbOfBars,nb+1)], Digits);

   if(NormalizeDouble((Close[nb]-lo)/Point, 0)>=PriceDistance) bs=-1;
   if(NormalizeDouble((hi-Close[nb])/Point, 0)>=PriceDistance) bs=1;

   return(bs);
  }
//+----------------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---