Comment coder ? - page 290

 

...

Je ne sais pas si cela résoudra votre problème, mais jetez un coup d'oeil à ceci : https://www.mql5.com/en/forum/general

Pava:
Comment faire pour que mon ordinateur affiche correctement les mots en russe dans les indicateurs ? ...Merci...
 

...

mladen:
Je ne sais pas si cela résoudra votre problème, mais jetez un œil à ceci : https://www.mql5.com/en/forum/general

merci... je vais essayer

 

...

Voici un exemple... Mon Mac n'aime pas ça :)

"

//

// VisualOrders.mq4

// Dmitry Yakovlev

// dmitry_yakovlev@rambler.ru

// ? ? ? ??? WebMoney R865705290089

//------------------------------------------------------------------

#property copyright "Dmitry Yakovlev, Russie,Omsk, WM R865705290089"

#property link "dmitry_yakovlev@rambler.ru"

#property indicator_chart_window

#import "shell32.dll" //Connexion d'une dll (fournie avec Windows)

int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd) ;

#importation de "user32.dll".

int MessageBoxA(int hWnd ,string lpText,string lpCaption,int uType) ;

#import

extern string _ModeProf=" ??????? 1- ???????.,2- ??????";

extern int ModeProf=2 ;

extern string _orders=" ?????????? ? ????? ? ? ??????? :";

extern string _Type = "0 ? ??,-1 Sell,1 Buy" ;

extern int Type = 0 ;

extern bool CurOrders=true ;

extern int lblSize=1 ;

extern bool HistOrders=true ;

extern bool ShowProfits=true ;

extern int ShiftProfits=0 ;

extern bool lShowTargets=true ;

extern string _donate1=" ?? ? ??? :-) WebMoney" ;

extern string _donate2="R865705290089" ;

"

 

...

Ce sont des lettres cyrilliques, c'est pourquoi elles ne sont pas affichées.

Si vous avez des problèmes pour les voir dans le metaeditor, faites la chose suivante : dans le menu du metaeditor outils->options->font, mettez l'écriture en cyrillique. Vous serez toujours capable de voir les lettres latines normales + vous allez voir le russe aussi (comme ceci :

Pour ce qui est de l'affichage dans la fenêtre du terminal, j'ai bien peur que vous ne puissiez le voir que si vous avez installé le Windows russe.

Pava:
Ceci est un exemple...Mon Mac n'aime pas ça :)

"

//

// VisualOrders.mq4

// Dmitry Yakovlev

// dmitry_yakovlev@rambler.ru

// ? ? ? ??? WebMoney R865705290089

//------------------------------------------------------------------

#property copyright "Dmitry Yakovlev, Russie,Omsk, WM R865705290089"

#property link "dmitry_yakovlev@rambler.ru"

#property indicator_chart_window

#import "shell32.dll" //Connexion d'une dll (fournie avec Windows)

int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd) ;

#importation de "user32.dll".

int MessageBoxA(int hWnd ,string lpText,string lpCaption,int uType) ;

#import

extern string _ModeProf=" ??????? 1- ???????.,2- ??????";

extern int ModeProf=2 ;

extern string _orders=" ?????????? ? ????? ? ? ??????? :";

extern string _Type = "0 ? ??,-1 Sell,1 Buy" ;

extern int Type = 0 ;

extern bool CurOrders=true ;

extern int lblSize=1 ;

extern bool HistOrders=true ;

extern bool ShowProfits=true ;

extern int ShiftProfits=0 ;

extern bool lShowTargets=true ;

extern string _donate1=" ?? ? ??? :-) WebMoney" ;

extern string _donate2="R865705290089" ;

"
Dossiers :
editor.jpg  143 kb
 

...

"extern string _donate1="на пиво :-)"...merci...ça a marché

 

Base de fermeture MACD

Bonjour... pouvez-vous m'aider à modifier cette sortie par MACD cross 0. Comme d'habitude cette ea se ferme si tp=x ou sl=x point.

J'ai essayé mais c'est encore trop difficile pour moi.

Merci beaucoup... 1428maplus.mq4

Dossiers :
1428maplus.mq4  30 kb
 
mladen:
Ajoutez quelque chose comme ceci dans votre EA au début de la procédure start() :
if (TimeDayOfWeek(TimeCurrent())==5 && TimeCurrent()>=StrToTime("22:59")) { CloseAll(); return(0); }

Ajoutez ceci dans le code :

[PHP]void CloseAll()

(Tout le code)

Cela résoudra vos points 2 et 3 (ordres ouverts au vendredi).

Le premier point est assez compliqué à coder - vous aurez probablement besoin de redéfinir cette règle.

Merci beaucoup ! Pour la dernière partie, est-ce qu'un code d'écouteur de suivi d'événement de quelque sorte ferait l'affaire (je tape juste une autre suggestion que j'ai lue) ? Si je ne me trompe pas, pour augmenter le take profit d'une transaction lorsque l'autre se ferme, il faudrait des sous-parties de code pour le faire ?

Lorsque deux transactions s'ouvrent avec cet EA, cela signifie toutefois qu'à un moment donné, l'une d'entre elles atteindra le stop loss (à moins qu'elles ne se situent dans la même zone jusqu'à la clôture de toutes les transactions à un moment donné), si deux transactions sont ouvertes et que l'une d'entre elles se clôture avec un profit négatif, l'autre transaction ouverte pourrait répondre au profit négatif en augmentant le take profit ? À propos, tout cela se produit sur un seul symbole jusqu'à présent.

Pour dire les choses plus simplement, serait-il possible d'augmenter le take profit d'une transaction une fois que l'autre a été clôturée, quel que soit son profit ? En effet, si deux transactions sont ouvertes et que l'une d'entre elles est clôturée, le résultat sera de toute façon négatif.

Merci encore !

 
Il y a un certain nombre de problèmes dans cet exemple :

- la recherche dans la liste des ordres fermés peut conduire à une identification erronée de l'ordre "connexe".

- pour cette raison, l'EA doit savoir quel "autre" ordre il doit surveiller. Ainsi, chacun des ordres devrait connaître d'une manière ou d'une autre l'ID de l'autre ordre (ticket). Mais cela n'est pas possible en raison de l'absence d'un champ dans lequel nous (les utilisateurs) pouvons écrire quelque chose que nous voulons utiliser comme information. Le champ de commentaire ne peut être écrit qu'au moment de la création de l'ordre : il n'y a aucun moyen de le modifier une fois que l'ordre est ouvert (seul le courtier peut le faire), nous n'avons donc aucun moyen d'ajouter des informations à l'ordre lui-même.

- Si nous ne pouvons pas enregistrer certaines informations dans l'ordre lui-même, nous pouvons oublier certains types de modifications. Par exemple : comment pouvez-vous dire à partir des champs disponibles d'un ordre qu'il a déjà été modifié (le take profit). Je ne parle pas de certaines "variables globales" (qui sont inutiles dans le cas où vous utilisez le terminal même sur 2 dossiers différents et encore moins sur 2 PC différents) ni de la sauvegarde de certains états dans l'EA (que faire si elle cesse de fonctionner - un cas qui se produit beaucoup plus souvent qu'ils ne veulent l'admettre).

Donc, d'après ce que je vois avec les contraintes ci-dessus, ce genre de "comportement" conditionnel n'est pas possible sans une réelle possibilité d'erreur quelque part dans le processus.

madmax3:
Merci beaucoup ! Pour la dernière partie, est-ce qu'un code d'écouteur de suivi d'événement de quelque sorte ferait l'affaire (je tape juste une autre suggestion que j'ai lue) ? Si je ne me trompe pas, pour augmenter le take profit d'une transaction lorsque l'autre se ferme, il faudrait des sous-parties de code pour le faire ?

Lorsque deux transactions s'ouvrent avec cet EA, cela signifie toutefois qu'à un moment donné, l'une d'entre elles atteindra le stop loss (à moins qu'elles ne se situent dans la même zone jusqu'à la clôture de toutes les transactions à un moment donné), si deux transactions sont ouvertes et que l'une d'entre elles se termine avec un profit négatif, l'autre transaction ouverte pourrait répondre au profit négatif en augmentant le take profit ? À propos, tout cela se passe sur un seul symbole jusqu'à présent.

Pour dire les choses plus simplement, serait-il possible d'augmenter le take profit d'une transaction une fois que l'autre a été clôturée, quel que soit son profit ? En effet, si deux transactions sont ouvertes et que l'une d'entre elles est fermée, le résultat sera de toute façon négatif.

Merci encore !
 

Cela semble être une tâche assez difficile, que diriez-vous de procéder de la manière suivante : lorsqu'une transaction est ouverte (il peut s'agir d'une ou deux transactions), le take profit est modifié lorsque le prix atteint un certain niveau ?

 

...

Pourquoi ne pas utiliser un trailing stop alors ?

Je veux dire que cela ferait presque 100% (presque) de ce que votre idée originale est et c'est beaucoup, beaucoup plus facile à coder.

madmax3:
Cela semble être une tâche assez difficile, que diriez-vous de procéder comme suit : lorsqu'une transaction est ouverte (il peut s'agir d'une ou deux transactions), le take profit est modifié lorsque le prix atteint un certain niveau ?