Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
MetaTrader et le carnet d'ordres
Ok, je dois dire que les variables prédéfinies "Ask" et "Bid" stockent les meilleurs ordres actuellement... Mais qu'en est-il des autres niveaux et lots du carnet d'ordres ? Puis-je quand même utiliser ces données dans mon code ?
S'il vous plaît aidez-moi, j'ai cherché beaucoup partout sur le web mais je n'ai pas trouvé la réponse.
prota
Une petite question...
Mec, si je fais le gras, je n'ai pas besoin de faire le souligné, c'est ça ?
if(Ask>=Line1)
{
posisi=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slipage,0,0, "OneLineEA ver 1.0",Megic,0,Green) ;
if(OrderSelect(posisi,SELECT_BY_TICKET)==true)
{
posisi=OrderTicket() ;
}
}
Aidez-moi, s'il vous plaît
HI codersguru
Merci beaucoup pour vous
S'il vous plaît, pouvez-vous m'expliquer cette phrase et sa signification ?
for(int shift = Bars-10 ; shift >= 0 ; shift--)
{
ExtMapBuffer1[shift] = ma[shift] ;
ExtMapBuffer2[shift] = ma[shift] ;
//Imprimer (ma[shift]) ;
si (ma[shift] > ma[shift+1])
{
ExtMapBuffer1[shift] = EMPTY_VALUE ;
ExtMapBuffer2[shift+1] = ma[shift+1] ;
}
else if (ma[shift] < ma[shift+1])
{
ExtMapBuffer2[shift] = EMPTY_VALUE ;
ExtMapBuffer1[shift+1] = ma[shift+1] ;
}
DANS CET EA
//---- paramètres de l'indicateur
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- tampons
double ExtMapBuffer1[] ;
double ExtMapBuffer2[],ma[] ;
extern int MAType = 1 ;
extern int MAPeriod = 34 ;
extern int MAShift = 0 ;
extern int PriceType=0 ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé
//+------------------------------------------------------------------+
int init()
{
//---- 2 tampons supplémentaires sont utilisés pour le comptage.
IndicatorBuffers(5) ;
//---- paramètres de dessin
SetIndexBuffer(0,ExtMapBuffer1) ;
SetIndexBuffer(1,ExtMapBuffer2) ;
SetIndexBuffer(2,ma) ;
SetIndexStyle(0,DRAW_LINE,0,2) ;
SetIndexStyle(1,DRAW_LINE,0,2) ;
//---- initialisation terminée
return(0) ;
}
int start()
{
for(int i = Bars-10 ; i >= 0 ; i--)
{
ma=iMA(NULL,0,MAPeriod,MAShift,MAType,PriceType,i) ;
}
for(int shift = Bars-10 ; shift >= 0 ; shift--)
{
ExtMapBuffer1[shift] = ma[shift] ;
ExtMapBuffer2[shift] = ma[shift] ;
//Imprimer (ma[shift]) ;
si (ma[shift] > ma[shift+1])
{
ExtMapBuffer1[shift] = EMPTY_VALUE ;
ExtMapBuffer2[shift+1] = ma[shift+1] ;
}
else if (ma[shift] < ma[shift+1])
{
ExtMapBuffer2[shift] = EMPTY_VALUE ;
ExtMapBuffer1[shift+1] = ma[shift+1] ;
}
}
return(0) ;
}
//+------------------------------------------------------------------+
merci
Ce n'est pas EA, c'est l'indicateur, qui vous montre les moments où l'indicateur"Moving Average" monte ou descend.
Le code dont vous avez besoin calcule les dix dernières barres seulement.
Mettez-le dans le répertoire /indicateurs et redémarrez votre terminal.
la différence
Bonjour à tous
pouvez-vous m'aider
Quelle est la différence entre EMA5c et EMA5p ?
quelle est la moyenne (EMA5c>EMA10c && EMA5pEMA10c))
double EMA5c = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 0 );
double EMA10c = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,0) ;
double EMA5p = iMA(NULL,TimeFrame,5,0,MODE_EMA,PRICE_CLOSE, 1 );
double EMA10p = iMA(NULL,TimeFrame,10,0,MODE_EMA,PRICE_CLOSE,1) ;
Les noms ne sont que des noms de variables et n'ont pas vraiment de signification en tant que tels. Les programmeurs choisissent généralement les noms de variables de manière à ce que le type de valeur qu'elles sont censées contenir soit explicite. En regardant ces deux-là, il semble que le programmeur ait choisi d'ajouter le suffixe c à la variable bars actuelle et p à la variable bars précédente.
Lux
J'ai une question, j'ai un indicateur qu'un ami m'a donné et que je teste depuis quelques semaines maintenant et je l'adore. Il s'agit d'un indicateur que j'ai reçu d'un ami et que je teste depuis quelques semaines maintenant. Je l'utilise sur des graphiques de 30m pour qu'il n'apparaisse pas trop souvent. Est-ce qu'il y a un moyen de faire en sorte que lorsque la flèche s'affiche pour la position longue, elle ferme ma position courte et passe en position longue, ou s'il n'y a pas de position courte, passe en position longue. Et vice versa avec le signal de position courte ?
Je n'ai pas vu de bouton d'édition, alors voici le code. Il ne semble pas qu'il serait trop difficile d'ajouter le code d'achat ou de vente. C'est à partir du code zigzag. Libre ind.
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
//---- indicator buffers
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
int level=3; // recounting's depth
bool downloadhistory=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);
//---- indicator short name
IndicatorShortName("ZigZag("+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int i, counted_bars = IndicatorCounted();
int limit,counterZ,whatlookfor;
int shift,back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;
if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-ExtDepth;
downloadhistory=true;
}
if (counted_bars>0)
{
while (counterZ<level && i<100)
{
res=ZigzagBuffer;
if (res!=0) counterZ++;
i++;
}
i--;
limit=i;
if (LowMapBuffer!=0)
{
curlow=LowMapBuffer;
whatlookfor=1;
}
else
{
curhigh=HighMapBuffer;
whatlookfor=-1;
}
for (i=limit-1;i>=0;i--)
{
ZigzagBuffer=0.0;
LowMapBuffer=0.0;
HighMapBuffer=0.0;
}
}
for(shift=limit; shift>=0; shift--)
{
val=Low;
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=LowMapBuffer[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;
//--- high
val=High;
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=HighMapBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;
}
// final cutting
if (whatlookfor==0)
{
lastlow=0;
lasthigh=0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for (shift=limit;shift>=0;shift--)
{
res=0.0;
switch(whatlookfor)
{
case 0: // look for peak or lawn
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=High[shift];
lasthighpos=shift;
whatlookfor=-1;
ZigzagBuffer[shift]=lasthigh;
res=1;
}
if (LowMapBuffer[shift]!=0)
{
lastlow=Low[shift];
lastlowpos=shift;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;
res=1;
}
}
break;
case 1: // look for peak
if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=shift;
lastlow=LowMapBuffer[shift];
ZigzagBuffer[shift]=lastlow;
res=1;
}
if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=HighMapBuffer[shift];
lasthighpos=shift;
ZigzagBuffer[shift]=lasthigh;
whatlookfor=-1;
res=1;
}
break;
case -1: // look for lawn
if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lasthighpos]=0.0;
lasthighpos=shift;
lasthigh=HighMapBuffer[shift];
ZigzagBuffer[shift]=lasthigh;
}
if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=LowMapBuffer[shift];
lastlowpos=shift;
ZigzagBuffer[shift]=lastlow;
whatlookfor=1;
}
break;
default: return;
}
}
return(0);
}
//+------------------------------------------------------------------+question d'un nouveau venu
Bonjour à tous
est-il possible de rechercher un indicateur personnalisé sur la bougie précédente ? si oui, que dois-je faire ?
En fait, je veux rechercher la couleur de l'indicateur.
Merci d'avance
Bonjour à tous
est-il possible de rechercher un indicateur personnalisé sur la bougie précédente ? si oui, que dois-je faire ?
En fait, je veux rechercher la couleur de l'indicateur.
Merci d'avanceRegardez dans le fichier d'aide du metaeditor la fonction iCustom.
Lux