[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 - 2. - page 458

 
Maximov7:
J'essaie d'écrire mon premier Expert Advisor... S'il vous plaît, dites-moi comment corriger Ask, en le déclarant à travers une variable, et il devrait être global, car il devrait être perçu par chaque fonction spéciale.... aidez-moi s'il vous plaît))))

Déclarez la double variable juste après les paramètres externes de l'EA, mettez-la à Ask quand c'est nécessaire, utilisez-la dans n'importe quelle fonction. Bien qu'il soit plus correct d'utiliser des variables locales et de les passer comme arguments... Et comprenez la portée des variables, c'est la base, vous ne pouvez pas vous en passer de toute façon.
 

C'est ce que j'ai fait, mais je ne peux pas le voir à l'intérieur de la fonction start(), et dans le journal il est dit que depuis le début la variable n'a pas été assignée une valeur Ask à cet intervalle de temps, mais juste 0.

extern double C1; C1 = Ask;
extern double C2; C2 = Bid;



int start()
{

OrderSend("EURUSD",OP_BUY,0.1,C1,3,Bid-0.0009,Ask+0.0009);

 
double C1; 
// в старте
C1 = Ask;
 
rlx:


Pour être sûr

mettez Print() à l'endroit où la fonction ClosePosBySizeProfitInPercent("0", -1, Magic, VashParametrPR) est appelée ; avant celle-ci.

Les paramètres sont définis explicitement. Peut-être y a-t-il encore des restrictions non documentées ? Par exemple, le nombre maximum de procédures, ou la longueur du nom de la procédure ? Tout fonctionnait. Cela n'a pas fonctionné après avoir ajouté une nouvelle procédure, mais elle a une tâche différente.
 

double C1;
// в старте
C1 = Ask;

il n'est pas possible de démarrer parce qu'à chaque nouveau tick, une nouvelle valeur Ask.... sera assignée et elle doit être réservée pour une opération ultérieure.

 
Maximov7:

double C1;
// в старте
C1 = Ask;

vous ne pouvez pas le faire au départ car chaque nouveau tick assignera une nouvelle valeur à Ask.... et vous devez le verrouiller pour la suite des opérations.

écrire dans init()

mais il n'est pas clair pourquoi vous avez besoin de Ask dès le moment du démarrage

 

Bonne journée à tous !

C'est la première fois que je participe à ce forum, je m'excuse si j'ai écrit au mauvais endroit.

J'ai besoin d'aide pour ajouter un TP virtuel à mon EA (en pips et/ou lorsqu'il atteint une valeur de profit définie).

Aidez-moi !

Sincèrement Roman.

Dossiers :
bunny_v2.21.ex4  22 kb
 
RomanDD:

Bonne journée à tous !

C'est la première fois que je participe à ce forum, je m'excuse si j'ai écrit au mauvais endroit.

J'ai besoin d'aide pour ajouter un TP virtuel à mon EA (en pips et/ou lorsqu'il atteint une valeur donnée de profit).

Aidez-moi !

Sincèrement Roman.

Commencez à écrire le code vous-même et ils vous aideront ici et vous expliqueront ce que vous ne comprenez pas. Si vous voulez commander la modification du conseiller expert, vous devez payer pour les services de programmation.
 

À combien estimez-vous le coût des travaux relatifs à mon problème ?

 

Voici une autre question .... J'ai un ordre ouvert comme celui-ci :

OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);

comment ouvrir un autre ordre si celui-là se ferme à takeprofit ????

Raison: