Miscellaneous
0
Views
0
Downloads
0
Favorites
Ticker_v1
//+------------------------------------------------------------------+
// Ticker.mq4 |
//+------------------------------------------------------------------+
#property strict
//---- оÑÑиÑовка индикаÑоÑа в оÑделÑном окне
#property indicator_separate_window
//---- колиÑеÑÑво индикаÑоÑнÑÑ
бÑÑеÑов
#property indicator_buffers 1
//---- ÑÐ²ÐµÑ Ð¸Ð½Ð´Ð¸ÐºÐ°ÑоÑнÑÑ
линий
#property indicator_color1 Blue
//---- buffers
double ExtMapBuffer1[];
// ---- ÐолÑзоваÑелÑÑкие пеÑеменнÑе --------
extern int MaxDeep=2000;//глÑбина оÑÑиÑовки индикаÑоÑа
// --- ÐÑпомогаÑелÑнÑе пеÑеменнÑе ----------
int TickCounter=0;//ÑÑÑÑÑик Ñиков
int myBars=0;
int counted_bars=0;//колиÑеÑÑво Ñже поÑÑиÑаннÑÑ
баÑов
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init(){
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);//наÑинаем Ñ Ð¿ÑÑÑого знаÑениÑ
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit(){
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start(){
/*
Ðа новом баÑе индикаÑоÑÑй бÑÑÑÐµÑ ÑдвигаеÑÑÑ Ñам, но поÑколÑÐºÑ Ð¼Ñ Ð´ÐµÐ»Ð°ÐµÐ¼ ÑиковÑй нидикаÑоÑ, Ñо
нам пÑидÑÑÑÑ Ð²ÑÑÑнÑÑ ÑдвигаÑÑ Ð±ÑÑÑÐµÑ Ð½Ð° каждом новом Ñике за иÑклÑÑением пеÑвого Ñика нового
баÑа
*/
if(isNewBar()==true){//двигаÑÑ Ð½Ðµ надо, ÑеÑминал ÑдвинÑл Ñам
TickCounter++;//на каждом Ñике ÑвелиÑиваем ÑÑÑÑÑик Ñиков
ExtMapBuffer1[0]=Ask;
}
else{//инаÑе Ð±Ð°Ñ ÑÑаÑÑй и Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑдвинÑÑÑ Ð¼Ð°ÑÑÐ¸Ð²Ñ Ð²ÑÑÑнÑÑ
TickCounter++;//на каждом Ñике ÑвелиÑиваем ÑÑÑÑÑик Ñиков
ShiftArray();//Ñдвигаем знаÑÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива на 1
ExtMapBuffer1[0]=Ask;
}
return(0);
}
//+------------------------------------------------------------------+
//-------- ÐолÑзоваÑелÑÑкие подпÑогÑÐ°Ð¼Ð¼Ñ -----------------------------
//+------------------------------------------------------------------+
/*
ÐндикаÑоÑÑ, вÑÑÑоеннÑе в ÑеÑминал ÑдивигаÑÑ Ð±ÑÑеÑнÑй маÑÑив Ñами. Ðам же пÑидÑÑÑÑ Ð½Ð°Ð¿Ð¸ÑаÑÑ Ð´Ð»Ñ ÑÑого оÑделÑнÑÑ ÑÑнкÑиÑ.
ÐоÑÑÐ¾Ð¼Ñ Ð½Ð¸Ð¶ÐµÑледÑÑÑÐ°Ñ ÑÑнкÑÐ¸Ñ ShiftArray() именно ÑÑо и Ð´ÐµÐ»Ð°ÐµÑ - ÑÐ´Ð²Ð¸Ð³Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива на 1 пÑи поÑÑÑплении нового Ñика.
*/
// ---------------------- ShiftArray() -----------------------
// ФÑнкÑÐ¸Ñ ÑÐ´Ð²Ð¸Ð³Ð°ÐµÑ Ð¼Ð°ÑÑив
//--------------------------
void ShiftArray(){
if(TickCounter>2*MaxDeep){//еÑли ÑиÑло Ñиков пÑевÑÑило допÑÑк в 2 Ñаза, Ñо обÑезаем лиÑние Ñики
for(int i=TickCounter;i>=MaxDeep;i--){
ExtMapBuffer1[i]=0.0;
}
TickCounter=MaxDeep;
}
int ArrSize=ArraySize(ExtMapBuffer1);
for(int i=ArrSize-1;i>0;i--){//ÐнаÑе пÑоизводим Ñдвиг
ExtMapBuffer1[i]=ExtMapBuffer1[i-1];
}
}
/*
Ðам пÑиÑлоÑÑ Ð²Ð²ÐµÑÑи новÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑÑ Ð¿ÐµÑеменнÑÑ TickCounter,
ÑÑÐ¾Ð±Ñ Ð·Ð½Ð°ÑÑ Ð½Ð° какÑÑ Ð³Ð»ÑÐ±Ð¸Ð½Ñ ÑдвигаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑива.
Ðо Ð¼Ñ Ð·Ð°Ð±Ñли, ÑÑо пÑи поÑвлении нового баÑа индикаÑоÑнÑй маÑÑив ÑдвигаеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки.
Ðобавим обÑабоÑÐºÑ ÑобÑÑÐ¸Ñ Â«ÐовÑй баÑ»:
*/
//+------------------------------------------------------------------+
//| ÑÑнкÑÐ¸Ñ isNewBar() - возвÑаÑÐ°ÐµÑ Ð¿Ñизнак нового баÑа |
//+------------------------------------------------------------------+
bool isNewBar(){
bool res=false;
if(myBars!=Bars){
res=true;
myBars=Bars;
}
return(res);
}
//------------------------------------------------------------
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---