int ToccoMedia(int mediaPer)
{
double Ima;int BuySell = 0;
Ima = iMA(Symbol(),Period(),mediaPer,0,0,0,0);
if (iStochastic(NULL,0,StocasticKPeriod,StocasticDPer iod,StocasticSlowingPeriod,MODE_SMA,0,MODE_MAIN,0) <
iStochastic(NULL,0,StocasticKPeriod,StocasticDPeri od,StocasticSlowingPeriod,MODE_SMA,0,MODE_SIGNAL,0 ))//buy
{
if ((Low[2] < Ima) && (High[2] > Ima ) && (Low[1] < Ima) && (Open[1] > Ima ))// && Low[0] > Ima && Open[0] > Ima)//buy
{
AllertoPerIlRialzo();
Comment("su");
}
}
if (iStochastic(NULL,0,StocasticKPeriod,StocasticDPer iod,StocasticSlowingPeriod,MODE_SMA,0,MODE_MAIN,0) >
iStochastic(NULL,0,StocasticKPeriod,StocasticDPeri od,StocasticSlowingPeriod,MODE_SMA,0,MODE_SIGNAL,0 ))//sell
{
if ((High[2] > Ima) && (Low[1] < Ima) && (High [1] > Ima)&& (Open[1] < Ima))
{
AllertoPerIlRibasso();
Comment("Giu");
}
}
return 0;
}
int start()
{
int limit;
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;
//---- main loop
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 because SetIndexShift called abowe
MediaBuffer[i]=iMA(NULL,0,mediaPeriod,0,0,0,i);
ima=MediaBuffer[i];
}
if(barTemp!=Bars)
{
//BrekoutMediaMobile(mediaPeriod);
ToccoMedia(mediaPeriod);
}
//---- done
return(0);
}
Ciao a tutti ho un problema di logica che mi sono trovato ad affrontare più volte ma nn mi sono dato una risposta, vi spiego,
questa funzione un segnale per il buy e uno per il sell li problema è che dopo entrato nella condizione buy o sell mi continua a dare il segnale ogni candela invece io
vorrei che me lo segnalasse solo alla prima candela che si presenta la condizione,
mi potete dare idee?
{
double Ima;int BuySell = 0;
Ima = iMA(Symbol(),Period(),mediaPer,0,0,0,0);
if (iStochastic(NULL,0,StocasticKPeriod,StocasticDPer iod,StocasticSlowingPeriod,MODE_SMA,0,MODE_MAIN,0) <
iStochastic(NULL,0,StocasticKPeriod,StocasticDPeri od,StocasticSlowingPeriod,MODE_SMA,0,MODE_SIGNAL,0 ))//buy
{
if ((Low[2] < Ima) && (High[2] > Ima ) && (Low[1] < Ima) && (Open[1] > Ima ))// && Low[0] > Ima && Open[0] > Ima)//buy
{
AllertoPerIlRialzo();
Comment("su");
}
}
if (iStochastic(NULL,0,StocasticKPeriod,StocasticDPer iod,StocasticSlowingPeriod,MODE_SMA,0,MODE_MAIN,0) >
iStochastic(NULL,0,StocasticKPeriod,StocasticDPeri od,StocasticSlowingPeriod,MODE_SMA,0,MODE_SIGNAL,0 ))//sell
{
if ((High[2] > Ima) && (Low[1] < Ima) && (High [1] > Ima)&& (Open[1] < Ima))
{
AllertoPerIlRibasso();
Comment("Giu");
}
}
return 0;
}
int start()
{
int limit;
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;
//---- main loop
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 because SetIndexShift called abowe
MediaBuffer[i]=iMA(NULL,0,mediaPeriod,0,0,0,i);
ima=MediaBuffer[i];
}
if(barTemp!=Bars)
{
//BrekoutMediaMobile(mediaPeriod);
ToccoMedia(mediaPeriod);
}
//---- done
return(0);
}
Ciao a tutti ho un problema di logica che mi sono trovato ad affrontare più volte ma nn mi sono dato una risposta, vi spiego,
questa funzione un segnale per il buy e uno per il sell li problema è che dopo entrato nella condizione buy o sell mi continua a dare il segnale ogni candela invece io
vorrei che me lo segnalasse solo alla prima candela che si presenta la condizione,
mi potete dare idee?
Comment