leggi 41 sul grafico, che corrisponde a 4.1 pip : Metatrader ti fa vedere i Point che molto spesso corrisponde a 0.1 pip
Announcement
Collapse
No announcement yet.
Problema per uscire da un ciclo
Collapse
X
-
però dall'immagine grafica non sembra che la distanza sia 41 questo vogliodire
Leave a comment:
-
Originally posted by texcs View Post
Distanza tra le medie: è la distanza tra le medie al momento del segnale
Distanza extern: è la distanza Inserita dall'esterno
nell'allegato la distanza tra le medie era 41
La distanza extern era 3 però dove c'è l'ultimo segnale (freccia rossa) nn mi pare che la distanza sia 41
è corretto che se la distanza tra le medie è 41 ci sia il segnale, essendo 41 > 3
Leave a comment:
-
Originally posted by texcs View Postextern distanza5 = 5
ho sistemaato le condizioni così:
PHP Code:extern distanza5 = 5
double pipsMAbuy5 = (int)MathFloor( MathAbs(ImaVeloce5-ImaLenta5)/(_Point) );
double pipsMAsell5 = (int)MathFloor( MathAbs(ImaVeloce5-ImaLenta5)/(_Point) );
if ((MA1now5 > MA2now5) && (MA1previous5 < MA2previous5) && (MA1after5 > MA2after5)&&(pipsMAbuy5>=(Distanza5))) CrossUp5[i5] = Low[i5] - Range5 * 1.5;
else if ((MA1now5 < MA2now5) && (MA1previous5 > MA2previous5) && (MA1after5 < MA2after5)&&(pipsMAsell5>=Distanza5)) CrossDown5[i5] = High[i5] + Range5*1.5;
avete idee?
PHP Code:Comment("\nUltimo Segnale \nRialzista su "+Symbol()+" a TF "+IntegerToString(Period(),0,0)+" \nBuy at: "+ Low[i5] + "\nDistanza tra le medie: "+ pipsMAbuy5 +"\nDistanza extern: "+ distanza +"\nStop :" + Low[i5+1]+
"\nIma Fast: " + ImaVeloce5 + "\nImaSlow" + ImaLenta5 +"\nLotSize:"+ CalcoloSize(Low[i5+1]* Point));
Distanza tra le medie: è la distanza tra le medie al momento del segnale
Distanza extern: è la distanza Inserita dall'esterno
nell'allegato la distanza tra le medie era 41
La distanza extern era 3 però dove c'è l'ultimo segnale (freccia rossa) nn mi pare che la distanza sia 41
Come mai avete idee?
Attached Files
Leave a comment:
-
io, in questi casi in cui non so se ho scritto bene i valori delle formule,
stampo con Print(...) ogni variabile, il valore di ciascuna media, la differenza delle medie, qualsiasi altra variabile, distanza5, range5, high[i5], ecc.
al fine di verificare manualmente se sto facendo delle IF che possono funzionare o mi sto dimenticando qualche moltiplicatore (es. point) da qualche parte.
Inoltre calcolo da me sul grafico con il cursore quanti sono i pip in quel punto così da sapere che valori mi devo aspettare di trovare con le formule.
Leave a comment:
-
extern distanza5 = 5
ho sistemaato le condizioni così:
PHP Code:extern distanza5 = 5
double pipsMAbuy5 = (int)MathFloor( MathAbs(ImaVeloce5-ImaLenta5)/(_Point) );
double pipsMAsell5 = (int)MathFloor( MathAbs(ImaVeloce5-ImaLenta5)/(_Point) );
if ((MA1now5 > MA2now5) && (MA1previous5 < MA2previous5) && (MA1after5 > MA2after5)&&(pipsMAbuy5>=(Distanza5))) CrossUp5[i5] = Low[i5] - Range5 * 1.5;
else if ((MA1now5 < MA2now5) && (MA1previous5 > MA2previous5) && (MA1after5 < MA2after5)&&(pipsMAsell5>=Distanza5)) CrossDown5[i5] = High[i5] + Range5*1.5;
avete idee?
Leave a comment:
-
si appunto e poi perchè non segue questa condizion"&(pipsMAbuy5>=Distanza5 * _Point) "
Leave a comment:
-
Che ti stampi la distanza tra le medie = 0
credo sia un errore: è difficile che le due medie abbiano lo stesso esatto valore in quel punto in cui calcoli la distanza tra di loro.
Leave a comment:
-
Allora ho modificato il codice in questo modo
PHP Code:if ((MA1now5 > MA2now5) && (MA1previous5 < MA2previous5) && (MA1after5 > MA2after5)&&(pipsMAbuy5>=Distanza5 * _Point) ) CrossUp5[i5] = Low[i5] - Range5 * 1.5;
cerchio nero) la distanza tra le medie è 0 (e mi da ugualmente il segnale anche se non è >=5).
C'e anche questo che non mi spiego nei commenti la distanza delle medie è 0 invece nella didascalia puntando la freccia del segnale cerchio rosso mi dà 118.5782, questo è il codice
PHP Code:Comment("Ultimo Segnale Rialzista su "+Symbol()+" a TF "+IntegerToString(Period(),0,0)+" \nBuy at: "+ Low[i5] + "\nDistanza tra le medie: "+ pipsMAbuy5 +"\nDistanza extern: "+ Distanza5 +"\nStop :" + Low[i5+1]+ "\nIma Fast: " + ImaVeloce5 + "\nImaLenta" + ImaLenta5);
SetIndexLabel(2," \nBuy at: "+ Low[i5] + "\nDistanza medie: "+ pipsMAbuy5 +"\nDistanza extern: "+ Distanza5+ "\nStop :" + Low[i5+1]);
grazie!Forum.jpg
Leave a comment:
-
If (mediaA[1] - mediaB[1] > pipsMAbuy) Compra();
[1] è la barra appena conclusa
Leave a comment:
-
Grazie, ora volevo un 'altra delucidazione, in questo modo la funzione mi segnala l'incrocio delle medie,
inserendo questa pezzo
PHP Code:((pipsMAsell == intRastvor &..................
PHP Code:((pipsMAbuy == intRastvor &.................
dove "intRastvor" è una variabile esterna vorre farmi dare il segnale qundo la distanza tra una media e l'altra c'è una distanza che vale "intRastvor".
però cosi nn funziona ........... idee per sistemarlo
Leave a comment:
-
l'unico eventuale buco logico che vedo sono le due funzioni separate
AllertoPerIlRialzo();
AllertoPerIlRibasso();
non so cosa fanno,
fai in modo di usarne una sola che si allerta sia per il buy che per il sell, facendo quel che devono fare per uno o l'altro segnale
Leave a comment:
-
Originally posted by texcs View PostPHP Code:
if (MedieCicliche(Rastvor)==+1)
{
if (BuySell !=+1){
// Comment("Buy " + buy + pipsMAbuy+ "\nPips"+ "\nRastvor" + Rastvor);
AllertoPerIlRialzo();
BuySell =+1;
}
}
else if(MedieCicliche(Rastvor)==-1)
{
if (BuySell !=-1)
{
// Comment("\nSell " +sell+ "\nPips" + pipsMAsell+ "\nRastvor" + Rastvor);
AllertoPerIlRibasso();
BuySell =-1;
}
}
qualche idee in merito?
se MedieCicliche dice RIALZO
e non è già allertato il rialzo (if (BuySell !=+1))
AllertoPerIlRialzo();
BuySell =+1;
quindi alla successiva interrogazione di
if (MedieCicliche(Rastvor)==+1)
essendo BuySell =+1
non viene richiamata la funzione AllertoPerIlRialzo();
Leave a comment:
-
Problema per uscire da un ciclo
PHP Code:int MedieCicliche(double intRastvor)
{
// Per convenzione si usa
// +1 = BUY
// 0 = Tutto bene, ma non fa niente
// -1 = SELL
double MediaVeloceDayBuffer[], MediaLentaDayBuffer[],MediaVeloceDefaultBuffer[],MediaLentaDefaultBuffer[],
ImaVeloceDefault, ImaLentaDefault, ImaVeloceDay, ImaLentaDay,
ImaVelocePrecDay, ImaVelocePrecDefault,ImaLentaPrecDay, ImaLentaPrecDefault;
ImaVelocePrecDefault = iMA(NULL,0, MediaVelocePeriod , 0, 0, 0, 1);//fuschia
ImaLentaPrecDefault = iMA(NULL,0, MediaLentaPeriod , 0, 0, 0, 1);//arancio
ImaVeloceDefault = iMA(NULL,0, MediaVelocePeriod , 0, 0, 0, 0);//fuschia
ImaLentaDefault = iMA(NULL,0, MediaLentaPeriod , 0, 1, 0, 0);//arancio
pipsMAbuy = (int)MathFloor( MathAbs(ImaVeloceDefault-ImaLentaDefault)/(_Point) );
pipsMAsell = (int)MathFloor( MathAbs(ImaVeloceDefault-ImaLentaDefault)/(_Point) );
if (pipsMAbuy == intRastvor &&ImaVeloceDefault<ImaLentaDefault )//((ImaVelocePrecDefault < ImaLentaDefault) && (ImaVeloceDefault > ImaLentaDefault + intRastvor * Point))
{
buy++;
Comment("Buy " + buy + "\nPips"+ pipsMAbuy+ "\nRastvor" + Rastvor);
return +1; //Long
}
if ((pipsMAsell == intRastvor &&ImaVeloceDefault<ImaLentaDefault ))//((ImaVelocePrecDefault > ImaLentaDefault) && (ImaVeloceDefault < ImaLentaDefault + intRastvor * Point))
{
sell++;
Comment("Buy " + buy + "\nPips"+pipsMAsell+ "\nRastvor" + Rastvor);
return -1; //Short
}
return 0;
}
PHP Code:
if (MedieCicliche(Rastvor)==+1)
{
if (BuySell !=+1){
// Comment("Buy " + buy + pipsMAbuy+ "\nPips"+ "\nRastvor" + Rastvor);
AllertoPerIlRialzo();
BuySell =+1;
}
}
else if(MedieCicliche(Rastvor)==-1)
{
if (BuySell !=-1)
{
// Comment("\nSell " +sell+ "\nPips" + pipsMAsell+ "\nRastvor" + Rastvor);
AllertoPerIlRibasso();
BuySell =-1;
}
}
qualche idee in merito?
Tags: None
Leave a comment: