Author: �������� sever11, � ���-����� Copyright � 2010, komposter
0 Views
0 Downloads
0 Favorites
iPriceGrid
//+------------------------------------------------------------------+
//|                                                   iPriceGrid.mq4 |
//|                                      Copyright © 2011, komposter |
//|                                          http://www.komposter.me |
//+------------------------------------------------------------------+
#property copyright "çàäóìùèê sever11, à øåô-ïîâàð Copyright © 2010, komposter" 
#property link      "http://www.komposter.me"
//äëÿ ïîñòðîåíèÿ öåíîâûõ óðîâíåé .
// íåì ðåàëèçîâàë âîçìîæíîñòü îòðèñîâêè 5-òè ðàçëè÷íûõ óðîâíåé. Äëÿ êàæäîãî çàäàåòñÿ ñâîé øàã è ðàññòîÿíèÿ äî âåðõíåãî/íèæíåãî ôèëüòðà. Ðàññòîÿíèÿ íóæíî çàäàâàòü â ïóíêòàõ äëÿ 4-çíàêà, èíäèêàòîð àâòîìàòè÷åñêè àäàïòèðóåò çíà÷åíèÿ äëÿ 5-òè, 3-õ è 2-õ çíà÷íûõ êîòèðîâîê.
//Ïî íàñòðîéêàì:
//GX_Label - ïîäïèñü, êîòîðàÿ áóäåò íàêëàäûâàòüñÿ íà ñîîòâåòñòâóþùèé óðîâåíü (æåëàòåëüíî óêàçûâàòü íå ñëèøêîì äëèííóþ, òàê êàê åñòü îãðàíè÷åíèÿ íà êîëè÷åñòâî îòîáðàæàåìûõ ñèìâîëîâ);
//GX_Step - øàã ïîñòðîåíèÿ ëèíèé óðîâíåé (5000 äëÿ Y1, 2000 äëÿ Q1 è ò.ä.);
//GX_Upper - êîëè÷åñòâî ïóíêòîâ íà êîòîðîå áóäåò ñìåùåí âåðõíèé ôèëüòð îò öåíû óðîâíÿ (ââåðõ);
//GX_Lower - êîëè÷åñòâî ïóíêòîâ íà êîòîðîå áóäåò ñìåùåí íèæíèé ôèëüòð îò öåíû óðîâíÿ (âíèç).
//Òàêèì îáðàçîì äëÿ íàñòðîåê: G1_Label = "Y1", G1_Step = 5000, G1_Upper = 310, G1_Lower = 190 áóäóò ïîñòðîåíû ëèíèè ÷åðåç êàæäûå 5000 ïóíêòîâ ñ ïîäïèñüþ "Y1", íèæíèé ôèëüòð áóäåò óñòàíîâëåí íà 190 ïóíêòîâ íèæå, à âåðõíèé íà 310 ïóíêòîâ âûøå óðîâíÿ (äëÿ öåíû 1.5000 ýòî áóäåò 1.4810 è 1.5310 ñîîòâåòñòâåííî).

#property indicator_chart_window

extern string	Grid_1			= "-------Grid-1-Settings-------";
extern bool		G1_Draw			= true;                             // ãîä
extern string	G1_Label			= "Y1";
extern int		G1_Step			= 5000;
extern int		G1_Upper			= 310;
extern int		G1_Lower			= 190;

extern string	Grid_2			= "-------Grid-2-Settings-------";
extern bool		G2_Draw			= true;                           // êâàðòàë
extern string	G2_Label			= "Q1";
extern int		G2_Step			= 2000;
extern int		G2_Upper			= 130;
extern int		G2_Lower			= 20;

extern string	Grid_3			= "-------Grid-3-Settings-------";
extern bool		G3_Draw			= true;
extern string	G3_Label			= "MN1";
extern int		G3_Step			= 1000;
extern int		G3_Upper			= 130;
extern int		G3_Lower			= 20;

extern string	Grid_4			= "-------Grid-4-Settings-------";
extern bool		G4_Draw			= true;
extern string	G4_Label			= "W1";
extern int		G4_Step			= 500;
extern int		G4_Upper			= 31;
extern int		G4_Lower			= 19;

extern string	Grid_5			= "-------Grid-5-Settings-------";
extern bool		G5_Draw			= true;
extern string	G5_Label			= "D1";
extern int		G5_Step			= 100;
extern int		G5_Upper			= 31;
extern int		G5_Lower			= 19;

extern string	Grid_6			= "-------Grid-6-Settings-------";
extern bool		G6_Draw			= true;
extern string	G6_Label			= "H4";
extern int		G6_Step			= 500;
extern int		G6_Upper			= 31;
extern int		G6_Lower			= 19;

extern string	Grid_7			= "-------Grid-7-Settings-------";
extern bool		G7_Draw			= true;
extern string	G7_Label			= "H1";
extern int		G7_Step			= 100;
extern int		G7_Upper			= 31;
extern int		G7_Lower			= 19;

extern string	Draw_Settings	= "-------Draw-Settings-------";
extern int		Style				= STYLE_DOT;
extern color	SColor			= Yellow;
extern color	UColor			= Red;
extern color	LColor			= Gray;
int D5 = 1.0;
string prefix = "#$@_";
string pref_a = "@$#_";
double pre_win_max = 0;

int init()
{
	if ( Digits == 5 || Digits == 3 ) { D5 *= 10.0; }
	return(0);
}

int deinit()
{
	obj_delete();
	return(0);
}

int start()
{
	if ( pre_win_max != WindowPriceMax() )
	{
		pre_win_max = WindowPriceMax();
		obj_delete();
		
		if ( G7_Draw ) { DrawLines( G7_Label, G7_Step, G7_Upper, G7_Lower ); }
		if ( G6_Draw ) { DrawLines( G6_Label, G6_Step, G6_Upper, G6_Lower ); }
		if ( G5_Draw ) { DrawLines( G5_Label, G5_Step, G5_Upper, G5_Lower ); }
		if ( G4_Draw ) { DrawLines( G4_Label, G4_Step, G4_Upper, G4_Lower ); }
		if ( G3_Draw ) { DrawLines( G3_Label, G3_Step, G3_Upper, G3_Lower ); }
	   if ( G2_Draw ) { DrawLines( G2_Label, G2_Step, G2_Upper, G2_Lower ); }
		if ( G1_Draw ) { DrawLines( G1_Label, G1_Step, G1_Upper, G1_Lower ); }
	}
	
	return(0);
  }

void DrawLines( string text, int step, int up, int dn )
{
	double	win_max	= WindowPriceMax();
	double	win_min	= WindowPriceMin();
	double	level		= 0.0;
	
	string	name		= "";
	string	success	= "";
	string	txt		= "";
	
	while( level <= win_max )
	{
		txt = text;
		if ( level < win_min ) { level += step*D5*Point; continue; }
		
		name = prefix + DoubleToStr(level, Digits);
		
		if ( ObjectFind(name) < 0 ) { ObjectCreate ( name, OBJ_HLINE, 0, 0, level ); }
		else { txt = text + ", " + ObjectDescription(name); }
		
		ObjectSet		( name, OBJPROP_TIME1, 0 );
		ObjectSet		( name, OBJPROP_PRICE1, level );
		ObjectSet		( name, OBJPROP_COLOR, SColor );
		ObjectSet		( name, OBJPROP_STYLE, Style );
		ObjectSetText	( name, txt, 0 );
	
		name = pref_a + DoubleToStr(level + up*D5*Point, Digits) + "_up";
		txt = text;
		
		if ( ObjectFind(name) < 0 ) { ObjectCreate ( name, OBJ_HLINE, 0, 0, level + up*D5*Point ); }
		else { txt = text + ", " + ObjectDescription(name); }
		
		ObjectSet		( name, OBJPROP_COLOR, UColor );
		ObjectSet		( name, OBJPROP_STYLE, Style );
		ObjectSetText	( name, txt, 0 );
		
		name = pref_a + DoubleToStr(level - up*D5*Point, Digits) + "_dn";
		txt = text;
	
		if ( ObjectFind(name) < 0 ) { ObjectCreate ( name, OBJ_HLINE, 0, 0, level - up*D5*Point ); }
		else { txt = text + ", " + ObjectDescription(name); }

		ObjectSet		( name, OBJPROP_COLOR, LColor );
		ObjectSet		( name, OBJPROP_STYLE, Style );
		ObjectSetText	( name, txt, 0 );

		level += step*D5*Point;
	}
	
	WindowRedraw();
}

void obj_delete()
{
	int		total = ObjectsTotal() - 1;
	string	name	= "";
	
	for ( int i = total; i >= 0; i -- )
	{
		name = ObjectName(i);
		if ( ObjectFind(name) < 0 ) { continue; }
		
		if ( StringFind( name, prefix ) >= 0 || StringFind( name, pref_a ) >= 0 ) { ObjectDelete(name); }
	}
	
	WindowRedraw();
}

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 ---