Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
MA_Signal
//+------------------------------------------------------------------+
//| MA Signal.mq4 |
//| Copyright 2016, cmillion@narod.ru |
//| http://cmillion.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, cmillion@narod.ru"
#property link "http://cmillion.ru"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 clrBlue
#property indicator_color2 clrAqua
#property indicator_color3 clrGreen
#property indicator_color4 clrBlue
#property indicator_color5 clrRed
#property description "ñòðåëêà ïðè ïåðåñå÷åíèè 2õ ñðåäíèõ, ïðè óñëîâèè ÷òî 3ÿ ñðåäíÿÿ ðàñòåò/ïàäàåò è íàõîäèòñÿ íàä/ïîä ïåðåñåêàþùèìèñÿ ñðåäíèìè."
#property description "ëîíã: 5 ÌÀ ïåðåñåêàåò ñíèçó 20 ÌÀ, à 50 ÌÀ â ïåðèîä ñ ò-1 íà ò âûðîñëà â âåëè÷èíå.  òîæå âðåìÿ 5 ÌÀ è 20 ÌÀ íàõîäÿòñÿ âûøå 50 ÌÀ (ïîêàçàòåëü òðåíäà). "
//+------------------------------------------------------------------+
extern int MA_1 = 5; //ïìðèîä 1 ÌÀ
extern int shift_1 = 0; //Ñäâèã 1 ÌÀ îòíîñèòåëüíî öåíîâîãî ãðàôèêà.
input ENUM_MA_METHOD method_1 = MODE_SMMA; //Ìåòîäû ñêîëüçÿùèõ 1 ÌÀ
input ENUM_APPLIED_PRICE applied_price_1 = PRICE_OPEN; //Èñïîëüçóåìàÿ öåíà 1 ÌÀ.
extern int MA_2 = 20;
extern int shift_2 = 0; //Ñäâèã 2 ÌÀ îòíîñèòåëüíî öåíîâîãî ãðàôèêà.
input ENUM_MA_METHOD method_2 = MODE_SMMA; //Ìåòîäû ñêîëüçÿùèõ 2 ÌÀ
input ENUM_APPLIED_PRICE applied_price_2 = PRICE_OPEN; //Èñïîëüçóåìàÿ öåíà 2 ÌÀ.
extern int MA_3 = 50;
extern int shift_3 = 0; //Ñäâèã 3 ÌÀ îòíîñèòåëüíî öåíîâîãî ãðàôèêà.
input ENUM_MA_METHOD method_3 = MODE_SMMA; //Ìåòîäû ñêîëüçÿùèõ 3 ÌÀ
input ENUM_APPLIED_PRICE applied_price_3 = PRICE_OPEN; //Èñïîëüçóåìàÿ öåíà 3 ÌÀ.
double MA1[];
double MA2[];
double MA3[];
double SignalBufferRed[];
double SignalBufferBlue[];
//+------------------------------------------------------------------+
int OnInit()
{
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_ARROW,0,2);
SetIndexArrow(3,233);
SetIndexStyle(4,DRAW_ARROW,0,2);
SetIndexArrow(4,234);
SetIndexBuffer(0,MA1);
SetIndexBuffer(1,MA2);
SetIndexBuffer(2,MA3);
SetIndexBuffer(3,SignalBufferBlue);
SetIndexBuffer(4,SignalBufferRed);
IndicatorShortName(StringConcatenate("MA (",MA_1,",",MA_2,",",MA_3,")"));
SetIndexLabel(0,"MA_1");
SetIndexLabel(1,"MA_2");
SetIndexLabel(2,"MA_3");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,// îáðàáîòàíî áàðîâ íà ïðåäûäóùåì âûçîâå
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int i,limit;
limit=rates_total-prev_calculated-1;
if(rates_total<1) return(0);
for(i=0; i<limit; i++)
{
MA1[i]=iMA(NULL,0,MA_1,shift_1,method_1,applied_price_1,i);
MA2[i]=iMA(NULL,0,MA_2,shift_2,method_2,applied_price_2,i);
MA3[i]=iMA(NULL,0,MA_3,shift_3,method_3,applied_price_3,i);
}
for(i=0; i<limit; i++)
{
if (MA1[i+1]<MA2[i+1] && MA1[i]>MA2[i] && MA2[i]>MA3[i] && MA3[i]>MA3[i+1]) SignalBufferBlue[i]=open[i];
if (MA1[i+1]>MA2[i+1] && MA1[i]<MA2[i] && MA2[i]<MA3[i] && MA3[i]<MA3[i+1]) SignalBufferRed[i]=open[i];
}
return(rates_total);
}
//+------------------------------------------------------------------+
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
---