[MT4指标]camarilladt密集阻力支持线
主图指标
mt4指标类型:趋势指标
是否能用在mt4手机版上:否
是否含有未来函数:无
//+------------------------------------------------------------------+
//| camarilladt.mq4 |
//| Copyright ? 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#include
#property indicator_chart_window
//---- input parameters
extern bool Alerts = false;
extern double GMTshiftSun=0; //sun into mon cams use this corrected value for fri data
extern double GMTshift=1;
extern bool Pivot = true;
extern bool CamTargets = true;
extern bool ListCamTargets = true;
extern color PivotColor = LimeGreen;
extern color PivotFontColor = White;
extern int PivotFontSize = 8;
extern int PivotWidth = 1;
extern int PipDistance = 20;
extern color CamFontColor = Gray;
extern int CamFontSize = 10;
extern bool Fibs = true;
extern color FibColorRes = SeaGreen;
extern color FibColorSup = Brown;
extern color FibFontColor = Gray;
extern int FibFontSize = 8;
extern bool DisplayFibLevels_1_3 = false;
extern double FibLevel1 = 0.236;
extern double FibLevel2 = 0.382;
extern double FibLevel3 = 0.50;
extern bool DisplayFibLevels_4_6 = true;
extern double FibLevel4 = 0.618;
extern double FibLevel5 = 0.764;
extern double FibLevel6 = 0.99;
extern bool DisplayFibLevels_7_16 = true;
extern double FibLevel7 = 1.27;
extern double FibLevel8 = 1.618;
extern double FibLevel9 = 1.99;
extern double FibLevel10 = 2.236;
extern double FibLevel11 = 2.618;
extern double FibLevel12 = 2.99;
extern double FibLevel13 = 3.236;
extern double FibLevel14 = 3.618;
extern double FibLevel15 = 3.99;
extern double FibLevel16 = 4.236;
extern bool StandardPivots = true;
extern bool ListStandardPivots = true;
extern color StandardFontColor = Gray;
extern int StandardFontSize = 8;
extern color SupportColor = Brown;
extern color ResistanceColor = SeaGreen;
extern bool MidPivots = false;
extern color MidPivotColor = White;
extern int MidFontSize = 8;
double P, H3, H4, H5;
double L3, L4, L5;
double LastHigh,LastLow,x;
bool firstL3=true;
bool firstH3=true;
double D1=0.091667;
double D2=0.183333;
double D3=0.2750;
double D4=0.55;
// Fib variables
double yesterday_high=0;
double yesterday_low=0;
double yesterday_close=0;
double p=0;
double r1=0,r2=0,r3=0,r4=0,r5=0,r6=0,r7=0,r8=0,r9=0,r10=0,r11=0,r12=0,r13=0,r14=0,r15=0,r16=0;
double s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0,s8=0,s9=0,s10=0,s11=0,s12=0,s13=0,s14=0,s15=0,s16=0;
double R;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
if (Fibs)
{ObjectDelete("FibR1 Label");
ObjectDelete("FibR1 Line");
ObjectDelete("FibR2 Label");
ObjectDelete("FibR2 Line");
ObjectDelete("FibR3 Label");
ObjectDelete("FibR3 Line");
ObjectDelete("FibR4 Label");
ObjectDelete("FibR4 Line");
ObjectDelete("FibR5 Label");
ObjectDelete("FibR5 Line");
ObjectDelete("FibR6 Label");
ObjectDelete("FibR6 Line");
ObjectDelete("FibR7 Label");
ObjectDelete("FibR7 Line");
ObjectDelete("FibR8 Label");
ObjectDelete("FibR8 Line");
ObjectDelete("FibR9 Label");
ObjectDelete("FibR9 Line");
ObjectDelete("FibR10 Label");
ObjectDelete("FibR10 Line");
ObjectDelete("FibR11 Label");
ObjectDelete("FibR11 Line");
ObjectDelete("FibR12 Label");
ObjectDelete("FibR12 Line");
ObjectDelete("FibR13 Label");
ObjectDelete("FibR13 Line");
ObjectDelete("FibR14 Label");
ObjectDelete("FibR14 Line");
ObjectDelete("FibR15 Label");
ObjectDelete("FibR15 Line");
ObjectDelete("FibR16 Label");
ObjectDelete("FibR16 Line");
ObjectDelete("FibS1 Label");
ObjectDelete("FibS1 Line");
ObjectDelete("FibS2 Label");
ObjectDelete("FibS2 Line");
ObjectDelete("FibS3 Label");
ObjectDelete("FibS3 Line");
ObjectDelete("FibS4 Label");
ObjectDelete("FibS4 Line");
ObjectDelete("FibS5 Label");
ObjectDelete("FibS5 Line");
ObjectDelete("FibS6 Label");
ObjectDelete("FibS6 Line");
ObjectDelete("FibS7 Label");
ObjectDelete("FibS7 Line");
ObjectDelete("FibS8 Label");
ObjectDelete("FibS8 Line");
ObjectDelete("FibS9 Label");
ObjectDelete("FibS9 Line");
ObjectDelete("FibS10 Label");
ObjectDelete("FibS10 Line");
ObjectDelete("FibS11 Label");
ObjectDelete("FibS11 Line");
ObjectDelete("FibS12 Label");
ObjectDelete("FibS12 Line");
ObjectDelete("FibS13 Label");
ObjectDelete("FibS13 Line");
ObjectDelete("FibS14 Label");
ObjectDelete("FibS14 Line");
ObjectDelete("FibS15 Label");
ObjectDelete("FibS15 Line");
ObjectDelete("FibS16 Label");
ObjectDelete("FibS16 Line");
}
if (Pivot)
{
ObjectDelete("P Label");
ObjectDelete("P Line");
}
if (CamTargets)
{
ObjectDelete("H5 Label");
ObjectDelete("H5 Line");
ObjectDelete("H4 Label");
ObjectDelete("H4 Line");
ObjectDelete("H3 Label");
ObjectDelete("H3 Line");
ObjectDelete("L3 Label");
ObjectDelete("L3 Line");
ObjectDelete("L4 Label");
ObjectDelete("L4 Line");
ObjectDelete("L5 Label");
ObjectDelete("L5 Line");
}
//----
if (StandardPivots)
{
ObjectDelete("R1 Label");
ObjectDelete("R1 Line");
ObjectDelete("R2 Label");
ObjectDelete("R2 Line");
ObjectDelete("R3 Label");
ObjectDelete("R3 Line");
ObjectDelete("R4 Label");
ObjectDelete("R4 Line");
ObjectDelete("R5 Label");
ObjectDelete("R5 Line");
ObjectDelete("S1 Label");
ObjectDelete("S1 Line");
ObjectDelete("S2 Label");
ObjectDelete("S2 Line");
ObjectDelete("S3 Label");
ObjectDelete("S3 Line");
ObjectDelete("S4 Label");
ObjectDelete("S4 Line");
ObjectDelete("S5 Label");
ObjectDelete("S5 Line");
}
if (MidPivots)
{
ObjectDelete("M5 Label");
ObjectDelete("M5 Line");
ObjectDelete("M4 Label");
ObjectDelete("M4 Line");
ObjectDelete("M3 Label");
ObjectDelete("M3 Line");
ObjectDelete("M2 Label");
ObjectDelete("M2 Line");
ObjectDelete("M1 Label");
ObjectDelete("M1 Line");
ObjectDelete("M0 Label");
ObjectDelete("M0 Line");
}
return(0);
}
int DoAlerts()
{
double DifAboveL3,PipsLimit;
double DifBelowH3;
DifBelowH3 = H3 - Close[0];
DifAboveL3 = Close[0] - L3;
PipsLimit = PipDistance*Point;
if (DifBelowH3 > PipsLimit) firstH3 = true;
if (DifBelowH3 <= PipsLimit && DifBelowH3 > 0)
{
if (firstH3)
{
Alert("Below Cam H3 Line by ",DifBelowH3, " for ", Symbol(),"-",Period());
PlaySound("alert.wav");
firstH3=false;
}
}
if (DifAboveL3 > PipsLimit) firstL3 = true;
if (DifAboveL3 <= PipsLimit && DifAboveL3 > 0)
{
if (firstL3)
{
Alert("Above Cam L3 Line by ",DifAboveL3," for ", Symbol(),"-",Period());
Sleep(2000);
PlaySound("timeout.wav");
firstL3=false;
}
}
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- TODO: add your code here
double day_high=0;
double day_low=0;
double yesterday_open=0;
double today_open=0;
double Q=0,S=0,R=0,M2=0,M3=0,S1=0,R1=0,M1=0,M4=0,S2=0,R2=0,M0=0,M5=0,S3=0,R3=0,nQ=0,nD=0,D=0,R4=0,S4=0,R5=0,S5=0;
double shift_corrected;
int cnt=720;
double cur_day=0;
double prev_day=0;
double rates_d1[2][6];
//---- exit if period is greater than daily charts
if(Period() > 1440)
{
Print("Error - Chart period is greater than 1 day.");
return(-1); // then exit
}
//---- Get new daily prices & calculate pivots
if (DayOfWeek()==1) shift_corrected=GMTshiftSun;
else if ((DayOfWeek()==2) && (Minute() >= 5)) shift_corrected=GMTshift;
//else if ((DayOfWeek()==2) && (Hour() > GMTshift)) shift_corrected=GMTshift;
else shift_corrected=GMTshift;
while (cnt!= 0)
{
camarilladt7v11.jpg
