[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 160

 
wolf05632:

Comment arrêter l'exécution de l'indicateur ...if proc_zahlest>100


int start()
{if(proc_zahlest>100)return(0);
...
return(0);}
 
wolf05632:

... Et une autre question : à quoi doit ressembler la coordonnée temporelle OBJ_TEXT, pour que le texte soit à DROITE de la bougie zéro ?

datetime t=Time[0]+Shift*Period()*60;//Shift -- положительное целое число.
 
granit77:
Proposé :

eurodollar1981 09.09.2011 10:37
Bonjour, pourriez-vous me dire comment prescrire dans mt4, d'acheter un ordre avec un stoploss et un take profit prédéfinis en appuyant sur une seule touche ?


Deux clés... c'est beaucoup ? Si -- non, vous écrivez un script approprié dont l'exécution est réglée sur le "hotkey".

Terminal --> Navigateur --> Scripts --> Votre script --> Clic droit --> Définir la touche de raccourci.

 

Roger:

Xaoss1990:

Roger:
Ce n'est pas la partie du code où il pourrait y avoir une erreur.
Em.... et le reste du code est le calcul des valeurs ( POINT_BUY_M15, POINT_BUY_H, POINT_BUY_H4, POINT_SELL_M15, POINT_SELL_H, POINT_SELL_H4 ) pour faire des trades, cela fonctionne correctement... j'ai vérifié... C'est simple : ....
Si l'erreur était ici, le journal dirait "Stop not set", mais ce n'est pas le cas.

L'erreur se situe exactement dans ce code. Il ferme BUY, puis il sélectionne un ordre qui n'existe plus et ferme SELL, qui n'a jamais existé en premier lieu. Je pense que je nous ai montré l'erreur. Il ne sera pas difficile à comprendre.

J'ai commencé à étudier le MQL dans un manuel. Il y a suffisamment d'exemples et ils sont tous intelligemment construits. Certaines des constructions utilisées dans ces exemples sont encore utilisées dans mes propres développements.

 
MaxZ:

L'erreur se situe exactement dans ce code. Il ferme BUY, puis il sélectionne un ordre, qui n'existe plus, et ferme SELL, qui n'a jamais existé du tout. Je pense avoir montré l'erreur. Il ne sera pas difficile à comprendre.

J'ai commencé à étudier le MQL dans un manuel. Il y a suffisamment d'exemples et ils sont tous intelligemment construits. J'utilise encore certains de ces exemples dans mes propres développements.


D'accord. Recommandé :
datetime OrderCloseTime( )
Renvoie l'heure de clôture de l'ordre sélectionné. Seuls les ordres fermés ont une heure de clôture qui n'est pas égale à 0. Les ordres ouverts ou en attente ont un temps de clôture égal à 0.
La commande doit être présélectionnée à l'aide de OrderSelect().
 
Roll:


Ugh... Merci !
 

Les gars, aidez-moi, je me perds. Je suis en train de créer un indicateur dont je veux sortir sous forme d'objets texte les informations provenant de divers autres indicateurs de différentes périodes. Par exemple ADX. Je fais trois iADX :

 f0 = iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_M30,14,PRICE_CLOSE,MODE_MINUSDI,0);
 f1 = iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H1,14,PRICE_CLOSE,MODE_MINUSDI,0); 
 f2 = iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_PLUSDI,0) - iADX(NULL,PERIOD_H4,14,PRICE_CLOSE,MODE_MINUSDI,0); 

Je teste sur H4, un seul ADX, qui est sur H4, les deux autres donnent une valeur constante. Aidez-nous, s'il vous plaît.

 
vitali_yv:

Les gars, aidez-moi, je me perds. Je suis en train de créer un indicateur dont je veux sortir sous forme d'objets texte les informations provenant de divers autres indicateurs de différentes périodes. Par exemple ADX. Je fais trois iADX :

Je teste sur H4, un seul ADX, qui est sur H4, les deux autres donnent une valeur constante. Aidez-nous, s'il vous plaît.


Essayez sur M30 - si les périodes explicitement prescrites dans le code, tout devrait fonctionner.
 
vitali_yv:

Les gars, aidez-moi, je me perds. Je suis en train de créer un indicateur dont je veux sortir sous forme d'objets texte les informations provenant de divers autres indicateurs de différentes périodes. Par exemple ADX. Je fais trois iADX :

Je teste sur H4, un seul ADX, qui est sur H4, les deux autres donnent une valeur constante. Aidez-moi, s'il vous plaît.

Je n'ai aucun doute sur le fait qu'il fonctionnera avec tous mes métiers.

Ou vous émettez une sortie incorrecte, ce que seuls les télépathes peuvent savoir avec certitude...

 
MaxZ:

L'erreur se situe exactement dans ce code. Il ferme BUY, puis il sélectionne un ordre, qui n'existe plus, et ferme SELL, qui n'a jamais existé du tout. Je pense avoir montré l'erreur. Cela ne peut être difficile à comprendre.

Avant de fermer un ordre, l'EA vérifie le numéro magique de l'ordre et il est différent pour les ordres d'achat et de vente. Ainsi, un seul et même ordre ne peut être clôturé à la fois comme Achat et Vente.

Voici le code :

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ BUY-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES) ;
Magic = OrderMagicNumber() ;

if (OrdersTotal() == 1 && Magic == 111 && OrderType( ) == 0)
{
if (POINT_BUY_M15 < Strgh_UP_M15 || POINT_BUY_H1 < Strgh_UP_H1 || POINT_BUY_H4 < Strgh_UP_H4)
{
close = 1 ;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Bid, 5, Yellow) ;
}

//+-----------------------------------------------------------------------------+
//+-------------------------СТАВИМ СПОП ЛОСС ДЛЯ SELL-------------+
//+-----------------------------------------------------------------------------+

OrderSelect(0, SELECT_BY_POS, MODE_TRADES) ;
Magic = OrderMagicNumber() ;

if (OrdersTotal() == 1 && Magic == 222 && OrderType( ) == 1)
{
if (POINT_SELL_M15 < Strgh_DOWN_M15 || POINT_SELL_H1 < Strgh_DOWN_H1 || POINT_SELL_H4 < Strgh_DOWN_H4)
{
close = 1 ;
}
}
if (close == 1)
{
OrderClose(OrderTicket(), lots, Ask, 5, Red) ;
}