Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 139

 
Artyom Trishkin:

Même sous Windows, les onglets ne peuvent pas être triés à l'aide de mql4.

Vous pouvez uniquement ouvrir les graphiques dans l'ordre que vous souhaitez et définir les modèles nécessaires sur ceux-ci.

Bien sûr, vous ne pouvez pas les trier, mais vous pouvez les déplacer un par un manuellement.

Quant au tri par mql, je pense que vous pouvez essayer l'option suivante :

1. Nous fermons toutes les fenêtres sauf celle où le code, le conseiller expert ou le script est en cours d'exécution.

2. ouvrir de nouvelles fenêtres dans un certain ordre, y compris celle avec le conseiller expert et les ajuster ou appliquer un modèle.

3. enfin, supprimez la fenêtre dans laquelle le code s'exécute.

 
Alexey Viktorov:

Bien sûr, vous ne pouvez pas les trier, mais vous pouvez les déplacer manuellement un par un.

Quant au tri par mql, je pense que vous pouvez essayer l'option suivante :

1. Fermez toutes les fenêtres sauf celle où le code, l'Expert Advisor ou le script est en cours d'exécution.

2. ouvrir de nouvelles fenêtres dans un certain ordre, y compris celle avec le conseiller expert et les ajuster ou appliquer un modèle.

3) Enfin, supprimez la fenêtre dans laquelle le code s'exécute.

J'y ai déjà réfléchi - il y a un certain nombre de facteurs d'interférence, par exemple - sur n'importe lequel des graphiques, le conseiller expert fonctionne
 
Artyom Trishkin:
J'y ai déjà réfléchi - il y a un certain nombre de facteurs d'interférence, par exemple, un EA est en cours d'exécution sur certains des graphiques.
Dans ce cas, il est probablement préférable de créer des modèles à partir de toutes les cartes avant de les supprimer. Et après l'ouverture, appliquez ces modèles. J'espère qu'il y a très peu d'EA qui écrivent maintenant et qui ne prennent pas leurs ordres.
 
Artyom Trishkin:
J'y ai déjà pensé - il y a un certain nombre de facteurs d'interférence, par exemple - un conseiller expert est en cours d'exécution sur l'un des graphiques.

ChartID

Renvoie l'ID du graphique actuel.

longChartID() ;

Valeur retournée

Valeur de type long.

 
Alekseu Fedotov:

ChartID

Renvoie l'ID du graphique actuel.

longChartID() ;

Valeur retournée

Valeur de type long.

И ? Comment le fait de connaître votre identifiant peut-il aider à trier les graphiques ouverts, sur lesquels travaillent les Expert Advisors ? :)
 
Artyom Trishkin:
И ? En quoi le fait de connaître votre ID aide-t-il à trier les graphiques ouverts sur lesquels les EA fonctionnent ? :)


Je veux dire le graphique sur lequel le conseiller expert travaille.

Artyom Trishkin:

J'y ai déjà réfléchi - il y a quelques facteurs de confusion, par exemple -sur l'un des graphiques le conseiller expert fonctionne
 
Alekseu Fedotov:


Je parle du graphique sur lequel l'EA fonctionne.

Artyom Trishkin:

J'y ai déjà pensé - il y a un certain nombre de facteurs d'interférence, par exemple -sur certains des graphiques, le conseiller expert fonctionne
Vous ne voyez aucun problème à supprimer les graphiques existants et à les rouvrir dans le bon ordre au cas où le conseiller expert ou les indicateurs fonctionnent sur certains d'entre eux ?
Réfléchissez donc à la manière dont vous allez vous y prendre, et vous verrez que l'identification et le fait de la connaître ne vous aideront pas ici.
 
Alekseu Fedotov:


Je parle du graphique sur lequel l'EA fonctionne.

Artyom Trishkin:

J'y ai déjà pensé - il y a un certain nombre de facteurs d'interférence, par exemple - l'EA fonctionne sur certains des graphiques.

Je comprends que dans un dossier de profil, je dois renommer les caractères dans un certain ordre - le réenregistrement des caractères se produit lorsque je change de profil ou que je ferme le terminal - il est donc évident que je dois travailler avec des fichiers dont le profil est fermé. Mais, tout cela nécessite d'appeler des bibliothèques. C'est comme ça, je pense.
 

Chers utilisateurs du forum !

J'ai une idée pour ajouter une condition à la fonction de calcul duvolume de la position: si le dernier ordre s'est clôturé avec une perte, le suivant sera placé avec un ratio accru.

Je l'ai déjà écrit mais l'un des retours ne fonctionne pas, puis l'autre.

Veuillez me conseiller sur ce que je fais de mal.

double GetLot(int type)

{

if(CountOrdersType(type)==0 || LastOrderTypeLots(type)>Max_Lot)

{

si( !Auto_Lot)return(Start_Lot) ;

return(AccountBalance()*(Lot_Percents/100)*AccountLeverage()/MarketInfo(Symbol(),MODE_LOTSIZE)); }

{ if(!History)return(Start_Lot) ;

datetime time=0;double lastlot=0;int lastop=0;double prof=0 ;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic&&OrderType()<=1)

{

if(time<OrderCloseTime()){time=OrderCloseTime();lastlot=OrderLots();lastop=OrderType();prof=OrderProfit();}

}

si(prof < 0 && OrderMagicNumber() == Magic)lot=OrderLots() ;

retour (lot * multiplicateur historique); }

return(LastOrderTypeLots(type)*Lot_Multiplier) ;

}


 
Artyom Trishkin:
Vous ne voyez aucun problème à supprimer les graphiques existants et à les rouvrir dans le bon ordre au cas où un EA ou des indicateurs sont en cours d'exécution sur l'un d'entre eux ?
Réfléchissez donc à la manière dont vous allez vous y prendre, et vous vous rendrez compte que la carte d'identité et le fait que vous la connaissiez ne vous seront d'aucune utilité.


Réflexion,

Concernant la suppression

   long Chart_ID = ChartID();
   int i=0,limit=100;
   while(i<limit)
     {
    if(ChartNext(Chart_ID)<0) break;
      ChartClose(ChartNext(Chart_ID));
      i++;
     }
Raison: