Codice: Seleziona tutto
bool isNewCandle(){
//TRUE nuova candela
//FALSE vecchia candela
bool v_isNewCandle = false;
//se la candela restituita è la 0 è quella già memorizzata
int v_shift = iBarShift(NULL, 0, g_lastCandleOpenTime, true);
if (v_shift == 0)
v_isNewCandle = false;
else{
v_isNewCandle = true;
//memorizzo l'orario della nuova candela
g_lastCandleOpenTime = Time[0];
}
return (v_isNewCandle);
}
for(int j = 0; j <= limit; j++)
{
mainnow = iStochastic(NULL,1,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,0,j);
mainprevious = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,0,j+1);
//mainafter = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,0,j-1);
signalnow = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,1,j);
signalprevious = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,1,j+1);
// signalafter = iStochastic(NULL,0,KPeriod1,DPeriod1,Slowing1,MAMethod1,PriceField1,1,j-1);
if( isNewCandle() && (mainnow > signalnow));// && (mainprevious < signalprevious) && (mainafter < signalafter) )//&&(signalnow<21)&& (mainnow<21))
{
Print(" incrocio Time = " + TimeToStr(CurTime(),TIME_DATE)+" " + TimeHour(CurTime())+":"+ TimeMinute(CurTime()));
Print("Valore Main: " + mainnow + "; Valore signal:" + signalnow + Symbol());
/* if(ObjectFind("etichetta") == -1){
//DrawAllert("etichetta","incrocio Time = "+ TimeToStr(CurTime(),TIME_DATE)+" " + TimeHour(CurTime())+":"+ TimeMinute(CurTime()),10,10,Green);
Print("incrocio Time = "+ TimeToStr(CurTime(),TIME_DATE)+" " + TimeHour(CurTime())+":"+ TimeMinute(CurTime())")
}
else{
}
}
return (0);
}
Il print dopo un incrocio viene printato ad ogni "tick"(allego screenshoot) e non come servirebbe a me 1 volta quando si crea la nuova barra dopo l'incrocio come dovrebbe fare visto la funzione "isNewCandle()"che ho messo nell'if.
Ringrazio anticipatamente