Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
3c_JDemark
/*
Äëÿ ðàáîòû èíäèêàòîðà ñëåäóåò ïîëîæèòü ôàéë
JJMASeries.mqh
(äèðåêòîðèþ): MetaTrader\experts\include\
Heiken Ashi#.mq4
â ïàïêó (äèðåêòîðèþ): MetaTrader\indicators\
"Îïèñàíèå èíäèêàòîðà Ò.ÄåÌàðêà "
Âî âíîãèå ïàêåòû òåõíè÷åñêîãî âêëþ÷åí èíäèêàòîð, ïðåäëîæåííûé
Ò.ÄåÌàðêîì. Áëèçêèé ïî ñìûñëó ê DMI, íî áîëåå ïðîñòî âû÷èñëÿåìûé
(DEMARK â îòëè÷èå îò ADX, ó÷èòûâàåò òîëüêî ýêñòðåìàëüíûå öåíû, à íå
öåíû çàêðûòèÿ) îí äàåò íàãëÿäíûå ñèãíàëû è íàðàâíå ñ äðóãèìè
îñöèëëÿòîðàìè ìîæåò áûòü ïðèìåíåí äëÿ ïîñòðîåíèÿ òîðãîâûõ ñèñòåì.
Îïðåäåëåíèå èíäèêàòîðà: åñëè ñåãîäíÿøíèé high âûøå â÷åðàøíåãî high, òî
àêêóìóëèðóåì ñîîòâåòñòâóþùèå ðàçíîñòè, åñëè ñåãîäíÿøíèé low íèæå
â÷åðàøíåãî, òî îòäåëüíî àêêóìóëèðóåì ñîîòâåòñòâóþùèå ðàçíîñòè (è òå è
äðóãèå - ïîëîæèòåëüíûå âåëè÷èíû). Êîëè÷åñòâî ñâå÷åé n, ïî êîòîðûì
ïðîèñõîäèò àêêóìóëèðîâàíèå (óñðåäíåíèå), ÿâëÿåòñÿ ïàðàìåòðîì
èíäèêàòîðà, ðàâíîãî äðîáè: DEMARK = (íàêîïëåííûå çà n ñâå÷åé ðàçíîñòè
high - high[-1]) / ( (íàêîïëåííûå çà n ñâå÷åé ðàçíîñòè high -
high[-1]) + (íàêîïëåííûå çà n ñâå÷åé ðàçíîñòè low[-1] - low) ) Ïðè
âûçîâå èíäèêàòîðà îí çàïðàøèâàåò äëèíó îêíà óñðåäåíåíèÿ n; ïî
óìîë÷àíèþ ïðåäëàãàåòñÿ çíà÷åíèå n = 13. ×òåíèå ýòîãî èíäèêàòîðà âî
ìíîãîì àíàëîãè÷íî RSI: îí òàêæå îáðàçóåò îáëàñòè ïåðåêóïëåííîñòè è
ïåðåïðîäàííîñòè, ÷àñòî ïîêàçûâàåò õîðîøèå äèâåðãåíöèè.  òî æå âðåìÿ,
âî âìîãèõ ñèòóàöèÿõ îí ìîæåò èìåòü ïðåèìóùåñòâà, òàê êàê áîëåå
ïîëíî ó÷èòûâàåò ñòðóêòóðó ñâå÷è.
© 1997-2005, «FOREX CLUB»
http://www.fxclub.org/academy_lib_article/article17.html
 äàííîì èíäèêàòîðå çíà÷åíèÿ, ïîëó÷åííûå íà îñíîâå àëãîðèòìà Äåìàðêà,
ñãëàæåíû ñ ïîìîùüþ JMA ñãëàæèâàíèÿ è äîáàâëåíà ñèãíàëüíàÿ ëèíèÿ,
ïîëó÷åííàÿ äîïîëíèòåëüíûì JMA ñãëàæèâàíèåì.
*/
//+------------------------------------------------------------------+
//| 3c_JDemark.mq4 |
//| Copyright © 2006, Nikolay Kositsin |
//| Khabarovsk, farria@mail.redcom.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Nikolay Kositsin"
#property link "farria@mail.redcom.ru"
//---- îòðèñîâêà èíäèêàòîðà â îòäåëüíîì îêíå
#property indicator_separate_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ
#property indicator_buffers 4
//---- öâåòà èíäèêàòîðà
#property indicator_color1 Blue
#property indicator_color2 Magenta
#property indicator_color3 Purple
#property indicator_color4 Aqua
//---- òîëùèíà èíäèêàòîðíûõ ëèíèé
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 3
//---- ñòèëü ñèãíàëüíîé ëèíèè èíäèêàòîðà
#property indicator_style4 4
//---- ïàðàìåòðû ãîðèçîíòàëüíûõ óðîâíåé èíäèêàòîðà
#property indicator_level1 50
#property indicator_level2 -50
#property indicator_level3 0
#property indicator_levelcolor DarkOrchid
#property indicator_levelstyle 4
//---- ÂÕÎÄÍÛÅ ÏÀÐÀÌÅÒÐÛ ÈÍÄÈÊÀÒÎÐÀ -----+
extern int Demark_Period = 13;
extern int Demark_Smooth = 3;
extern int Smooth_Phase = 100;
extern int Sign_Length = 15;
extern int Sign_Phase = 100;
//---- ----------------------------------+
//---- èíäèêàòîðíûå áóôåðû
double Ind_Buffer1[];
double Ind_Buffer2[];
double Ind_Buffer3[];
double Ind_Buffer4[];
//+------------------------------------------------------------------+
//----+ Ââåäåíèå ôóíêöèè JJMASeries
//----+ Ââåäåíèå ôóíêöèè JJMASeriesResize
//----+ Ââåäåíèå ôóíêöèè JJMASeriesAlert
//----+ Ââåäåíèå ôóíêöèè JMA_ErrDescr
#include <JJMASeries.mqh>
//+------------------------------------------------------------------+
//| JDemark initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 4 èíäèêàòîðíûõ áóôåðà èñïîëüçîâàíû äëÿ ñ÷¸òà
if(!SetIndexBuffer(0,Ind_Buffer1) &&
!SetIndexBuffer(1,Ind_Buffer2) &&
!SetIndexBuffer(2,Ind_Buffer3) &&
!SetIndexBuffer(3,Ind_Buffer4))
Print("cannot set indicator buffers!");
//---- ñòèëè èçîáðàæåíèÿ èíäèêàòîðà
SetIndexStyle(0,DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(1,DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(2,DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(3,DRAW_LINE);
//---- èìåíà äëÿ îêîí äàííûõ è ëýéáû äëÿ ñóáúîêîí
IndicatorShortName ("JDemark");
SetIndexLabel(0,"Up_Trend");
SetIndexLabel(1,"Down_Trend");
SetIndexLabel(2,"Straight_Trend");
SetIndexLabel(3,"Signal");
//---- óñòàíîâêà çíà÷åíèé èíäèêàòîðà, êîòîðûå íå áóäóò âèäèìû íà ãðàôèêå
SetIndexEmptyValue(0,0);
SetIndexEmptyValue(1,0);
SetIndexEmptyValue(2,0);
SetIndexEmptyValue(3,0);
//----+ Èçìåíåíèå ðàçìåðîâ áóôåðíûõ ïåðåìåííûõ ôóíêöèè JJMASeries, nJMAnumber=2(Äâà îáðàùåíèÿ ê ôóíêöèè JJMASeries)
if (JJMASeriesResize(2)!=2)return(-1);
//---- óñòàíîâêà àëåðòîâ íà íåäîïóñòèìûå çíà÷åíèÿ âíåøíèõ ïåðåìåííûõ
JJMASeriesAlert (0,"Demark_Period",Demark_Period);
JJMASeriesAlert (0,"Demark_Smooth",Demark_Smooth);
JJMASeriesAlert (0,"Sign_Length", Sign_Length);
JJMASeriesAlert (1,"Smooth_Phase", Smooth_Phase);
JJMASeriesAlert (1,"Sign_Phase", Sign_Phase);
//---- êîðåêöèÿ íåäîïóñòèìîãî çíà÷åíèÿ ïàðàìåòðà Demark_Period
if(Demark_Period<1)Demark_Period=1;
//---- óñòàíîâêà íîìåðà áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò îòðèñîâûâàòüñÿ èíäèêàòîð
int draw_begin=Demark_Period+1+30;
SetIndexDrawBegin(0,draw_begin);
SetIndexDrawBegin(1,draw_begin);
SetIndexDrawBegin(2,draw_begin);
SetIndexDrawBegin(3,draw_begin+30);
//---- Óñòàíîâêà ôîðìàòà òî÷íîñòè (êîëè÷åñòâî çíàêîâ ïîñëå äåñÿòè÷íîé òî÷êè) äëÿ âèçóàëèçàöèè çíà÷åíèé èíäèêàòîðà
IndicatorDigits(0);
//---- çàâåðøåíèå èíèöèàëèçàöèè
return(0);
}
//+------------------------------------------------------------------+
//| JDemark iteration function |
//+------------------------------------------------------------------+
int start()
{
//---- ïåðåìåííûå ñ ïëàâàþùåé òî÷êîé
double MinHigh,MinLow,Up,Down,Demark,JDemark,trend,Signal;
//---- ïðîâåðêà íà êîëè÷åñòâà áàðîâ íà äîñòàòî÷íîñòü äëÿ ðàñ÷¸òà
if (Bars-1<Demark_Period)return(0);
//----+ Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîñ÷èòàííûõ áàðîâ
int reset,MaxBarD,MaxBarJ,limit,counted_bars=IndicatorCounted();
//---- ïðîâåðêà íà âîçìîæíûå îøèáêè
if (counted_bars<0)return(-1);
//---- ïîñëåäíèé ïîñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí
if (counted_bars>0) counted_bars--;
//---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà, íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò íîâûõ áàðîâ
limit=Bars-counted_bars-1; MaxBarD=Bars-1-Demark_Period; MaxBarJ=MaxBarD-30;
//----+
for(int bar=limit; bar>=0; bar--)
{
//----+ Ðàñ÷¸ò èíäèêàòîðà Äåìàðêà (îáðàùåíèå ê òåõíè÷åñêîìó èíäèêàòîðó iDeMarker)
Demark=200*iDeMarker(NULL, 0, Demark_Period, bar)-100;
//----+ Ñãëàæèâàíèå ãîòîâîãî èíäèêàòîðà
//----+ ( Îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðîì 0, ïàðàìåòðû nJMA.Phase è nJMA.Length íå ìåíÿþòñÿ íà êàæäîì áàðå (nJMA.din=0))
JDemark=JJMASeries(0,0,MaxBarD,limit,Smooth_Phase,Demark_Smooth,Demark,bar,reset);
//----+ ïðîâåðêà íà îòñóòñòâèå îøèáêè â ïðåäûäóùåé îïåðàöèè
if(reset!=0)return(-1);
//---- +SSSSSSSSSSSSSSSS <<< Òð¸õöâåòíûé êîä èíäèêàòîðà >>> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
trend=JDemark-Ind_Buffer1[bar+1]-Ind_Buffer2[bar+1]-Ind_Buffer3[bar+1];
if (trend>0){Ind_Buffer1[bar]=JDemark; Ind_Buffer2[bar]=0; Ind_Buffer3[bar]=0;}
else{if(trend<0){Ind_Buffer1[bar]=0; Ind_Buffer2[bar]=JDemark; Ind_Buffer3[bar]=0;}
else {Ind_Buffer1[bar]=0; Ind_Buffer2[bar]=0; Ind_Buffer3[bar]=JDemark;}}
//---- +SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
//----+ Âû÷èñëåíèå ñèãíàëüíîé ëèíèè
//----+ ( Îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðîì 1, ïàðàìåòðû nJMA.Phase è nJMA.Length íå ìåíÿþòñÿ íà êàæäîì áàðå (nJMA.din=0))
Signal=JJMASeries(1,0,MaxBarJ,limit,Sign_Phase,Sign_Length,JDemark,bar,reset);
//----+ ïðîâåðêà íà îòñóòñòâèå îøèáêè â ïðåäûäóùåé îïåðàöèè
if(reset!=0)return(-1);
Ind_Buffer4[bar]=Signal;
//----+
}
//---- çàâåðøåíèå âû÷èñëåíèé çíà÷åíèé èíäèêàòîðà
return(0);
}
//+----------------------------------------------------------------------------------+
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
---