Miscellaneous
0
Views
0
Downloads
0
Favorites
JMACD_v1
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
/*
Äëÿ ðàáîòû èíäèêàòîðà ñëåäóåò ïîëîæèòü ôàéë JJMASeries.mqh â ïàïêó
(äèðåêòîðèþ): MetaTrader\experts\include\
*/
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
//| JMACD.mq4 |
//| JMA code: Copyright © 2005, Weld, Jurik Research |
//| http://weld.torguem.net |
//| Copyright © 2005, Nikolay Kositsin |
//| Khabarovsk, violet@mail.kht.ru |
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 BlueViolet
#property indicator_color2 Magenta
//---- indicator parameters
extern int FastJMA=12;
extern int SlowJMA=26;
extern int SignalJMA=9;
extern int JMACD_Phase = 5;
extern int Signal_Phase = 5;
extern int Input_Price_Customs = 0;//Âûáîð öåí, ïî êîòîðûì ïðîèçâîäèòñÿ ðàñ÷¸ò èíäèêàòîðà (0-"Close", 1-"Open", 2-"(High+Low)/2", 3-"High", 4-"Low", 5-"input Heiken Ashi Close")
extern int CountBars = 300;//Êîëè÷åñòâî ïîñëåäíèõ áàðîâ, íà êîòîðûõ ïðîèñõîäèò ðàñ÷¸ò íäèêàòîðà
//---- indicator buffers
double F.JMA,S.JMA,jmacd,Series;
//---- JMA variabls
double JMACD[];
double JSIGN[];
int count,IPC;
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
//| Custom indicator initialization function |
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
int init()
{
//---- drawing settings
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID);
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1);
//---- indicator buffers mapping
if(!SetIndexBuffer(0,JMACD) && !SetIndexBuffer(1,JSIGN))Alert("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("JMACD("+FastJMA+","+SlowJMA+","+SignalJMA+")");
SetIndexLabel(0,"JMACD");
SetIndexLabel(1,"SignalJMA");
//+=======================================================================================================================================================+
if(JMACD_Phase<-100){Alert("Ïàðàìåòð JMACD_Phase äîëæåí áûòü îò -100 äî +100" + " Âû ââåëè íåäîïóñòèìîå " +JMACD_Phase+ " áóäåò èñïîëüçîâàíî -100");}
if(JMACD_Phase> 100){Alert("Ïàðàìåòð JMACD_Phase äîëæåí áûòü îò -100 äî +100" + " Âû ââåëè íåäîïóñòèìîå " +JMACD_Phase+ " áóäåò èñïîëüçîâàíî 100");}
if(Signal_Phase<-100){Alert("Ïàðàìåòð Signal_Phase äîëæåí áûòü îò -100 äî +100" + " Âû ââåëè íåäîïóñòèìîå " +Signal_Phase+ " áóäåò èñïîëüçîâàíî -100");}
if(Signal_Phase> 100){Alert("Ïàðàìåòð Signal_Phase äîëæåí áûòü îò -100 äî +100" + " Âû ââåëè íåäîïóñòèìîå " +Signal_Phase+ " áóäåò èñïîëüçîâàíî 100");}
if(FastJMA< 1){Alert("Ïàðàìåòð FastJMA äîëæåí áûòü íå ìåíåå 1" + " Âû ââåëè íåäîïóñòèìîå " +FastJMA+ " áóäåò èñïîëüçîâàíî 1" );}
if(SlowJMA< 1){Alert("Ïàðàìåòð SlowJMA äîëæåí áûòü íå ìåíåå 1" + " Âû ââåëè íåäîïóñòèìîå " +SlowJMA+ " áóäåò èñïîëüçîâàíî 1" );}
if(SignalJMA<1){Alert("Ïàðàìåòð SignalJMA äîëæåí áûòü íå ìåíåå 1" + " Âû ââåëè íåäîïóñòèìîå " +SignalJMA+" áóäåò èñïîëüçîâàíî 1" );}
if(IPC<0){Alert("Ïàðàìåòð Input_Price_Customs äîëæåí áûòü íå ìåíåå 0" + " Âû ââåëè íåäîïóñòèìîå "+IPC+ " áóäåò èñïîëüçîâàíî 0" );}
if(IPC>6){Alert("Ïàðàìåòð Input_Price_Customs äîëæåí áûòü íå áîëåå 4" + " Âû ââåëè íåäîïóñòèìîå "+IPC+ " áóäåò èñïîëüçîâàíî 0" );}
//+=======================================================================================================================================================+
IPC=Input_Price_Customs;
//---- initialization done
return(0);
}
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
//| JMACD |
//+SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
limit=Bars-counted_bars-1;
//----+ Ââåäåíèå è èíèöèàëèçàöèÿ âíóòðåííèõ ïåðåìåííûõ ôóíêöèè JJMASeries, JMAnumberJ=3(Òðè îáðàùåííèÿ ê ôóíêöèè)
if (limit==Bars-1){int reset=-1;int set=JJMASeries(3,0,0,0,0,0,0,0,reset);if((reset!=0)||(set!=0))return(-1);}
//----+
//---- macd counted in the JMACD buffer
for(int bar=limit; bar>=0; bar--)
{
switch(IPC)
{
//----+ Âûáîð öåí, ïî êîòîðûì ïðîèçâîäèòñÿ ðàñ÷¸ò èíäèêàòîðà +-----+
case 0: Series=Close[bar];break;
case 1: Series= Open[bar];break;
case 2: {Series=(High[bar]+Low [bar])/2;}break;
case 3: Series= High[bar];break;
case 4: Series= Low[bar];break;
case 5: {Series=(Open[bar]+High [bar]+Low[bar]+Close[bar])/4;}break;
case 6: {Series=(Open[bar]+Close[bar])/2;}break;
default: Series=Close[bar];break;
//----+------------------------------------------------------------+
}
//----+ Îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðîì 0, ïàðàìåòðû PhaseJ è LengthJ íå ìåíÿþòñÿ íà êàæäîì áàðå (din=0)
reset=1;F.JMA=JJMASeries(0,0,Bars-1,limit,JMACD_Phase,FastJMA,Series,bar,reset);if(reset!=0)return(-1);
//----+ Îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðîì 1, (din=0)
reset=1;S.JMA=JJMASeries(1,0,Bars-1,limit,JMACD_Phase,SlowJMA,Series,bar,reset);if(reset!=0)return(-1);
//----+
jmacd=F.JMA-S.JMA;
JMACD[bar]=jmacd;
//----+ Îáðàùåíèå ê ôóíêöèè JJMASeries çà íîìåðîì 2, (din=0, Â ýòîì îáðàùåíèè ïàðàìåòð MaxBarJ óìåíüøåí íà 30 ò. ê. ýòî ïîâòîðíîå JMA ñãëàæèâàíèå)
reset=1;JSIGN[bar]=JJMASeries(2,0,Bars-29,limit,Signal_Phase,SignalJMA,jmacd,bar,reset);if(reset!=0)return(-1);
}
//---- done
return(0);
}
//----+ Ââåäåíèå ôóíêöèè JJMASeries (ôàéë JJMASeries.mqh ñëåäóåò ïîëîæèòü â ïàïêó (äèðåêòîðèþ): MetaTrader\experts\include)
#include <JJMASeries.mqh>
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
---