[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5.

 

(Partie précédente ici)


Bonjour, Pourriez-vous suggérer une fonction dans mql4, qui parmi plusieurs positions d'achat ouvertes, en commençant par le prix le plus bas, compte le nombre spécifié de lots (somme) et sort le prix en dessous duquel se trouve ce nombre de lots. Les ordres sont des ordres de marché. Et la même chose, mais pour vendre.

Pour clarifier, toutes les commandes avec un nombre différent de lots. La fonction additionne les ordres en ordre croissant OrderOpenPrice, tant que la condition "somme des lots <=sum" est vraie.

 
pechenuga:

(La partie précédente ici)


Bonjour, Pourriez-vous suggérer une fonction dans mql4, qui parmi plusieurs positions d'achat ouvertes, en commençant par le prix le plus bas, compte le nombre spécifié de lots (somme) et sort le prix en dessous duquel se trouve ce nombre de lots. Les ordres sont des ordres de marché. Et la même chose, mais pour vendre.

Pour clarifier, toutes les commandes avec un nombre différent de lots. La fonction additionne les ordres en ordre croissant OrderOpenPrice, pour autant que la condition "somme des lots <=sum" soit correcte.


Que doit retourner la fonction, le nombre total de lots, la différence entre le nombre total et le nombre donné de lots ou faux-vrai selon que la valeur réelle est supérieure ou inférieure à la valeur donnée ?

Plus précisément, de quel prix parle-t-on, le prix d'ouverture du dernier ordre si le volume est supérieur ou égal à celui spécifié ?

 

c'est ça... mon pot est en train de bouillir....

si vous retirez le contrôle MEDIUM de ce code, les lignes commencent à se dessiner clairement.

Si vous le remettez tel qu'il est... l'EA ne tire rien du tout !

qui a vu une erreur ? ou la raison ? s'il vous plaît dites-moi.

le compilateur ne montre aucune erreur

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);

if ( Hour()>=10 && Hour()<20) 
   {  
      if 
        ( Ma_1>Ma_2)         
              
 { SetVLine(Blue, "", 0, 0, 1);} 

}
 
Veuillez me conseiller sur le meilleur conseiller expert à utiliser pour visualiser le trading. Là encore, il serait souhaitable de pouvoir utiliser différentes TF en même temps. Je voudrais utiliser les deux en même temps. Merci !
 
lottamer:

c'est ça... mon pot est en train de bouillir....

si vous retirez le contrôle MEDIUM de ce code, les lignes commencent à se dessiner clairement.

Si vous le remettez tel qu'il est... l'EA ne tire rien du tout !

qui a vu une erreur ? ou la raison ? s'il vous plaît dites-moi.

le compilateur ne montre aucune erreur


Montrer SetVLine() ;
 
rigonich:

Montrer SetVLine() ;

//==========================
//+----------------------------------------------------------------------------+
//| Auteur : Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Version : 02.07.2008 |
//| Description : Définition de l'objet OBJ_VLINE: ligne verticale
//+----------------------------------------------------------------------------+
//| Paramètres : |
//| cl - couleur de la ligne
//| nm - nom ("" - heure d'ouverture de la barre actuelle) |
//| t1 - temps (0 - temps d'ouverture de la barre actuelle) |
//| st - style de ligne (0 - ligne simple) | |
//| wd - largeur de ligne (1 - par défaut) | |
//+----------------------------------------------------------------------------+
void SetVLine(color cl, string nm="", datetime t1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0) ;
si (t1<=0) t1=Time[0] ;
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0 ;)
ObjectSet(nm, OBJPROP_TIME1, t1) ;
ObjectSet(nm, OBJPROP_COLOR, cl) ;
ObjectSet(nm, OBJPROP_STYLE, st) ;
ObjectSet(nm, OBJPROP_WIDTH, wd) ;
}
 
rigonich:


La fonction doit-elle retourner le nombre total de lots, la différence entre le total et le nombre de lots spécifié, ou faux-vrai, selon que la valeur réelle est supérieure ou inférieure à celle spécifiée ?

Plus précisément, de quel prix parle-t-on, le prix d'ouverture du dernier ordre si le volume est supérieur ou égal à un volume donné ?

La fonction doit retourner le prix en dessous duquel se trouvent les ordres avec le nombre de lots requis. En d'autres termes, dès que le nombre de lots est supérieur à "somme", la fonction renvoie le prix de la dernière commande.
 
lottamer:

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);
if(TimeHour(iTime(Symbol(),0,0))>10&&TimeHour(iTime(Symbol(),0,0))<20)
   {
   if(Ma_1>Ma_2)SetVLine(Blue, "", 0, 0, 1);
}  
 
rigonich:



votre code ne fonctionne pas ! !! :)))))))))))))))) aucune ligne n'est tracée.

et l'heure n'a rien à voir avec ça. L'heure est correcte. Je la sortais sur l'impression...

Et si, au lieu de comparer aux moyennes, on met une comparaison avec les stochastiques - tout est clairement dessiné.

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);


if ( Hour()>=10 && Hour()<20)  
// if ( Ma_1>Ma_2)          // убрал средние
//    {
                      
         if (Stoch_1>Stoch_2)
 { SetVLine(Blue, "", 0, 0, 1);}   
 

il semble queRigonich soit aussi en ébullition :))))

juste pour être sûr, j'ai copié tous les composants d'un autre EA qui fonctionne...

N'A PAS EMBAUCHÉ !

a changé le terme "tirer" en "acheter et vendre".

ÇA NE MARCHERA PAS !

ça ressemble à du BLEEP MAGIQUE !

Imprimées, les moyennes indiquent toutes deux 134, alors que leur période diffère d'un facteur 20 ( !)!

 
lottamer:

il semble queRigonich soit aussi en ébullition :))))

juste pour être sûr, j'ai copié tous les composants d'un autre EA qui fonctionne...

N'A PAS EMBAUCHÉ !

a changé le terme "tirer" en "acheter et vendre".

ÇA NE MARCHERA PAS !

ça ressemble à du BLEEP MAGIQUE !


Et où vérifiez-vous, sur la démo ou dans le testeur ?
Raison: