comment ajouter le code de l'indicateur dans le code du conseiller-expert ?
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 ?

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 ?