Comment coder ? - page 78

 

Je l'ai fait fonctionner maintenant.

 
hedge4x:
Cette ligne while(!IsAllClosed) {CloseAllTrades() ; return;}

dans le démarrage principal fermera toutes les positions ouvertes si MT s'arrête

et que je le redémarre. Existe-t-il un moyen de mettre cette ligne

dans la fonction closealltrades pour qu'elle ne ferme pas toutes les positions ouvertes

après le redémarrage de MT4 ?

Merci.

Oui, désolé, vous pouvez définir le bool au moment du démarrage comme ceci :

bool IsAllClosed = true ; //Global variable[/PHP]

Then it becomes even better to define a extern variable, so you can keep the control :[PHP]extern bool CloseAll = false ; //Global variable

void CloseAllTrades()

{

int cnt;

CloseAll = false;

for(cnt=OrdersTotal()-1;cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber()==GetMagicNumber())

CloseAll = CloseAll || !OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), MarketInfo(OrderSymbol(), MODE_SPREAD), Yellow);

}

}

void start()

{

while(CloseAll) {CloseAllTrades(); return;}

...

Le principal avantage de cette méthode est que l'EA essaie de fermer chaque position à chaque tick jusqu'à ce que toutes soient fermées.

 

J'ai besoin d'aide pour mon premier EA semi-professionnel

Bonjour à tous...

J'ai créé un EA sur le site du grand expert advisor bulder et je l'ai testé et trouvé rentable depuis un an mais je pense qu'il peut être amélioré ....

donc si quelqu'un peut m'aider à améliorer cette EA ?

détaché de l'EA...

l'EA s'appuie sur deux indicateurs dont l'un est le mien et l'autre se trouve sur bublic fourms " zero lag macd ".

maintenant l'expert fonctionne tout le temps entrer acheter puis fermer et inverser pour vendre et ainsi de suite ....

j'ai besoin de le faire fonctionner seulement dans des temps spescifiques, ajouter un money managementmint et la dernière chose j'ai besoin de retarder l'excute d'achat ou de vente avec la prochaine bougie "1 minute" mais l'EA travaille sur la bougie 1H en fait ...

donc j'espère trouver comment peut m'aider dans ce domaine

Merci à tous

Meilleures salutations

Tamer

Dossiers :
 

comment faire référence au nom du fichier que j'exécute ?

Bonjour,

Je voudrais savoir comment faire référence à un nom de fichier que j'exécute.

Par exemple, si je lance un script appelé supertrader.mq4 et que je veux ouvrir un fichier journal appelé supertrader_logfile à partir du script supertrader.

Existe-t-il une variable qui contient le nom du fichier que j'exécute ?

Merci.

 
star90:
Bonjour,

Je voudrais savoir comment je peux faire référence à un nom de fichier que j'exécute.

Par exemple, si je lance un script appelé supertrader.mq4 et que je veux ouvrir un fichier journal appelé supertrader_logfile à partir du script supertrader.

Existe-t-il une variable qui contient le nom du fichier que j'exécute ?

Merci.

Peut-être en ajoutant void Print( ...) au script.

void Print( ...) Imprime un message dans le journal des experts.

 

A adria

As-tu vu mon MP ?

Big Be

 

Vague de loup. J'ai besoin de votre aide

Cher Codersguru,

Je ne suis pas un programmeur et dans mon style d'essai et d'erreur, la vague de loup que j'ai essayé d'améliorer donne le signal "le deuxième paramètre, ObjectTextSetFunction doit être une chaîne.

S'il vous plaît aidez-moi à rectifier.

Merci par avance.

Dossiers :
wolfwave.rar  3 kb
 

Bonjour, j'ai besoin d'une fonction bool qui renvoie vrai si 5 minutes se sont écoulées, ou 10 minutes ou autre. Je sais déjà comment vérifier une nouvelle barre mais ce n'est pas assez souvent.

 
nittany1:
Bonjour, j'ai besoin d'une fonction bool qui renvoie vrai si 5 minutes se sont écoulées, ou 10 minutes ou autre. Je sais déjà comment vérifier une nouvelle barre mais ce n'est pas assez souvent.

Peut-être

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

 
Linuxser:
Peut-être

double LastRedraw = 0;

if(TimeLocal() - LastRedraw > 300)

{

Print();

ObjectsRedraw();

Print("ObjectsRedraw Done");

LastRedraw = TimeLocal();

}

[/code]

Ou ça :

[CODE]

bool ElapsedTimeCheck(int MyMinutes)

{

static datetime OldTime ;

if (OldTime == 0)

OldTime = TimeCurrent() + MyMinutes * 60 ; // initialisé une fois...

if (TimeCurrent() >= OldTime)

{

OldTime = TimeCurrent() + MyMinutes * 60 ;

bool cond = true ;

}

else cond = false ;

return(cond) ;

}