besoin de conseils d'un pro du chalut qui contrôle deux positions indépendamment l'une de l'autre, comment le mettre en œuvre ? - page 8

 
charony:

Je suis désolé pour vous.

De même.)

ZS : sept pages de chalutage, c'est comme ça qu'il faut faire).

 
Oui, je l'ai coupé deux fois et c'est toujours court.
 

)))).

ZS : il n'y a pas de test dans le testeur.

1. Placez le conseiller expert sur le graphique avec des positions ouvertes.

2. Le conseiller expert marque chaque position avec sa propre ligne.

3. Dans les propriétés de la ligne (la ligne "Description"), définissez la ligne requise pour la commande requise en points (ne changez pas le nom de la ligne, il est égal au ticket de commande).

4. Observez comment le chalut fonctionne)))

5. Ne demandez pas comment nous pouvons faire face à ce que nous ne pouvons pas faire.

Dossiers :
 
//+-----------------------------trailingstop----------------------------------------------
for(int i=OrdersTotal()-1;i>=0;i--)
   {
      if(OrderSelect(i,SELECT_BY_POS)==true)
      {
         {
            int cmd=OrderType();
            if(cmd==OP_BUY)
            {
               if(ObjectFind(DoubleToStr(OrderTicket(),0))<0)
               {
                  ObjectCreateTrend(false,DoubleToStr(OrderTicket(),0),OBJ_HLINE,0,0,OrderOpenPrice(),0,0,Blue,0,0,"",0);
               }
               else
               {
                  if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")//if(TrailingStop>0)  
                  {                 
                     if(Bid-OrderOpenPrice()>Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))
                     {
                        if(OrderStopLoss()<Bid-Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))
                        {
                           OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))),OrderTakeProfit(),0,Green);
                        }
                     }
                  }
               }
            }
            if(cmd==OP_SELL)
            {
               if(ObjectFind(DoubleToStr(OrderTicket(),0))<0)
               {
                  ObjectCreateTrend(false,DoubleToStr(OrderTicket(),0),OBJ_HLINE,0,0,OrderOpenPrice(),0,0,Red,0,0,"",0);
               }
               else
               {
                  if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")//TrailingStop>0)  
                  {                 
                     if((OrderOpenPrice()-Ask)>(Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0)))))
                     {
                        if((OrderStopLoss()>(Ask+Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))))) || (OrderStopLoss()==0))
                        {
                           OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*StrToDouble(ObjectDescription(DoubleToStr(OrderTicket(),0))),OrderTakeProfit(),0,Red);
                        }
                     }
                  }
               }
            }
         }
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
void ObjectCreateTrend(bool RayLines,string iObjectName,int Type,int iWindow,int X1Time,double Y1Price,int X2Time,double Y2Price,color iColor,int Code,int sound,string coment,int angle)
{
        if (ObjectFind(iObjectName)<0) {
                ObjectCreate(iObjectName,Type,iWindow,0,0);
                ObjectSet(iObjectName,OBJPROP_COLOR,iColor);
         ObjectSet(iObjectName,OBJPROP_RAY,RayLines);
        }
        if (X1Time!=0)
           ObjectSet(iObjectName,OBJPROP_TIME1,X1Time);
        ObjectSet(iObjectName,OBJPROP_PRICE1,Y1Price);
        if (X2Time!=0)
           ObjectSet(iObjectName,OBJPROP_TIME2,X2Time);
        if (Y2Price!=0)
           ObjectSet(iObjectName,OBJPROP_PRICE2,Y2Price);
        if (Code!=0)
           ObjectSet(iObjectName,OBJPROP_ARROWCODE,Code);
        if (coment!="")
           ObjectSetText(iObjectName,coment,10,"Times New Roman",iColor);
        if (angle!=0)
           ObjectSet(iObjectName,OBJPROP_ANGLE,angle);
        //ObjectSet(iObjectName,OBJPROP_FIBOLEVELS,7);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+0,0);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+1,0.5);
        //ObjectSet(iObjectName,OBJPROP_FIRSTLEVEL+2,1);
}


 //-------------------------------------tral-------------------------------------------------
  
//+-----------------------------trailingstop end----------------------------------------------+
   
такое вставил
 


J'ai trouvé ça.
 

vous mettez de la merde - vous obtenez de la merde, puis lorsque vous créez un objet, faites la description "30" au lieu de vérifier si la description est égale à "30".

ZS : aurait pu demander comment rendre la description d'un objet égale à "30" en une seule fois.

 
if(ObjectDescription(DoubleToStr(OrderTicket(),0))!="30")/

Pensez-vous que remplacer "" par "30" aurait dû donner ce résultat ?

ZS : cette ligne empêchait le chalutage de commencer lorsque la description était vide.

 
sanyooooook:

Pensez-vous que remplacer "" par "30" aurait dû donner ce résultat ?

ZS : cette ligne empêchait le chalutage de commencer lorsque la description était vide.

Vous, les Oudmourtes, ne connaissez sûrement pas le vieux proverbe kholya - "Ne gaspillez pas la force d'un kume..." :)))
 
granit77:
Vous, les Oudmourtes, ne connaissez sûrement pas le vieux proverbe khohlien - "Ne gaspillez pas la force d'un kume..." :))
Je l'ai entendu pour la première fois, c'est probablement "comme un pois contre le mur", ou "comme un poisson contre la glace", ou "enseigner aux imbéciles, c'est comme guérir les morts").
 
sanyooooook:

Si vous mettez de la merde, vous obtenez de la merde, alors mettez la description "30" lors de la création de l'objet au lieu de vérifier si la description est égale à "30".

ZS : pourrait demander comment rendre la description de l'objet immédiatement égale à "30".


J'ai peur de demander, tu es un gars tellement en colère.

Dans lespropriétés de la ligne (ligne "Description"), dans les paragraphes, définissez le chalut souhaité.

ObjectDescription est une propriété, mettez-la là.

Où voulez-vous l'insérer ? Chalut de 30 points