0
Views
0
Downloads
0
Favorites
colordm_361
//+------------------------------------------------------------------+
//| ColorDM_361.mq5 |
//| Copyright 2002, Finware.ru Ltd. |
//| http://www.finware.ru/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2002, Finware.ru Ltd."
#property link "http://www.finware.ru/"
//---- íîìåð âåðñèè èíäèêàòîðà
#property version "1.00"
//---- îòðèñîâêà èíäèêàòîðà â îòäåëüíîì îêíå
#property indicator_separate_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ
#property indicator_buffers 2
//---- èñïîëüçîâàíî âñåãî îäíî ãðàôè÷åñêîå ïîñòðîåíèå
#property indicator_plots 1
//+-----------------------------------+
//| Ïàðàìåòðû îòðèñîâêè èíäèêàòîðà |
//+-----------------------------------+
//---- îòðèñîâêà èíäèêàòîðà â âèäå ìíîãîöâåòíûõ çíà÷êîâ
#property indicator_type1 DRAW_COLOR_ARROW
//---- â êà÷åñòâå öâåòîâ òðåõöâåòíîé ëèíèè èñïîëüçîâàíû
#property indicator_color1 clrMagenta,clrGray,clrTeal
//---- òîëùèíà ëèíèè èíäèêàòîðà ðàâíà 2
#property indicator_width1 2
//---- îòîáðàæåíèå ìåòêè èíäèêàòîðà
#property indicator_label1 "ColorDM_361"
//+-----------------------------------+
//| Îáúÿâëåíèå ïåðå÷èñëåíèé |
//+-----------------------------------+
enum Applied_price_ //Òèï êîíñòàíòû
{
PRICE_CLOSE_ = 1, //Close
PRICE_OPEN_, //Open
PRICE_HIGH_, //High
PRICE_LOW_, //Low
PRICE_MEDIAN_, //Median Price (HL/2)
PRICE_TYPICAL_, //Typical Price (HLC/3)
PRICE_WEIGHTED_, //Weighted Close (HLCC/4)
PRICE_SIMPL_, //Simpl Price (OC/2)
PRICE_QUARTER_, //Quarted Price (HLOC/4)
PRICE_TRENDFOLLOW0_, //TrendFollow_1 Price
PRICE_TRENDFOLLOW1_, //TrendFollow_2 Price
PRICE_DEMARK_ //Demark Price
};
//+-----------------------------------+
//| Âõîäíûå ïàðàìåòðû èíäèêàòîðà |
//+-----------------------------------+
input Applied_price_ IPC=PRICE_CLOSE;// Öåíîâàÿ êîíñòàíòà
input int Shift=0; // Ñäâèã èíäèêàòîðà ïî ãîðèçîíòàëè â áàðàõ
input int PriceShift=0; // Ñäâèã èíäèêàòîðà ïî âåðòèêàëè â ïóíêòàõ
//+-----------------------------------+
//---- îáúÿâëåíèå äèíàìè÷åñêèõ ìàññèâîâ, êîòîðûå áóäóò â
//---- äàëüíåéøåì èñïîëüçîâàíû â êà÷åñòâå èíäèêàòîðíûõ áóôåðîâ
double InBuffer[];
double ColorInBuffer[];
//---- îáúÿâëåíèå öåëî÷èñëåííûõ ïåðåìåííûõ íà÷àëà îòñ÷åòà äàííûõ
int min_rates_total;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void OnInit()
{
//---- èíèöèàëèçàöèÿ ïåðåìåííûõ íà÷àëà îòñ÷åòà äàííûõ
min_rates_total=65;
//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â èíäèêàòîðíûé áóôåð
SetIndexBuffer(0,InBuffer,INDICATOR_DATA);
//---- îñóùåñòâëåíèå ñäâèãà èíäèêàòîðà 1 ïî ãîðèçîíòàëè
PlotIndexSetInteger(0,PLOT_SHIFT,Shift);
//---- îñóùåñòâëåíèå ñäâèãà íà÷àëà îòñ÷åòà îòðèñîâêè èíäèêàòîðà
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,min_rates_total);
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
//---- ïðåâðàùåíèå äèíàìè÷åñêîãî ìàññèâà â öâåòîâîé, èíäåêñíûé áóôåð
SetIndexBuffer(1,ColorInBuffer,INDICATOR_COLOR_INDEX);
//---- ñîçäàíèå èìåíè äëÿ îòîáðàæåíèÿ â îòäåëüíîì ïîäîêíå è âî âñïëûâàþùåé ïîäñêàçêå
IndicatorSetString(INDICATOR_SHORTNAME,"ColorDM_361");
//---- îïðåäåëåíèå òî÷íîñòè îòîáðàæåíèÿ çíà÷åíèé èíäèêàòîðà
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//---- çàâåðøåíèå èíèöèàëèçàöèè
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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[])
{
//---- ïðîâåðêà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷åòà
if(rates_total<min_rates_total) return(0);
//---- îáúÿâëåíèå ïåðåìåííûõ ñ ïëàâàþùåé òî÷êîé
double Res1,Res2;
//---- îáúÿâëåíèå öåëî÷èñëåííûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîñ÷èòàííûõ áàðîâ
int first,bar,clr;
//---- ðàñ÷åò ñòàðòîâîãî íîìåðà first äëÿ öèêëà ïåðåñ÷åòà áàðîâ
if(prev_calculated>rates_total || prev_calculated<=0) // ïðîâåðêà íà ïåðâûé ñòàðò ðàñ÷åòà èíäèêàòîðà
first=min_rates_total; // ñòàðòîâûé íîìåð äëÿ ðàñ÷åòà âñåõ áàðîâ
else first=prev_calculated-1; // ñòàðòîâûé íîìåð äëÿ ðàñ÷åòà íîâûõ áàðîâ
//---- îñíîâíîé öèêë ðàñ÷åòà èíäèêàòîðà
for(bar=first; bar<rates_total && !IsStopped(); bar++)
{
Res1=
-0.057943686277445900*PriceSeries(IPC,bar-00,open,low,high,close)
-0.043658266634319700*PriceSeries(IPC,bar-01,open,low,high,close)
+0.016893339337967300*PriceSeries(IPC,bar-02,open,low,high,close)
+0.110448213843891000*PriceSeries(IPC,bar-03,open,low,high,close)
+0.205220247113110000*PriceSeries(IPC,bar-04,open,low,high,close)
+0.264664029548369000*PriceSeries(IPC,bar-05,open,low,high,close)
+0.264664029548369000*PriceSeries(IPC,bar-06,open,low,high,close)
+0.205220247113110000*PriceSeries(IPC,bar-07,open,low,high,close)
+0.110448213843891000*PriceSeries(IPC,bar-08,open,low,high,close)
+0.016893339337967300*PriceSeries(IPC,bar-09,open,low,high,close)
-0.043658266634319700*PriceSeries(IPC,bar-10,open,low,high,close)
-0.057943686277445900*PriceSeries(IPC,bar-11,open,low,high,close)
-0.034834636631794200*PriceSeries(IPC,bar-12,open,low,high,close)
+0.002212354734218340*PriceSeries(IPC,bar-13,open,low,high,close)
+0.028933121721909400*PriceSeries(IPC,bar-14,open,low,high,close)
+0.032424401776343200*PriceSeries(IPC,bar-15,open,low,high,close)
+0.015569833996195800*PriceSeries(IPC,bar-16,open,low,high,close)
-0.007660554868813180*PriceSeries(IPC,bar-17,open,low,high,close)
-0.022138347829420900*PriceSeries(IPC,bar-18,open,low,high,close)
-0.020552990368271800*PriceSeries(IPC,bar-19,open,low,high,close)
-0.006433347602730440*PriceSeries(IPC,bar-20,open,low,high,close)
+0.009627481503821010*PriceSeries(IPC,bar-21,open,low,high,close)
+0.017394469333231100*PriceSeries(IPC,bar-22,open,low,high,close)
+0.013176086997509700*PriceSeries(IPC,bar-23,open,low,high,close)
+0.001209424586624090*PriceSeries(IPC,bar-24,open,low,high,close)
-0.010002709133594700*PriceSeries(IPC,bar-25,open,low,high,close)
-0.013505578777899800*PriceSeries(IPC,bar-26,open,low,high,close)
-0.008035831519405070*PriceSeries(IPC,bar-27,open,low,high,close)
+0.001903891095510710*PriceSeries(IPC,bar-28,open,low,high,close)
+0.009480467257466930*PriceSeries(IPC,bar-29,open,low,high,close)
+0.010166090979082400*PriceSeries(IPC,bar-30,open,low,high,close)
+0.004303104789688430*PriceSeries(IPC,bar-31,open,low,high,close)
-0.003659787203963280*PriceSeries(IPC,bar-32,open,low,high,close)
-0.008411956859246820*PriceSeries(IPC,bar-33,open,low,high,close)
-0.007282846005800100*PriceSeries(IPC,bar-34,open,low,high,close)
-0.001620704470705190*PriceSeries(IPC,bar-35,open,low,high,close)
+0.004466014467332310*PriceSeries(IPC,bar-36,open,low,high,close)
+0.007048985722291220*PriceSeries(IPC,bar-37,open,low,high,close)
+0.004847799927165300*PriceSeries(IPC,bar-38,open,low,high,close)
-0.000217319809293247*PriceSeries(IPC,bar-39,open,low,high,close)
-0.004603538852047050*PriceSeries(IPC,bar-40,open,low,high,close)
-0.005574817063020290*PriceSeries(IPC,bar-41,open,low,high,close)
-0.002877047191674200*PriceSeries(IPC,bar-42,open,low,high,close)
+0.001371504969476030*PriceSeries(IPC,bar-43,open,low,high,close)
+0.004280506570424680*PriceSeries(IPC,bar-44,open,low,high,close)
+0.004136269885199370*PriceSeries(IPC,bar-45,open,low,high,close)
+0.001361513374633290*PriceSeries(IPC,bar-46,open,low,high,close)
-0.001973820228459360*PriceSeries(IPC,bar-47,open,low,high,close)
-0.003675699277522370*PriceSeries(IPC,bar-48,open,low,high,close)
-0.002836788589562860*PriceSeries(IPC,bar-49,open,low,high,close)
-0.000284631689719810*PriceSeries(IPC,bar-50,open,low,high,close)
+0.002153387731732640*PriceSeries(IPC,bar-51,open,low,high,close)
+0.002934855205103340*PriceSeries(IPC,bar-52,open,low,high,close)
+0.001758962821343280*PriceSeries(IPC,bar-53,open,low,high,close)
-0.000389897847025107*PriceSeries(IPC,bar-54,open,low,high,close)
-0.002031006983868290*PriceSeries(IPC,bar-55,open,low,high,close)
-0.002197277408694140*PriceSeries(IPC,bar-56,open,low,high,close)
-0.000975033303736501*PriceSeries(IPC,bar-57,open,low,high,close)
+0.000693883112457725*PriceSeries(IPC,bar-58,open,low,high,close)
+0.001751056105124850*PriceSeries(IPC,bar-59,open,low,high,close)
+0.001683817123497210*PriceSeries(IPC,bar-60,open,low,high,close)
+0.000645916394658871*PriceSeries(IPC,bar-61,open,low,high,close)
-0.001229513645906610*PriceSeries(IPC,bar-62,open,low,high,close)
-0.005497165615453070*PriceSeries(IPC,bar-63,open,low,high,close)
+0.001719892732445040*PriceSeries(IPC,bar-64,open,low,high,close);
Res2=
+0.210642090317950000*PriceSeries(IPC,bar-00,open,low,high,close)
+0.271656355551084000*PriceSeries(IPC,bar-01,open,low,high,close)
+0.271656355551084000*PriceSeries(IPC,bar-02,open,low,high,close)
+0.210642090317950000*PriceSeries(IPC,bar-03,open,low,high,close)
+0.113366214899538000*PriceSeries(IPC,bar-04,open,low,high,close)
+0.017339655129830400*PriceSeries(IPC,bar-05,open,low,high,close)
-0.044811701929405100*PriceSeries(IPC,bar-06,open,low,high,close)
-0.059474537088348700*PriceSeries(IPC,bar-07,open,low,high,close)
-0.035754954878029800*PriceSeries(IPC,bar-08,open,low,high,close)
+0.002270804329963180*PriceSeries(IPC,bar-09,open,low,high,close)
+0.029697524121816400*PriceSeries(IPC,bar-10,open,low,high,close)
+0.033281042507046500*PriceSeries(IPC,bar-11,open,low,high,close)
+0.015981183265287400*PriceSeries(IPC,bar-12,open,low,high,close)
-0.007862943901791450*PriceSeries(IPC,bar-13,open,low,high,close)
-0.022723234810281000*PriceSeries(IPC,bar-14,open,low,high,close)
-0.021095992789986800*PriceSeries(IPC,bar-15,open,low,high,close)
-0.006603314272564040*PriceSeries(IPC,bar-16,open,low,high,close)
+0.009881836012723110*PriceSeries(IPC,bar-17,open,low,high,close)
+0.017854024794657900*PriceSeries(IPC,bar-18,open,low,high,close)
+0.013524194354160800*PriceSeries(IPC,bar-19,open,low,high,close)
+0.001241377137939080*PriceSeries(IPC,bar-20,open,low,high,close)
-0.010266977018020800*PriceSeries(IPC,bar-21,open,low,high,close)
-0.013862391185810200*PriceSeries(IPC,bar-22,open,low,high,close)
-0.008248135223019260*PriceSeries(IPC,bar-23,open,low,high,close)
+0.001954191195740410*PriceSeries(IPC,bar-24,open,low,high,close)
+0.009730937704226890*PriceSeries(IPC,bar-25,open,low,high,close)
+0.010434675351580300*PriceSeries(IPC,bar-26,open,low,high,close)
+0.004416791230436310*PriceSeries(IPC,bar-27,open,low,high,close)
-0.003756477431473020*PriceSeries(IPC,bar-28,open,low,high,close)
-0.008634197655553740*PriceSeries(IPC,bar-29,open,low,high,close)
-0.007475256109987750*PriceSeries(IPC,bar-30,open,low,high,close)
-0.001663522884800100*PriceSeries(IPC,bar-31,open,low,high,close)
+0.004584004921651760*PriceSeries(IPC,bar-32,open,low,high,close)
+0.007235217324080300*PriceSeries(IPC,bar-33,open,low,high,close)
+0.004975877012459140*PriceSeries(IPC,bar-34,open,low,high,close)
-0.000223061318466289*PriceSeries(IPC,bar-35,open,low,high,close)
-0.004725162649865770*PriceSeries(IPC,bar-36,open,low,high,close)
-0.005722101672782540*PriceSeries(IPC,bar-37,open,low,high,close)
-0.002953057716881230*PriceSeries(IPC,bar-38,open,low,high,close)
+0.001407739624700190*PriceSeries(IPC,bar-39,open,low,high,close)
+0.004393595974558090*PriceSeries(IPC,bar-40,open,low,high,close)
+0.004245548609330800*PriceSeries(IPC,bar-41,open,low,high,close)
+0.001397484055608480*PriceSeries(IPC,bar-42,open,low,high,close)
-0.002025967830578520*PriceSeries(IPC,bar-43,open,low,high,close)
-0.003772809896144160*PriceSeries(IPC,bar-44,open,low,high,close)
-0.002911735497357070*PriceSeries(IPC,bar-45,open,low,high,close)
-0.000292151553936419*PriceSeries(IPC,bar-46,open,low,high,close)
+0.002210279441029960*PriceSeries(IPC,bar-47,open,low,high,close)
+0.003012392996694690*PriceSeries(IPC,bar-48,open,low,high,close)
+0.001805433970046320*PriceSeries(IPC,bar-49,open,low,high,close)
-0.000400198804275733*PriceSeries(IPC,bar-50,open,low,high,close)
-0.002084665438964100*PriceSeries(IPC,bar-51,open,low,high,close)
-0.002255328667062000*PriceSeries(IPC,bar-52,open,low,high,close)
-0.001000793323845250*PriceSeries(IPC,bar-53,open,low,high,close)
+0.000712215248254048*PriceSeries(IPC,bar-54,open,low,high,close)
+0.001797318361302890*PriceSeries(IPC,bar-55,open,low,high,close)
+0.001728302950591050*PriceSeries(IPC,bar-56,open,low,high,close)
+0.000662981267470111*PriceSeries(IPC,bar-57,open,low,high,close)
-0.001261996942755200*PriceSeries(IPC,bar-58,open,low,high,close)
-0.005642398702623070*PriceSeries(IPC,bar-59,open,low,high,close)
+0.001765331663815800*PriceSeries(IPC,bar-60,open,low,high,close);
//----
InBuffer[bar]=Res2-Res1;
}
//---- êîððåêòèðîâêà çíà÷åíèÿ ïåðåìåííîé first
if(prev_calculated>rates_total || prev_calculated<=0) // ïðîâåðêà íà ïåðâûé ñòàðò ðàñ÷åòà èíäèêàòîðà
first=min_rates_total; // ñòàðòîâûé íîìåð äëÿ ðàñ÷åòà âñåõ áàðîâ
//---- îñíîâíîé öèêë ðàñêðàñêè ñèãíàëüíîé ëèíèè
for(bar=first; bar<rates_total; bar++)
{
clr=1;
if(InBuffer[bar-1]<InBuffer[bar]) clr=2;
if(InBuffer[bar-1]>InBuffer[bar]) clr=0;
ColorInBuffer[bar]=clr;
}
//----
return(rates_total);
}
//+------------------------------------------------------------------+
//| Ïîëó÷åíèå çíà÷åíèÿ öåíîâîé òàéìñåðèè |
//+------------------------------------------------------------------+
double PriceSeries(uint applied_price, // Öåíîâàÿ êîíñòàíòà
uint bar, // Èíäåêñ ñäâèãà îòíîñèòåëüíî òåêóùåãî áàðà íà óêàçàííîå êîëè÷åñòâî ïåðèîäîâ íàçàä èëè âïåðåä)
const double &Open[],
const double &Low[],
const double &High[],
const double &Close[])
{
//----
switch(applied_price)
{
//---- öåíîâûå êîíñòàíòû èç ïåðå÷èñëåíèÿ ENUM_APPLIED_PRICE
case PRICE_CLOSE: return(Close[bar]);
case PRICE_OPEN: return(Open [bar]);
case PRICE_HIGH: return(High [bar]);
case PRICE_LOW: return(Low[bar]);
case PRICE_MEDIAN: return((High[bar]+Low[bar])/2.0);
case PRICE_TYPICAL: return((Close[bar]+High[bar]+Low[bar])/3.0);
case PRICE_WEIGHTED: return((2*Close[bar]+High[bar]+Low[bar])/4.0);
//----
case 8: return((Open[bar] + Close[bar])/2.0);
case 9: return((Open[bar] + Close[bar] + High[bar] + Low[bar])/4.0);
//----
case 10:
{
if(Close[bar]>Open[bar])return(High[bar]);
else
{
if(Close[bar]<Open[bar])
return(Low[bar]);
else return(Close[bar]);
}
}
//----
case 11:
{
if(Close[bar]>Open[bar])return((High[bar]+Close[bar])/2.0);
else
{
if(Close[bar]<Open[bar])
return((Low[bar]+Close[bar])/2.0);
else return(Close[bar]);
}
break;
}
//----
case 12:
{
double res=High[bar]+Low[bar]+Close[bar];
if(Close[bar]<Open[bar]) res=(res+Low[bar])/2;
if(Close[bar]>Open[bar]) res=(res+High[bar])/2;
if(Close[bar]==Open[bar]) res=(res+Close[bar])/2;
return(((res-Low[bar])+(res-High[bar]))/2);
}
//----
default: return(Close[bar]);
}
}
//+------------------------------------------------------------------+
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
---