Codice: Seleziona tutto
void DrawAllert(string text, color C=LightGray)
{
ObjectCreate ("rect",OBJ_LABEL,0,0,0,0,0);
ObjectSet ("rect",OBJPROP_XDISTANCE,10);
ObjectSet ("rect",OBJPROP_YDISTANCE,20);
ObjectSetText ("rect",text,10,"Times New Roman",C);
}
bool IperComp (double stochastic1now, double signal1now, double LimitUpIperComp, double LimitDownIperComp)
{
if ((stochastic1now && signal1now < LimitUpIperComp) && ( stochastic1now && signal1now > LimitDownIperComp) )
return 1;
else
return 0;
}
bool IperVend (double stochastic1now, double signal1now, double LimitUpIperVend, double LimitDownIperVend){
if ((stochastic1now && signal1now > LimitDownIperVend) && ( stochastic1now && signal1now < LimitUpIperVend))
return 1;
else
return 0;
}
int start() {
int limit, i; //counter;
double stochastic1now, stochastic1previous, stochastic2previous, stochastic1after, signal1previous, signal1now;
//double stochastic2after,;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
bool iperVenduto=false, iperComprato=false;
for(i = 0; i < limit; i++) {
stochastic1now = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,0,1,0,i); //Stocastic ora
signal1now = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,0,1,MODE_SIGNAL,i); //Segnale ora
stochastic1previous = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,0,1,0,i+1); //Stocastic precedente
signal1previous = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,0,1,MODE_SIGNAL,i+1); //Segnale precedente
if (IperComp(stochastic1now,signal1now,LimitUpIpercompr,LimitDownIpercompr))
{
iperComprato = true;
}
if (IperVend(stochastic1now,signal1now,LimitUpIpervend,LimitDownIpervend))
{
iperVenduto=true;
}
}
if (iperComprato=true)
DrawAllert("Gli stocastici sono in zona ipercomprato Stoc:"+ stochastic1now + "Signal:"+ signal1now, Red);
else if (iperVenduto=true)
DrawAllert("Gli stocastici sono in zona ipervenduto Stoc:"+ stochastic1now + "Signal:"+ signal1now, Red);
l'indicatore di default di MT mi un valore diverso dal valore che mi da l'indicatore del che ho fatto io, dov'è l'errore? come correggerlo?