[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 67
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
Bonjour, tout le monde.
J'ai décidé de devenir écrivain. J'ai lu quelque chose à ce sujet et j'ai décidé d'écrire un conseiller expert, qui ouvrirait une position lorsque le RSI avec la période 8 croise 70 et fermerait la position lorsque croise 30 et rien d'autre ne se produirait. Je l'ai écrit, voici le code
//+------------------------------------------------------------------+//| 4doc.mq4 |
//| Alex |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Alex"
#lien de propriété "http://www.metaquotes.net"
//---- paramètres d'entrée
extern int PerRSI=8 ;
extern int intNamber=77771 ;
extern double Lots=1.0 ;
/+------------------------------------------------------------------+//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
int
cnt=0,
billet,
total ;
double
rsi_0, //valeur. rsi_0 courant
rsi_1 ; // Valeur. rsi_1 1ère barre
si (Bars<100)
{
Print("barres inférieures à 100") ;
retour(0) ;
}
rsi_0=iRSI(NULL,0, PerRSI,0,0) ; // Barre actuelle
rsi_1=iRSI(NULL,0, PerRSI,0,1) ; // Barre actuelle plus 1
total=OrdersTotal() ;
si(total<1)
if(rsi_0 < rsi_1 && rsi_0 > 70) // Si la ligne a franchi 70
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My RSI", MagicNamber,0,Green) ;
si(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Ordre de vente ouvert : ",OrderOpenPrice())
}
else Print("Erreur lors de l'ouverture d'un ordre de VENTE : ",GetLastError()) ;
retour(0) ;
}
for(cnt=0;cnt<total;cnt++)
{
RefreshRates() ;
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()<=OP_SELL && // il s'agit d'une position ouverte ? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // correspondance de l'outil ?
{
if(OrderType()==OP_SELL) // la position est ouverte
{
if(rsi_0 > rsi_1 && rsi_0 < 30) // Si la ligne a franchi 30
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // position de clôture
return(0) ; // sortie
}}}}}
Je l'ai testé et il fonctionne en grande partie comme je voulais. J'ai décidé de modifier le code, pour ouvrir une position lorsque le SSI - 14 franchit le niveau 100, et pour fermer une position lorsque franchit le niveau 100. J'ai changé le code RSI pour CCI , le voici.
//+------------------------------------------------------------------+//| CCI-DOC.mq4 |
//| Alex |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Alex"
#lien de propriété "http://www.metaquotes.net"
//---- paramètres d'entrée
extern int PerCCI=14 ;
extern inttern MagicNamber=88881 ;
extern double Lots=1.0 ;
//+------------------------------------------------------------------+//| fonction de démarrage de l'expert |
//+------------------------------------------------------------------+
int start()
{
int
cnt=0,
billet,
total ;
double
cci_0, // valeur du cci_0. cci_0 courant
cci_1 ; // valeur cci_1. cci_1 1ère barre
si (Bars<100)
{
Print("barres inférieures à 100") ;
retour(0) ;
}
cci_0=iRSI(NULL,0, PerCCI,0,0) ; // Barre actuelle
cci_1=iRSI(NULL,0, PerCCI,0,1) ; // barre actuelle plus 1
total=OrdersTotal() ;
si(total<1)
if(cci_0 < cci_1 && cci_0 > 100) // si la ligne a franchi 100
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, "My CCI", MagicNamber,0,Green) ;
si(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("Ordre de vente ouvert : ",OrderOpenPrice())
}
else Print("Erreur lors de l'ouverture d'un ordre de VENTE : ",GetLastError()) ;
retour(0) ;
}
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES) ;
if(OrderType()<=OP_SELL && // il s'agit d'une position ouverte ? OP_BUY ou OP_SELL
OrderSymbol()==Symbol()) // correspondance de l'outil ?
{
if(OrderType()==OP_SELL) // la position est ouverte
{
if(cci_0 > cci_1 && cci_0 < -100) // si la ligne a franchi -100
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // position de clôture
return(0) ; // sortie
}}}}}
Commencé à tester CCI ..... bien, rien ne se passe, ne vend pas ou n'achète pas, pas d'erreurs dans le journal, à la fin du test ouvre le graphique de la courbe, mais ce n'est pas CCI, mais RSI 70-30 avec la période 14..... Peut-être que l'un des rédacteurs expérimentés comprendra et dira pourquoi et comment le réparer.
Ensuite, la démonstration dans le journal montre tout plus clairement. On sait mieux où chercher l'erreur. Tout seul...
>> Merci.
Rebonjour !!!!!!!
Je voudrais /non-intrusivement/;-)) vous rappeler votre question sur la p. 64 sur les conditions de trading pour MA... merci d'avance (pour un coup de pied dans le pantalon d'un imbécile)
Messieurs, pouvez-vous me dire si j'utilise plusieurs graphiques temporels différents d'un même instrument de trading dans le terminal ?
Comment le trafic est-il consommé par le programme ? Consomme-t-il le trafic de la période minimale, ou le trafic de toutes les périodes ?
Rebonjour !!!!!!!
Je voudrais /non-intrusivement/;-)) vous rappeler votre question sur la p. 64 sur les conditions de trading pour MA... merci d'avance (pour le coup de pied dans le pantalon des nuls)
Merci pour la réponse ! !!
1. Laissez-moi clarifier, est-ce que les deux lignes avec double open_0 et double_1 doivent être écrites AVANT les lignes de double MA, ou est-ce que c'est sans critique ? ?????...
2. Dans les conditions de trading vous pouvez remplacer open[0,1] par open_0,1 ? ???????.....
Merci pour la réponse ! !!
1. Laissez-moi clarifier, est-ce que les deux lignes avec double open_0 et double_1 doivent être écrites AVANT les lignes de double MA, ou est-ce que c'est sans critique ? ?????...
2. Vous pouvez remplacer open[0,1] par open_0,1 ? ???????.....
1. non critique.
2. peut
Aidez-nous s'il vous plaît... Je suis peut-être paresseux, mais je n'arrive pas à trouver comment connecter le programme pour trader sur un compte démo ou réel... Expliquez-moi ce qu'il faut écrire et où il faut chanter, je vous en supplie... merci d'avance !))
1. non critique
2. peut
CGFCB<J c'est-à-dire MERCI !!!!