[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 279
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
Si vous le savez, il existe deux lignes, l'une suivant les nouveaux sommets d'une série de chandeliers, l'autre suivant les creux. Lorsque la distance entre les lignes est supérieure à 50, une ligne verticale doit être tracée. La ligne verticale a besoin d'une coordonnée - le temps. Comment puis-je dessiner le moment où la distance entre les lignes sera supérieure à 50 ? Je ne peux pas penser à quelque chose.
Je voulais dessiner la ligne verticale en utilisant ObjectCreate... Si l'on peut le faire sans temps, que faut-il utiliser ?Pourrait-il y avoir une fonction qui détecte simplement qu'"il n'y a pas encore d'ordres dans l'historique de l'EA" ? - Ce serait suffisant.
Je ne sais pas. Peut-être que quelqu'un ici peut nous le dire ?
Je pense que nous devrions essayer de modifier la fonction de Kim. Celui-là :
C'est-à-dire qu'au lieu de MODE_TRADES, prenez MODE_HISTOIRE - c'est-à-dire que l'ordre est sélectionné parmi les ordres fermés et supprimés.
Ensuite (changer le nom de f-i) :
Essayez-le, cela fonctionnera-t-il ou non ?
Bonjour, mes amis.
Veuillez me conseiller à ce sujet.
Par exemple, je dois ouvrir une position lorsqu'une "bougie de prix" a franchi une moyenne mobile.
Jusqu'à présent, je sais seulement comment classer les signaux lorsqu'un chandelier s'est fermé/ouvert au-dessus/au-dessous de la moyenne mobile...
( iMA( .....) >Close[1] ou iMA(....) >Open[0] )
Comment puis-je entrer lorsque la bougie actuelle est déjà au-dessus/au-dessous de la MA, au lieu d'attendre que la bougie actuelle se ferme et que la suivante s'ouvre ?
Merci beaucoup d'avance.
Bonjour, mes amis.
Veuillez me conseiller à ce sujet.
Par exemple, je dois ouvrir une position lorsqu'une "bougie de prix" a franchi une moyenne mobile.
Jusqu'à présent, je sais seulement comment classer les signaux lorsqu'un chandelier s'est fermé/ouvert au-dessus/au-dessous de la moyenne mobile...
( iMA( .....) >Close[1] ou iMA(....) >Open[0] )
Comment puis-je entrer lorsque la bougie actuelle est déjà au-dessus/en dessous de la MA, au lieu d'attendre que la bougie actuelle se ferme et que la suivante s'ouvre, si elle est déjà au-dessus/en dessous de la MA ?
Je ne sais pas quoi en faire.
Comment l'aimez-vous ?
iMA(....) >Open[0] ? - zéro est la bougie actuelle.
Ce qui n'est pas à aimer :
iMA(....) >Open[0] ? - zéro est le chandelier actuel
c'est vrai, mais, par exemple, il y a des cas où, après avoir ouvert sous la MA, le prix casse ensuite (généralement aux nouvelles) la MA dans une longue bougie et monte, vers le bas.....
Si nous utilisons mes critères d'ouverture, nous pouvons manquer de tels mouvements...
Par conséquent, j'aimerais ouvrir une position si le prix est actuellement au-dessus/au-dessous de la moyenne, plutôt que d'attendre la fermeture de celle-ci et l'ouverture de la bougie suivante.
Il peut s'agir de :
(Si la MA de la barre précédente est supérieure au prix de clôture de la barre précédente et que la MA de la barre actuelle devient inférieure au prix d'ouverture de la barre actuelle, alors vendez).
Ça fait deux jours que je fais des bêtises et je n'arrive pas à comprendre. J'ai pris le code du tutoriel de Kovalev et j'ai essayé d'ouvrir un ordre d'achat et j'ai obtenu la réponse "Error 130".
Code
nt f_Open_Ord(int Tip)
{
int Ticket, // Numéro d'ordre
MN ; // MagicNumber
double SL, // StopLoss (valeur du prix relatif)
TP ; // TakeProf (valeur du prix relatif)
//--------------------------------------------------------------- 3 --
while(g_Mas_Tip[Tip]==0) // Tant que .
{ //...pas de succès
if (SL<g_Level_new) // si moins que permis...
SL=(g_Niveau_nouveau+20) ; // ... alors autorisé
if (TP<g_Niveau_nouveau)
// Si moins que l'autorisé...
TP=(g_Level_new+20) ; // .alors autorisé
MN=TimeCurrent() ; // Simple MagicNumber
f_Inform(13,Tip) ; // Message sur la tentative d'ouverture
if (Tip==0) // Ouvrons l'achat
{
SL=Bid - SL*Point ; // StopLoss (prix)
SL=NormalizeDouble(SL,Digits) ;
TP=Bid + TP*Point ; // TakeProfit (prix)
TP=NormalizeDouble(TP,Digits) ;
Ticket=OrderSend(Symbol(),0,g_Lots_New,Ask,5,1.46500,1.47500,",MN) ;
err=GetLastError() ;
Comment("numéro d'erreur ",err) ;
if (Ticket>0) f_Inform(4) ;
//if (Ticket<0) f_Inform(25)
Le code a été retravaillé. Tout fonctionne correctement. Je pense que l'erreur n'est pas dans le code. DC-Broco/.
Sorri, c'était précipité. Les valeurs 1.46500 et 1.47500 dans la fonction OrderSend doivent être changées en SL et TP respectivement.
Sorri, c'était précipité. Les valeurs 1.46500 et 1.47500 dans la fonction OrderSend doivent être remplacées par SL et TP, respectivement.
Que représentent SL et TP ? S'il est égal à zéro, comme dans le code ci-dessus, tout est correct. Une erreur devrait être générée
Les arrêts sont extraits de la variable globale g_Level_new, qui est calculée comme suit : g_Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL )