Price Data Components
Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
mv-i-TAACH_1_0
//+---------------------------------------------------------------------------+
//| mv-i-TAACH_1_0.mq4 |
//| Ìàêñèì Âàñèëåíêî Â. MaxV42 |
//| http:// |
//| Èíäèêàòîð ðàáîòàåò ïî ñòðàòåãèè "ÒÀÀ×". |
//| Âåðñèÿ 1.0 îò 20.12.2009: |
//| |
//+---------------------------------------------------------------------------+
#property copyright "Ìàêñèì Âàñèëåíêî Â. MaxV42"
#property link "http://"
//+---------------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_width3 1
#property indicator_width4 1
//+---------------------------------------------------------------------------+
extern string Ind_Coment1= "--- Ïàðàìåòðû ìëàäøåãî òàéìôðåéìà ---";
extern bool ShowFractals_LowerTF = false; // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool OnAlert_Pitchfork_LowerTF = false; // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int nPitchfork_Upper_LowerTF = 2; // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int nPitchfork_Lower_LowerTF = 2; // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool ShowPitchfork_LowerTF = true; // Âêë/âûêë "Âèë Ýíäðþñà" ìëàäøåãî òàéìôðåéìà
extern string Ind_Coment2= "--- Ïàðàìåòðû ñòàðøåãî òàéìôðåéìà ---";
extern int TF_Upper = 1440; // Ñòàðøèé òàéìôðåéì
extern bool ShowFractals_UpperTF = false; // Âêë/âûêë çíà÷êîâ ôðàêòàëîâ
extern bool OnAlert_Pitchfork_UpperTF = false; // Âêë/âûêë ñèãíàëà ïðè âûÿâëåíèè íîâîãî êàíàëà
extern int nPitchfork_Upper_UpperTF = 1; // Êîëè÷åñòâî âûâîäèìûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
extern int nPitchfork_Lower_UpperTF = 1; // Êîëè÷åñòâî âûâîäèìûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
extern bool ShowPitchfork_UpperTF = true; // Âêë/âûêë "Âèë Ýíäðþñà" ñòàðøåãî òàéìôðåéìà
//+---------------------------------------------------------------------------+
// ãëîáàëüíûå ïåðåìåííûå
int nBars_LowerTF = 0, // êîë-âî áàðîâ ìëàäøåãî òàôìôðåéìà
nBars_UpperTF = 0; // êîë-âî áàðîâ ñòàðøåãî òàôìôðåéìà
int QntPitchfork_Upper_LowerTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Lower_LowerTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Upper_UpperTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ âîñõîäÿùèõ "Âèë Ýíäðþñà"
int QntPitchfork_Lower_UpperTF= 0; // Êîëè÷åñòâî óæå îòðèñîâàííûõ íèñõîäÿùèõ "Âèë Ýíäðþñà"
//----- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+---------------------------------------------------------------------------+
void init() { // Custom indicator initialization function
int Qnt=ObjectsTotal();
// ----- Indicators Properties
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,119);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,119);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(1,0.0);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,117);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,117);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
// ----- Name for DataWindow and indicator subwindow label
IndicatorShortName("mv-i-TAACH_1_0");
SetIndexLabel(0,"FractalsUp.LowerTF");
SetIndexLabel(1,"FractalsDown.LowerTF");
SetIndexLabel(2,"FractalsUp.UpperTF");
SetIndexLabel(3,"FractalsDown.UpperTF");
return;
}
//+---------------------------------------------------------------------------+
void deinit() { // Custom indicator deinitialization function
int Qnt=ObjectsTotal();
// ----- Óäàëÿåì òðåíäîâûå ëèíèè
for (int i=0; i<Qnt; i++) { // Öèêë ïî îáúåêòàì
if(StringFind(ObjectName(i),"Pitchfork_Upper",0)>=0) {
ObjectDelete(ObjectName(i)); // íàïðàâëåííûå ââåðõ
i--; continue;
}
if(StringFind(ObjectName(i),"Pitchfork_Lower",0)>=0) {
ObjectDelete(ObjectName(i)); // íàïðàâëåííûå âíèç
i--; continue;
}
if(i>=ObjectsTotal()) break;
}
return;
}
//+---------------------------------------------------------------------------+
void start() { // Custom indicator iteration function
int counted_bars=IndicatorCounted();
int limit;
int Spred=(int)MarketInfo(Symbol(),MODE_SPREAD);
double Fractals_Upper=0,Fractals_Lower=0;
// ----- Ïðîâåðêà âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
if(!CheckParameters()) return;
// ----- íîâûé áàð íå ïîÿâèëñÿ
if(!isNewBar_LowerTF()) return;
// ----- Ïîñëåäíèé ïîñ÷èòàííûé áàð áóäåò ïåðåñ÷èòàí
if (counted_bars>0) counted_bars--;
limit=Bars-counted_bars; if(limit>500) limit=500;
// ----- Îñíîâíîé öèêë
for (int i=limit; i>=0; i--) {
//--------------------------------------------------------- 1 --
Fractals_Upper=iFractals(NULL,0,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,0,MODE_LOWER,i);
if(Fractals_Upper>0) {
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_LowerTF) {
if(DrawLowerPitchfork(i, 0)) {
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_LowerTF && i==0) {
Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
// ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
if(ShowFractals_LowerTF) {
ExtMapBuffer1[i]=Fractals_Upper+Spred*Point;
}
}
if(Fractals_Lower>0) {
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_LowerTF) {
if(DrawUpperPitchfork(i, 0)) {
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_LowerTF && i==0) {
Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
// ----- îòîáðàæàåì âðàêòàëû ìëàäøåãî òàéìôðåéìà
if(ShowFractals_LowerTF) {
ExtMapBuffer2[i]=Fractals_Lower-Spred*Point;
}
}
//--------------------------------------------------------- 2 --
Fractals_Upper=0;Fractals_Lower=0;
//--------------------------------------------------------- 3 --
// ----- ïîÿâèëñÿ íîâûé áàð ñòàðøåãî òàéìôðåéìà
if(isNewBar_UpperTF(Time[i])) {
Fractals_Upper=iFractals(NULL,TF_Upper,MODE_UPPER,nBars_UpperTF);
Fractals_Lower=iFractals(NULL,TF_Upper,MODE_LOWER,nBars_UpperTF);
if(Fractals_Upper>0) {
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè íèñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_UpperTF) {
if(DrawLowerPitchfork(nBars_UpperTF, TF_Upper)) {
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0) {
Alert(Symbol(),Period()," Íèñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
// ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
if(ShowFractals_UpperTF) {
ExtMapBuffer3[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Upper+Spred*Point;
}
}
if(Fractals_Lower>0) {
// ----- çäåñü íóæíî çàïóñòèòü ôóíêöèþ îòðèñîâêè âîñõîäÿùèõ "Âèë Ýíäðþñà"
if(ShowPitchfork_UpperTF) {
if(DrawUpperPitchfork(nBars_UpperTF, TF_Upper)) {
// ----- çäåñü àëåðò
if(OnAlert_Pitchfork_UpperTF && nBars_UpperTF==0) {
Alert(Symbol(),Period()," Âîñõîäÿùèå Âèëû Ýíäðþñà! ",TimeToStr(Time[i],TIME_DATE|TIME_SECONDS));
}
}
}
// ----- îòîáðàæàåì âðàêòàëû ñòàðøåãî òàéìôðåéìà
if(ShowFractals_UpperTF) {
ExtMapBuffer4[iBarShift(NULL,0,iTime(NULL,TF_Upper,nBars_UpperTF),false)]=Fractals_Lower-Spred*Point;
}
}
}
}
return;
}
//+---------------------------------------------------------------------------+
bool isNewBar_LowerTF() { // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ìëàäøåì òéàìôðåéìå
if(nBars_LowerTF!=Bars) {
nBars_LowerTF=Bars; return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool isNewBar_UpperTF(datetime DateTime_) { // Ôóíêöèÿ âîçâðàùàåò true, åñëè ïîÿâèòüñÿ íîâûé áàð íà ñòàðøåì òéàìôðåéìå
if(nBars_UpperTF!=iBarShift(NULL, TF_Upper, DateTime_, false)) {
nBars_UpperTF=iBarShift(NULL, TF_Upper, DateTime_, false); return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool DrawUpperPitchfork(int nBar, int TF=0) { // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò âîñõîäÿùèå "Âèëû Ýíäðþñà"
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- 1 --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for (i=nBar; i<Bars; i++) { // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ íèæíåãî ôðàêòàëà
if(j<3 && Fractals_Lower>0) {
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j<3 && Fractals_Upper>0) {
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j>3) break;
}
//--------------------------------------------------------- 2 --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_LOWER->MODE_UPPER->MODE_LOWER
if(StrToDouble(mFractals[0][2])==-1 && StrToDouble(mFractals[1][2])==1 && StrToDouble(mFractals[2][2])==-1) {
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0) {
if(QntPitchfork_Upper_LowerTF<nPitchfork_Upper_LowerTF) { // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF, OBJ_PITCHFORK, 0,
StrToTime(mFractals[2][0]), StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]), StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]), StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_COLOR,Red);
ObjectSet("Pitchfork_Upper_LowerTF"+(string)QntPitchfork_Upper_LowerTF,OBJPROP_STYLE,STYLE_DASH);
QntPitchfork_Upper_LowerTF++;
}
if(QntPitchfork_Upper_LowerTF>=nPitchfork_Upper_LowerTF) { // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for (i=0; i<=QntPitchfork_Upper_LowerTF-2; i++) {
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_LowerTF"+(string)(QntPitchfork_Upper_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0) {
if(QntPitchfork_Upper_UpperTF<nPitchfork_Upper_UpperTF) { // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF, OBJ_PITCHFORK, 0,
StrToTime(mFractals[2][0]), StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]), StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]), StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_COLOR,Red);
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Pitchfork_Upper_UpperTF"+(string)QntPitchfork_Upper_UpperTF,OBJPROP_WIDTH,2);
QntPitchfork_Upper_UpperTF++;
}
if(QntPitchfork_Upper_UpperTF>=nPitchfork_Upper_UpperTF) { // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for (i=0; i<=QntPitchfork_Upper_UpperTF-2; i++) {
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Upper_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Upper_UpperTF"+(string)(QntPitchfork_Upper_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool DrawLowerPitchfork(int nBar, int TF=0) { // Ôóíêöèÿ îïðåäåëÿåò è ðèñóåò íèñõîäÿùèå "Âèëû Ýíäðþñà"
double Fractals_Upper=0,Fractals_Lower=0;
string mFractals[3][3];
int i,j=0;
//--------------------------------------------------------- 1 --
// ----- îïðåäåëÿåì îïîðíûå òî÷êè
for (i=nBar; i<Bars; i++) { // Öèêë ïî áàðàì
Fractals_Upper=iFractals(NULL,TF,MODE_UPPER,i);
Fractals_Lower=iFractals(NULL,TF,MODE_LOWER,i);
// ----- ÂÀÆÍÎ! íà÷èíàåì ïðîâåðêó ñ âåðõíåãî ôðàêòàëà
if(j<3 && Fractals_Upper>0) {
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Upper,Digits);
mFractals[j][2]=(string)1;
j++;
}
if(j<3 && Fractals_Lower>0) {
mFractals[j][0]=TimeToStr(iTime(NULL,TF,i),TIME_DATE|TIME_MINUTES);
mFractals[j][1]=DoubleToStr(Fractals_Lower,Digits);
mFractals[j][2]=(string)-1;
j++;
}
if(j>3) break;
}
//--------------------------------------------------------- 2 --
// ------ ïðîâåðÿåì ïîñëåäîâòåëüíîñòü îïîðíûõ òî÷åê: MODE_UPPER->MODE_LOWER->MODE_UPPER
if(StrToDouble(mFractals[0][2])==1 && StrToDouble(mFractals[1][2])==-1 && StrToDouble(mFractals[2][2])==1) {
//--------------------------------------------------------- 1 --
// ----- ìëàäøèé òàéìôðåéì
if(TF==0) {
if(QntPitchfork_Lower_LowerTF<nPitchfork_Lower_LowerTF) { // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF, OBJ_PITCHFORK, 0,
StrToTime(mFractals[2][0]), StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]), StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]), StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_COLOR,Blue);
ObjectSet("Pitchfork_Lower_LowerTF"+(string)QntPitchfork_Lower_LowerTF,OBJPROP_STYLE,STYLE_DASH);
QntPitchfork_Lower_LowerTF++;
}
if(QntPitchfork_Lower_LowerTF>=nPitchfork_Lower_LowerTF) { // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for (i=0; i<=QntPitchfork_Lower_LowerTF-2; i++) {
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_LowerTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_LowerTF"+(string)(QntPitchfork_Lower_LowerTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
//--------------------------------------------------------- 2 --
// ----- ñòàðøèé òàéìôðåéì
if(TF!=0) {
if(QntPitchfork_Lower_UpperTF<nPitchfork_Lower_UpperTF) { // êîë-âî âèë íå ïðåâûøåíî, ðèñóåì íîâûå âèëû
ObjectCreate("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF, OBJ_PITCHFORK, 0,
StrToTime(mFractals[2][0]), StrToDouble(mFractals[2][1]),
StrToTime(mFractals[1][0]), StrToDouble(mFractals[1][1]),
StrToTime(mFractals[0][0]), StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_COLOR,Blue);
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_STYLE,STYLE_DASH);
ObjectSet("Pitchfork_Lower_UpperTF"+(string)QntPitchfork_Lower_UpperTF,OBJPROP_WIDTH,2);
QntPitchfork_Lower_UpperTF++;
}
if(QntPitchfork_Lower_UpperTF>=nPitchfork_Lower_UpperTF) { // êîë-âî âèë ïðåâûøåíî, èçìåíÿåì ïàðàìåòðû ïåðâûõ âèë
for (i=0; i<=QntPitchfork_Lower_UpperTF-2; i++) {
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME1));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE1,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE1));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME2));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE2,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE2));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_TIME3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_TIME3));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)i,OBJPROP_PRICE3,ObjectGet("Pitchfork_Lower_UpperTF"+(string)(i+1),OBJPROP_PRICE3));
}
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME1,StrToTime(mFractals[2][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE1,StrToDouble(mFractals[2][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME2,StrToTime(mFractals[1][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE2,StrToDouble(mFractals[1][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_TIME3,StrToTime(mFractals[0][0]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_PRICE3,StrToDouble(mFractals[0][1]));
ObjectSet("Pitchfork_Lower_UpperTF"+(string)(QntPitchfork_Lower_UpperTF-1),OBJPROP_STYLE,STYLE_SOLID);
}
}
return(true);
}
return(false);
}
//+---------------------------------------------------------------------------+
bool CheckParameters() { // Ôóíêöèÿ ïðîâåðêè âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà
string TextMessage;
if(nPitchfork_Upper_LowerTF<1 || nPitchfork_Lower_LowerTF<1 ||
nPitchfork_Upper_UpperTF<1 || nPitchfork_Lower_UpperTF<1 ) {
TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
"Êîëè÷åñòâî âèë íå ìîãåò áûòü <(ìåíüøå) 1";
Alert(TextMessage);
return(false);
}
if(TF_Upper<=Period()) {
TextMessage="Íåâåðíûå çíà÷åíèÿ âíåøíèõ ïàðàìåòðîâ èíäèêàòîðà!"+
"Çíà÷åíèå ñòàðøåãî òàéìôðåéìà äîëæíî áûòü >(áîëüøå) òåêóùåãî!";
Alert(TextMessage);
return(false);
}
return(true);
}
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
---