
رد: طلب مساعدة الأستاذ سمير لبرمجة مؤشر الخطوط دعوم ومقامة سحرية
كود:
//+------------------------------------------------------------------+
//| Hassane Dabai.mq4 |
//| Copyright 2012, Datadress Inc. |
//| http://www.datagress.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Datadress Inc."
#property link "http://www.datagress.com"
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Lime //bbMacd up
#property indicator_color2 Magenta //bbMacd up
#property indicator_color3 Gold //Upperband
#property indicator_color4 Yellow //Lowerband
//--- input parameters
//--- buffers
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorDigits(Digits+14);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
/* Open Prices for last Week days **************************************************************************/
double d0 = iOpen(NULL, PERIOD_D1, 0); //today
double d1 = iOpen(NULL, PERIOD_D1, 1);
//double d0 = 0.9139;
//double d1 = 0.9042;
double d2 = iOpen(NULL, PERIOD_D1, 2);
double d3 = iOpen(NULL, PERIOD_D1, 3);
double d4 = iOpen(NULL, PERIOD_D1, 4);
double d5 = iOpen(NULL, PERIOD_D1, 5);
double d6 = iOpen(NULL, PERIOD_D1, 6);
double d7 = iOpen(NULL, PERIOD_D1, 7);
/* Casting to get the long value of number ******************************************************************/
string d0s = DoubleToStr(d0, Digits + 14);
string d1s = DoubleToStr(d1, Digits + 14);
string d2s = DoubleToStr(d2, Digits + 14);
string d3s = DoubleToStr(d3, Digits + 14);
string d4s = DoubleToStr(d4, Digits + 14);
string d5s = DoubleToStr(d5, Digits + 14);
string d6s = DoubleToStr(d6, Digits + 14);
string d7s = DoubleToStr(d7, Digits + 14);
/* Converting to double to prepare for math operations *******************************************************/
double d0d = StrToDouble(d0s);
double d1d = StrToDouble(d1s);
double d2d = StrToDouble(d2s);
double d3d = StrToDouble(d3s);
double d4d = StrToDouble(d4s);
double d5d = StrToDouble(d5s);
double d6d = StrToDouble(d6s);
double d7d = StrToDouble(d7s);
/* Converting to double to prepare for math operations *******************************************************/
double DNL0 = d0d/d1d;
double DNL1 = d1d/d2d;
double DNL2 = d2d/d3d;
double DNL3 = d3d/d4d;
double DNL4 = d4d/d5d;
double DNL5 = d5d/d6d;
double DNL6 = d6d/d7d;
// Getting the logarithms of day prices
string DNLs0 = DoubleToStr(MathLog(DNL0), Digits + 14);
string DNLs1 = DoubleToStr(MathLog(DNL1), Digits + 14);
string DNLs2 = DoubleToStr(MathLog(DNL2), Digits + 14);
string DNLs3 = DoubleToStr(MathLog(DNL3), Digits + 14);
string DNLs4 = DoubleToStr(MathLog(DNL4), Digits + 14);
string DNLs5 = DoubleToStr(MathLog(DNL5), Digits + 14);
string DNLs6 = DoubleToStr(MathLog(DNL6), Digits + 14);
//
double DNLd0 = StrToDouble(DNLs0);
double DNLd1 = StrToDouble(DNLs1);
double DNLd2 = StrToDouble(DNLs2);
double DNLd3 = StrToDouble(DNLs3);
double DNLd4 = StrToDouble(DNLs4);
double DNLd5 = StrToDouble(DNLs5);
double DNLd6 = StrToDouble(DNLs6);
//
double DNLsd0 = DNLd0*DNLd0;
double DNLsd1 = DNLd1*DNLd1;
double DNLsd2 = DNLd2*DNLd2;
double DNLsd3 = DNLd3*DNLd3;
double DNLsd4 = DNLd4*DNLd4;
double DNLsd5 = DNLd5*DNLd5;
double DNLsd6 = DNLd6*DNLd6;
//
string SQR0 = DoubleToStr(DNLsd0, Digits + 14);
string SQR1 = DoubleToStr(DNLsd1, Digits + 14);
string SQR2 = DoubleToStr(DNLsd2, Digits + 14);
string SQR3 = DoubleToStr(DNLsd3, Digits + 14);
string SQR4 = DoubleToStr(DNLsd4, Digits + 14);
string SQR5 = DoubleToStr(DNLsd5, Digits + 14);
string SQR6 = DoubleToStr(DNLsd6, Digits + 14);
//
double SQRd0 = StrToDouble(SQR0);
double SQRd1 = StrToDouble(SQR1);
double SQRd2 = StrToDouble(SQR2);
double SQRd3 = StrToDouble(SQR3);
double SQRd4 = StrToDouble(SQR4);
double SQRd5 = StrToDouble(SQR5);
double SQRd6 = StrToDouble(SQR6);
//
string DNLAVGs = DoubleToStr((DNLd0+DNLd1+DNLd2+DNLd3+DNLd4+DNLd5)/7, Digits + 14);
double DNLAVG = StrToDouble(DNLAVGs);
string SQRAVGs = DoubleToStr((SQRd0+SQRd1+SQRd2+SQRd3+SQRd4+SQRd5+0)/7, Digits + 14);
double SQRAVG = StrToDouble(DNLAVGs);
string CHRs = DoubleToStr(SQRAVG - (DNLAVG*DNLAVG), Digits + 14);
double CHR = StrToDouble(CHRs);
string CHDs = DoubleToStr((CHR*CHR)*100, Digits + 14);
double CHD = StrToDouble(CHDs);
string CHAs = DoubleToStr(CHD*(365*365), Digits + 14);
double CHA = StrToDouble(CHAs);
string CHDNs = DoubleToStr(CHD/(100*d1d), Digits + 14);
double CHDN = StrToDouble(CHDNs);
string SL1s = DoubleToStr((d1d+0.382*CHDN*10000), Digits + 14);//*10000
double SL1 = StrToDouble(SL1s);
string SL2s = DoubleToStr(d1d+CHDN, Digits + 14);
double SL2 = StrToDouble(SL2s);
//----
Comment("\nToday\'s Opening:\t ", d0s, "\nYesterday\'s Opening:\t ", d1s, "\nBefore Yesterday\'s Opening:\t ", d2s,
"\n\nDNL: ",DNLs0,"\nSQR: ",SQR0,"\nDNLAVG: ",DNLAVGs,"\nSQRAVG: ",SQRAVGs,
"\nCHR: ",CHRs,"\nCHD: ",CHDs,"\nCHA: ",CHAs,"\nCHDN: ",CHDNs,"\nSL1: ",SL1s,"\nSL2: ",SL2s);
//----
return(0);
}
//+------------------------------------------------------------------+ http://forum.borsaat.com/uploaded/266187_1344475697.rar