//+------------------------------------------------------------------+ //| 2MA_Lib_Sample.mq4 | //| Copyright © 2009, TheXpert | //| theforexpert@gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, TheXpert" #property link "theforexpert@gmail.com" #include <Indicator_Painting.mqh> #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Maroon #property indicator_color2 Coral #property indicator_color3 Navy #property indicator_color4 Navy #property indicator_color5 DeepSkyBlue #property indicator_color6 DeepSkyBlue #property indicator_color7 Gold #property indicator_color8 White #property indicator_width1 3 #property indicator_width2 3 #property indicator_width3 3 #property indicator_width4 3 #property indicator_width5 3 #property indicator_width6 3 #property indicator_width7 3 #property indicator_width8 3 extern int SlowPeriod = 40; extern int FastPeriod = 15; extern bool MarkFastDirections = true; extern bool MarkSlowDirections = true; extern bool MarkFastExtremums = true; extern bool MarkCrosses = true; // buffers double FastValues[]; // áûñòðûå çíà÷åíèÿ double SlowValues[]; // ìåäëåííûå çíà÷åíèÿ double FastGrowing1[]; // ïåðâûé áóôåð ðîñòà äëÿ áûñòðûõ çíà÷åíèé double FastGrowing2[]; // âòîðîé áóôåð ðîñòà äëÿ áûñòðûõ çíà÷åíèé double SlowGrowing1[]; // ïåðâûé áóôåð ðîñòà äëÿ ìåäëåííûõ çíà÷åíèé double SlowGrowing2[]; // âòîðîé áóôåð ðîñòà äëÿ ìåäëåííûõ çíà÷åíèé double FastExtremums[]; // ïèêè double Crosses[]; // ïåðåñå÷åíèÿ int DigitsUsed = 6; int EmptyValueUsed = 0; int init() { // àññîöèèðóåì áóôåðû SetIndexBuffer(0, FastValues); SetIndexBuffer(1, SlowValues); // áóôåðû äëÿ ðàñêðàñêè íàïðàâëåíèé SetIndexBuffer(2, FastGrowing1); SetIndexBuffer(3, FastGrowing2); SetIndexBuffer(4, SlowGrowing1); SetIndexBuffer(5, SlowGrowing2); // áóôåð äëÿ ïîìåòêè ïèêîâ\âïàäèí äëÿ áûñòðîé ìàøêè SetIndexBuffer(6, FastExtremums); // áóôåð äëÿ ïîìåòêè ïåðåñå÷åíèé SetIndexBuffer(7, Crosses); // çàäàåì íàñòðîéêè äëÿ áóôåðîâ SetIndexStyle(0, DRAW_LINE); SetIndexStyle(1, DRAW_LINE); SetIndexStyle(2, DRAW_LINE); SetIndexStyle(3, DRAW_LINE); SetIndexStyle(4, DRAW_LINE); SetIndexStyle(5, DRAW_LINE); SetIndexStyle(6, DRAW_ARROW, STYLE_SOLID, 2); SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 2); SetIndexArrow(6, 159); SetIndexArrow(7, 251); return(0); } int start() { int toCount = Bars - IndicatorCounted(); // Ñ÷èòàåì çíà÷åíèÿ for (int i = toCount - 1; i >=0; i--) { FastValues[i] = NormalizeDouble(iMA(Symbol(), 0, FastPeriod, 0, MODE_EMA, PRICE_CLOSE, i), DigitsUsed); SlowValues[i] = NormalizeDouble(iMA(Symbol(), 0, SlowPeriod, 0, MODE_EMA, PRICE_CLOSE, i), DigitsUsed); } // Ìåòèì âñå ÷òî ìîæíî. if (MarkCrosses) { MarkCrosses(FastValues, SlowValues, Crosses, toCount - 1, 0, CROSS_ALL, EmptyValueUsed); } if (MarkFastDirections) { MarkGrowing(FastValues, FastGrowing1, FastGrowing2, toCount - 1, 0, EmptyValueUsed); } if (MarkSlowDirections) { MarkGrowing(SlowValues, SlowGrowing1, SlowGrowing2, toCount - 1, 0, EmptyValueUsed); } if (MarkFastExtremums) { MarkExtremums(FastValues, FastExtremums, toCount - 1, 0, DIR_ALL, EmptyValueUsed); } return(0); }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Implements a curve of type DRAW_ARROW
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: