[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 255

 
NEKSUS_ >> :

Bonjour messieurs, je demande à nouveau de l'aide pour le script d'élimination des objets.

Le script supprime plusieurs objets par leur nom, mais au lancement il fait apparaître une centaine d'erreurs (ou plutôt, la même, mais plusieurs fois) aide ps.


Je suppose que ce code fantaisiste est conçu pour supprimer du graphique tous les objets dont le nom contient un numéro ? Alors mettez else avant tous les ifs, sauf le premier. Sinon, votre indice x tombe déjà dans la zone négative à la première itération.

 
NEKSUS_ >> :

Bonjour messieurs, je demande à nouveau de l'aide pour le script d'élimination des objets.

Le script tue certains objets par leur nom, mais au démarrage il fait apparaître une bonne centaine d'erreurs (plus précisément, la même, mais plusieurs fois) aide ps.


remplacez cette boucle for (int x = ObjectsTotal() ; x>0 ; x--) (corrigez seulement les bugs, comme plus ou égal et enlevez 1 du nombre d'objets) et enlevez tous les "x-- ;" dans les ifs

 
dmmikl86 >> :

aidez-moi à colorer l'indicateur, je veux qu'il soit vert si la valeur augmente, rouge si elle diminue.

Voici le code :


en voici un pour vous aider

https://www.mql5.com/ru/articles/1451

Mise en œuvre d'indicateurs tricolores et de certaines fonctionnalités permettant de simplifier au maximum l'écriture des indicateurs.

 
alsu >> :

J'ai cru comprendre que ce code complexe est conçu pour supprimer du tableau tous les objets dont le nom contient un chiffre... Eh bien, mettez alors avant tous les if, sauf le premier, et else également. Car à la première itération, votre indice x tombe déjà dans la zone négative.


Elle n'échouera pas, il est très difficile de trouver un objet avec un indice négatif, ou plutôt elle pourrait échouer, mais d'une unité au maximum.
 

Chers professionnels, aidez-moi s'il vous plaît. L'idée est que l'EA crée un ordre, puis crée à nouveau le même ordre si cet ordre échoue. Mais ce n'est pas le cas ?

//--------------------------------------------------------------- 0 ----------------

int start() // Démarrage de la fonction spéciale

{

int H=100; // Définir le temps - seconde

int Dist=10; // Définir TP et SL

double Lot=1 ; //définit lelot

//--------------------------------------------------------------- 1 ----------------

double i=0,001 ;

double Cena=NormalizeDouble(Ask,3) ; // normaliser le prix

double Price=NormalizeDouble(Cena+i,5) ; // Trouver leprix

double TP=Prix+Dist*Point ; // Trouver TP

double SL=Prix-Dist*Point ; //Find SL

int x=1; // Première condition

int y=1; // Deuxième condition

//--------------------------------------------------------------- 2 ----------------

for (int pos=1 ; pos<=OrdersTotal() ; pos++) // boucle sur toutes les commandes

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // mettre en évidence une commande

{Si (OrderTakeProfit()==TP)

{ Alert("déclenché x") ;

x=2 ;

pause ;

}

}

else Print("Error ", GetLastError(), " when selects order number ", pos);

}

//--------------------------------------------------------------- 3 ----------------

for (pos=1 ; pos<=OrdersTotal() ; pos++) // boucle sur toutes les commandes

{ if (OrderSelect(pos-1,SELECT_BY_POS)==true) // marquer un ordre

{ si (OrderOpenPrice()==Price)

{ Alert("triggered y") ;

y=2 ;

pause ;

}

}

else Print("Error ", GetLastError(), " when selects order number ", pos);

}

//--------------------------------------------------------------- 4 ----------------

si (x==2&y==2)

{ Alert("Cette commande existe déjà !!!") ;}

else { Alert(" l'ordre a été envoyé",Symbol()," BUYSTOP ", Price," Pending...") ;

OrderSend(Symbol(), OP_BUYSTOP, Lot, Price, 0, SL, TP) ;

}

Sleep(H*60) ; //Attendre 60 secondes

RefreshRates() ;

//--------------------------------------------------------------- 5 -------------------

Alert ("Le script a fini de fonctionner -----------------------------") ;

return; // Quitterstart()

}

 

J'ai installé MT4 (de forex4you), je teste des stratégies, mais mes cours M1 ne datent que du 2.09.2009, je ne peux pas les télécharger via le service d'archivage des cours,

Pouvez-vous me dire où je peux télécharger l'archive des citations, au moins pour 2009 ? Autre chose, lorsque je fixe la date dans le testeur de stratégie, les cotations ne sont pas téléchargées automatiquement.

 
albon >> :

J'ai installé MT4 (de forex4you), je teste des stratégies, mais mes cours M1 ne datent que du 2.09.2009, je ne peux pas les télécharger via le service d'archivage des cours,

Pouvez-vous me dire où je peux télécharger l'archive des citations, au moins pour 2009 ? Lorsque je fixe la date dans le testeur de stratégie, les cotations ne sont pas téléchargées automatiquement.

Essayez d'installer le MT4 d'un autre courtier. (c'est-à-dire un MT4 différent).

 

Chers professionnels, aidez-moi s'il vous plaît. L'idée est que l'EA doit créer un ordre et créer à nouveau le même ordre si cet ordre échoue. Mais cela ne se produit pas ?

Il crée des commandes en permanence - sans fin.


 
VII >> :

Chers professionnels, aidez-moi s'il vous plaît. L'idée est que l'EA crée un ordre, puis crée à nouveau le même ordre si cet ordre échoue. Mais ce n'est pas le cas ?

//--------------------------------------------------------------- 0 ----------------


double Cena=NormalizeDouble(Ask,3) ; //Normaliser le prix

Il ne pourra pas créer le même ordre, car Ask change constamment à chaque tic. Et tous les autres paramètres et leurs comparaisons dans les conditions sont calculés à partir de cette variable.

 
VII >> :

Chers professionnels, aidez-moi s'il vous plaît. L'idée est que l'EA crée un ordre, puis crée à nouveau le même ordre si cet ordre échoue. Mais cela ne se produit pas ?


Nous avons deux possibilités pour que l'EA/script ouvre exactement le même ordre que celui que nous avons défini. Tout d'abord, nous définissons la commande et écrivons tous ses paramètres dans les variables qui les stockeront. S'il n'y a pas d'ordre, nous passerons en mode veille. Dès que nous atteignons une condition où un ordre avec ces paramètres peut être établi, nous ouvrons un ordre.

Deuxièmement. Une fois que l'ordre a disparu du marché, parcourez l'historique et trouvez l'ordre le plus récent. Nous enregistrons ses paramètres et activons le mode veille comme nous l'avons fait dans le premier cas.

Ce que je veux dire, c'est ceci. Si vous construisez la logique du programme de la manière que vous avez décrite et que j'ai expliquée ici, tous les ordres attendront le même niveau horizontal. En avez-vous besoin ?