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

 
Mihail Matkovskij #:

Mais ça augmente le risque. Martin aussi, ainsi que le calcul de la moyenne et d'autres stratégies similaires. Cependant, tout peut être utilisé à bon escient par ceux qui le comprennent.

Au contraire, elle réduit le risque. Ici, nous devons choisir le bon actif de couverture et nous pouvons dormir sur nos deux oreilles. Mais avec la moyenne, le sommeil est souvent perturbé.

 
Mihail Matkovskij #:

Cela dépend de quel lot avec quel profit... Je pense qu'il est préférable de trier les positions par profit. Et fermez les plus gros d'abord !

Cela dépend pour quoi faire :-) pour dessiner une belle courbe dans les signaux et pour couper le "facteur de récupération" tout de même....

 
Vitaly Muzichenko #:

Au contraire, elle réduit le risque. Ici, vous devez choisir le bon actif de couverture de manière approximative et vous pourrez dormir sur vos deux oreilles. Mais avec la moyenne, le sommeil est souvent perturbé.

Oh... donc vous avez besoin d'un atout supplémentaire pour cela ? Intéressant... Ça ressemble à une diversification des risques et des pertes...

J'ai toujours pensé que la couverture consistait à prendre des positions opposées sur un même instrument.

 
Mihail Matkovskij #:

Ah... donc vous avez besoin d'un actif supplémentaire pour cela ? Intéressant... Ça ressemble à une diversification des risques et des pertes...

J'ai toujours pensé que la couverture consistait à prendre des positions opposées sur le même instrument.

C'est un verrouillage, du mot lock.

 
Tretyakov Rostyslav #:
Vérifiez

Bonjour Rostislav ! !!

Pourriez-vous commenter les changements d'hier ? Je ne comprends pas leur logique.

//-------------------------------------------------------------------+
   Spread       = MarketInfo(Symbol(),MODE_SPREAD)*Point;
   MinLot       = MarketInfo(Symbol(),MODE_MINLOT);
   Balance      = AccountInfoDouble(ACCOUNT_BALANCE);
   FreeMargin   = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   avg_buy      = ObjectGetDouble(0,"AveragePriceLine0",OBJPROP_PRICE);
   avg_sell     = ObjectGetDouble(0,"AveragePriceLine1",OBJPROP_PRICE);
   Drawdown     = (Balance - FreeMargin)/Balance*100;
//-------------------------------------------------------------------+  Команда на удаление линий отображающую среднюю цену и текста
   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }
 
EVGENII SHELIPOV #:

Bonjour Rostislav ! !!

Pourriez-vous commenter les changements d'hier ? Je ne comprends pas leur logique.


S'il n'y a pas d'ordres ouverts, flag_close devient "0".

   if(CountTrade() == 0)
     {
      flag_close=0;

Lorsque flag_close=0 ; la demande à ClosseAll() s'arrête.

 
Tretyakov Rostyslav #:

S'il n'y a pas d'ordres ouverts, flag_close recevra "0".

Quand flag_close=0 ; la demande de ClosseAll() s'arrête.

Oui, je l'ai.

Vous en avez besoin lorsque vous supprimez des objets.

Ce qui est intéressant, c'est que si le drapeau est bloqué à cet endroit, le conseiller expert devient bizarre.

 
EVGENII SHELIPOV #:

Oui, je comprends.

Pourquoi elle est nécessaire lors de la suppression d'objets.

Ce qui est intéressant, c'est que si vous bloquez le drapeau à cet endroit, le conseiller expert commence à faire des choses bizarres.

Cela n'a rien à voir avec la suppression d'objets.

Il s'agit de déterminer l'absence d'ordres

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      if(ObjectFind(0,"signal4")==0&&CountTrade(0)<1)//для бай
        {
         ObjectDelete(0,"signal4");
        }
      if(ObjectFind(0,"signal3")==0&&CountTrade(1)<1)//для селл
        {
         ObjectDelete(0,"signal3");
        }
     }

Vous pouvez effectuer toutes les opérations internes qui ne nécessitent pas l'absence d'ordres

De plus, il y a beaucoup de choses inutiles dans cette partie du code,

Cette variante fera la même chose que la précédente.

   if(CountTrade() == 0)
     {
      flag_close=0;
      ObjectsDeleteAll(0,"AveragePriceLine");
      ObjectDelete(0,"signal4");
      ObjectDelete(0,"signal3");
     }
 
Tretyakov Rostyslav #:

Qu'est-ce que la suppression des objets a à voir avec

il s'agit de déterminer s'il n'y a pas de commandes

et à l'intérieur, vous pouvez effectuer n'importe quelle opération qui ne nécessite aucune commande.

De plus, il y a beaucoup de choses inutiles dans cette partie du code,

Cette variante fera la même chose que la précédente.

Je comprends, Rostislav.

Je ne comprends pas pourquoi, si je bloque le drapeau dans cette fonction, l'EA commence à ouvrir et fermer 100-200 ordres à la fois.

 
Vitaly Muzichenko #:

C'est un verrouillage, du mot lock.

Oui. Mais une serrure s'ouvre avec le même lot. Et deux ordres dirigés différemment sont ouverts simultanément. Une couverture est lorsqu'une transaction est entrée dans un drawdown, et que le trader ouvre une position avec un lot plus grand dans la même direction (j'ai mélangé avec des directions différentes) impliquant que le prix va s'inverser pour faire un profit sur une transaction avec un lot plus grand et couvrir la perte sur une transaction avec un lot plus petit ou une moyenne à 0. Si j'ai quelque chose de faux, corrigez-moi.

Raison: