Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
i_PodborParamIndikatorov
//+------------------------------------------------------------------+
//| podbor indika.mq4 |
//| Tula 2011 |
//+------------------------------------------------------------------+
#property indicator_separate_window
//#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gold
#property indicator_width1 2
#property indicator_level1 0.0
// Ïåðâîíà÷àëüíûå çíà÷åíèÿ èíäèêàòîðà
extern int Param1 = 12;
extern int Param2 = 26;
extern int Param3 = 9;
//---- indicator buffer
double Buffer[];
// Ïåðåìåííûå äëÿ ðàñ÷åòîâ
int i;
int Isobr = 400;
// ñëóæåáíûå êîäû
#define SliderPrefix "SL_"
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(1);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,Buffer);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ClearSliders();
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//
// ñîçäàíèå (ïðè íåîáõîäèìîñòè) è ïîëó÷åíèå ïàðàìåòðîâ óïðàâëÿþùåãî òðåóãîëüíèêà
Param1 = ParamValue(0, SliderPrefix+"Param1", Param1, 3, 30, Blue);
Param2 = ParamValue(1, SliderPrefix+"Param2", Param2, 5, 40, Red);
Param3 = ParamValue(2, SliderPrefix+"Param3", Param3, 3, 30, Orange);
//
// Ïåðåäàåì ïàðàìåòðû â ïîëüçîâàòåëüñêèé èíäèêàòîð è èç ïîëó÷åííûõ çíà÷åíèé ñòðîèì èíäèêàòîð
for(i=Isobr;i>0;i--)
{
Buffer[i] = iOsMA(NULL,0,Param1,Param2,Param3,0,i);
// Buffer[i] = iCustom(NULL,0," ",Param1,Param2,Param3,0,i);
}
//Comment ("Param1 =",Param1,", Param2 =",Param2,", Param3 =",Param3);
Labl("Param1 = "+DoubleToStr(Param1,0)+", Param2 = "+DoubleToStr(Param2,0)+", Param3 = "+DoubleToStr(Param3,0));
//----
return(0);
}
//+------------------------------------------------------------------+
// òðåóãîëüíèêè
//-------------------------------------------------------------------+
double ParamValue(int ParamNo, string ParamName, double ParamValue, double vMin, double vMax, color clr)
{
double Triangle[3],vCur, WMax, WMin; datetime tt1, tt2;
// åñëè òðåóãîëüíèêà íåò - ñîçäàäèì åãî
if(ObjectFind(ParamName) < 0)
{
// îïðåäåëèì ãðàíèöû ãðàôèêà â òåêóùåì ìàñøòàáå ïî âåðòèêàëè
WMax = WindowPriceMax() * 0.99; WMin = WindowPriceMin() * 1.01;
// ðàññ÷èòàåì êîîðäèíàòû òî÷åê ïî âðåìåíè...
tt1 = Time[0] + Period()*60*ParamNo*10; tt2 = tt1 + Period()*60*10;
// ... è "öåíå"
vCur = WMin + (ParamValue - vMin) * (WMax - WMin) / (vMax - vMin);
// ñîçäàäèì îáúåêò è ïîêðàñèì åãî â çàäàííûé â ïàðàìåòðàõ öâåò
ObjectCreate(ParamName,OBJ_TRIANGLE, 0, tt1,WMax, tt2,vCur, tt1,WMin);
ObjectSet(ParamName,OBJPROP_COLOR,clr);
}
// òðåóãîëüíèê ñóùåñòâóåò - ïîëó÷èì åãî êîîðäèíàòû
Triangle[0] = ObjectGet(ParamName,OBJPROP_PRICE1);
Triangle[1] = ObjectGet(ParamName,OBJPROP_PRICE2);
Triangle[2] = ObjectGet(ParamName,OBJPROP_PRICE3);
// ðàñïîëîæèì âåðøèíû â ïîðÿäêå èõ "âîçðàñòàíèÿ
ArraySort(Triangle);
// ïåðåâåäåì êîîðäèíàòó ñðåäíåé òî÷êè ê ìàñøòàáó ðåàëüíûõ çíà÷åíèé ìåæäó vMin è vMax
vCur = vMin + (Triangle[1] - Triangle[0]) / (Triangle[2] - Triangle[0]) * (vMax - vMin);
// íàïèøåì çíà÷åíèå â êîìåíòàðèé îáúåêòà
ObjectSetText(ParamName,DoubleToStr(vCur,2));
// âåðíåì çíà÷åíèå â îñíîâíîé ìîäóëü
return(vCur);
}
//+------------------------------------------------------------------+
// óäàëåíèå âñåõ îáúåêòîâ íàøåãî ãðàôèêà
void ClearSliders()
{
for(int i=ObjectsTotal()-1;i>=0;i--) if(StringFind(ObjectName(i),SliderPrefix)==0) ObjectDelete(ObjectName(i));
}
//+
//==================================================================//
void Labl(string N){
//---- ÍÀÄÏÈÑÜ HA ÃÐÀÔÈÊ ----//
string Nlabel = SliderPrefix;
ObjectDelete(Nlabel);
ObjectCreate(Nlabel,OBJ_LABEL,0,0,0);
ObjectSet(Nlabel,OBJPROP_CORNER,0);
ObjectSet(Nlabel,OBJPROP_COLOR,Aqua);
ObjectSet(Nlabel, OBJPROP_XDISTANCE, 30);
ObjectSet(Nlabel, OBJPROP_YDISTANCE, 20);
ObjectSetText(Nlabel,N,14,"Arial",Aqua);
}
//==================================================================//
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
---