forked from zjwzjw20062007/MQL5Book
		
	
		
			
	
	
		
			70 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			MQL5
		
	
	
	
	
	
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								//|                                                SimpleDrawing.mq5 |
							 | 
						||
| 
								 | 
							
								//|                              Copyright (c) 2022, MetaQuotes Ltd. |
							 | 
						||
| 
								 | 
							
								//|                                             https://www.mql5.com |
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								#property indicator_chart_window
							 | 
						||
| 
								 | 
							
								#property indicator_buffers 0
							 | 
						||
| 
								 | 
							
								#property indicator_plots   0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "SimpleDrawing.mqh"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								input int Size = 25;
							 | 
						||
| 
								 | 
							
								input ENUM_BASE_CORNER Corner = CORNER_RIGHT_LOWER;
							 | 
						||
| 
								 | 
							
								input DRAW::ORIENTATION Orientation = DRAW::VERTICAL;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								AutoPtr<DRAW::SimpleDrawing> ShapesDrawing;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								//| Indicator initialization function                                |
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								void OnInit()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_MOUSE_SCROLL, false);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_SHOW_DATE_SCALE, false);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_SHOW_PRICE_SCALE, false);
							 | 
						||
| 
								 | 
							
								   ShapesDrawing = new DRAW::SimpleDrawing("DRAW_", Size, Corner, Orientation);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								//| Indicator calculation function (dummy here)                      |
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								int OnCalculate(const int rates_total,
							 | 
						||
| 
								 | 
							
								                const int prev_calculated,
							 | 
						||
| 
								 | 
							
								                const int begin,
							 | 
						||
| 
								 | 
							
								                const double &price[])
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   return rates_total;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								//| Chart event handler                                              |
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   if(id == CHARTEVENT_OBJECT_CLICK)
							 | 
						||
| 
								 | 
							
								   {
							 | 
						||
| 
								 | 
							
								      ShapesDrawing[].onObjectClick(id, lparam, dparam, sparam);
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								   else if(id == CHARTEVENT_MOUSE_MOVE)
							 | 
						||
| 
								 | 
							
								   {
							 | 
						||
| 
								 | 
							
								      ShapesDrawing[].onMouseMove(id, lparam, dparam, sparam);
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								   else if(id == CHARTEVENT_CHART_CHANGE)
							 | 
						||
| 
								 | 
							
								   {
							 | 
						||
| 
								 | 
							
								      ShapesDrawing[].onChartChange();
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								//| Indicator finalization function                                  |
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 | 
						||
| 
								 | 
							
								void OnDeinit(const int)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_MOUSE_SCROLL, true);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, false);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_SHOW_DATE_SCALE, true);
							 | 
						||
| 
								 | 
							
								   ChartSetInteger(0, CHART_SHOW_PRICE_SCALE, true);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								//+------------------------------------------------------------------+
							 |