le problème est de savoir comment ajouter un code indicateur dans un ea ?
Vous pouvez, avec certaines limites, mais utiliser iCustom est beaucoup plus facile.
Mais si vous voulez vraiment le faire : Transférer un code d'indicateur dans un code de conseiller expert. Structure des indicateurs - MQL4 Articles
Pour le stochastique, ce n'est pas nécessaire iCustom
Paramètres :
Exemple : if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0)) return(0) ; |
comment ajouter l'indicateur rvi dans l'ea ?
En utilisant le même code que pour l'ajout du stochastique?
comment ajouter l'indicateur rvi dans l'ea ?
En utilisant le même code que pour l'ajout du stochastique ?
iCustom() ou iRVI()
comment ajouter l'indicateur rvi dans l'ea ?
J'utilise également le même code que pour l'ajout du stochastique ?
Voici le code que j'ai fait ce matin.
Quelqu'un peut-il m'aider à le réparer ?
//+------------------------------------------------------------------+
int init()
{
//---- cartographie des tampons d'indicateurs
SetIndexBuffer(0,Buffer) ;
SetIndexBuffer(1,SignalBuffer) ;
//---- ligne de l'indicateur
SetIndexStyle(0,DRAW_LINE) ;
SetIndexStyle(1,DRAW_LINE) ;
//---- paramètres de dessin
SetIndexDrawBegin(0,RVIPeriod+3) ;
SetIndexDrawBegin(1,RVIPeriod+7) ;
//---- nom pour l'étiquette de la DataWindow et de la sous-fenêtre de l'indicateur
IndicatorShortName("RVI("+RVIPeriod+")") ;
SetIndexLabel(0, "RVI") ;
SetIndexLabel(1, "RVIS") ;
//---- initialisation terminée
retour(0) ;
}
{
double bid =MarketInfo(Symbol(),MODE_BID) ; // Demande la valeur de Bid
double ask =MarketInfo(Symbol(),MODE_ASK) ; // Demande de la valeur de Ask
double point =MarketInfo(Symbol(),MODE_POINT);//Requête de Point
return ; // Sortie de start()
if(AccountFreeMargin()<100)
Print("Nous n'avons pas d'argent. Marge libre = ", AccountFreeMargin()) ;
return(0) ;
}
int start()
{
{
int i,j,nLimit,nCountedBars ;
double dValueUp,dValueDown,dNum,dDeNum ;
//----
if(Bars<=RVIPeriod+8) return(0) ;
//----
nCountedBars=IndicatorCounted() ;
//---- vérifier les erreurs éventuelles
if(nCountedBars<0) return(-1) ;
//---- dernière barre comptée sera recomptée
nLimit=Bars-RVIPeriod-4 ;
si(nCountedBars>RVIPeriod+4)
nLimit=Bars-nCountedBars ;
//---- RVI comptées dans le 1er tampon
for(i=0 ; i<=nLimit ; i++)
{
dNum=0.0 ;
dDeNum=0.0 ;
for(j=i ; j<i+RVIPeriod ; j++)
{
dValueUp=((Close[j]-Open[j])+2*(Close[j+1]-Open[j+1])+2*(Close[j+2]-Open[j+2])+(Close[j+3]-Open[j+3]))/6;
dValueDown=((High[j]-Low[j])+2*(High[j+1]-Low[j+1])+2*(High[j+2]-Low[j+2])+(High[j+3]-Low[j+3]))/6;
dNum+=dValueUp ;
dDeNum+=dValueDown ;
}
si(dDeNum!=0.0)
Buffer[i]=dNum/dDeNum ;
sinon
Buffer[i]=dNum ;
}
//---- ligne de signal comptée dans le 2ème tampon
nLimit=Bars-RVIPeriod-7 ;
si(nCountedBars>RVIPeriod+8)
nLimit=Bars-nCountedBars+1 ;
for(i=0 ; i<=nLimit ; i++)
SignalBuffer[i]=(Buffer[i]+2*Buffer[i+1]+2*Buffer[i+2]+Buffer[i+3])/6;
//----
return(0) ;
}
{
OrderSend(Symbole,LotSize,Ask,StopLoss,TakeProfit,0,0) ;
si (Close<i)
OpenBuy() ;
retour(0) ;
OrderSend(Symbole,LotSize,Bid,StopLoss,TakeProfit,0,0) ;
si (Close>i)
OpenSell() ;
return(0) ;
}
double GetSizeLot() { return(LotSize) ; }
double GetTakeProfitBuy() { return(Ask+TakeProfit*Point) ; }
double GetTakeProfitSell() { return(Bid-TakeProfit*Point) ; }
double GetStopLossBuy() { return(Bid-StopLoss*Point) ; }
double GetStopLossSell() { return(Ask+StopLoss*Point) ; }
string GetCommentForOrder() { return();}
return(0) ; }
Voici le code que j'ai fait ce matin.
Quelqu'un peut-il m'aider à le réparer ?
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
comme je l'ai mentionné plus haut, je souhaite faire une ea avec un codage stochastique.
Le problème est de savoir comment ajouter le code de l'indicateur dans l'ea ?