Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1065

 
evillive:

Si je comprends bien, vous avez besoin d'une photo après 30 ticks, et non pour chacun des 30 ticks suivants après la fermeture de la position ?

Ne serait-il pas alors plus facile de prendre une photo en fonction du temps ? Disons, après 30 secondes de l'heure de clôture de la commande ?

La photo en a besoin après 30 ticks. Le graphique sera en ticks donc il sera de 30 ticks. Mais dans tous les cas, nous devons travailler avec le tableau. Si d'autres ordres sont fermés dans les 30 secondes, nous devrons compter 30 secondes à partir des autres ordres également.
 
JuliettaRu:
Bonjour, veuillez m'indiquer où trouver l'explication de ma question (je suppose que je ne suis pas le premier à la poser) et ce qu'il faut faire. J'ai installé MT4 sur mon smartphone, mais les graphiques qu'il affiche ont un retard de 20 minutes - je les compare avec les relevés de MT4 sur le PC.
C'est un Graal!
 

Aidez-moi à résoudre ce problème. Je n'arrive pas à trouver comment réparer ce bout de code... Ou plutôt, que dois-je ajouter pour qu'il ne jure pas ?

La valeur de retour de 'OrderModify' doit être vérifiée.

         }    
         if (OrderOpenPrice()-Ask > Korts*Point*Multi)
         {
           if (OrderStopLoss() > Ask +(Korts)*Point*Multi) 
           {
              OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red);
           }
         }            
      }
   }   
   return(0);
 
Guaro:

Aidez-moi à résoudre ce problème. Je n'arrive pas à trouver comment réparer ce bout de code... Ou plutôt, que dois-je ajouter pour qu'il ne jure pas ?

La valeur de retour de 'OrderModify' doit être vérifiée.

La valeur renvoyée par la fonction OrderModify() doit être affectée à une variable afin que la fonction puisse être contrôlée. Ou juste

if(OrderModify(OrderTicket(),OrderOpenPrice(),Ask + (TrSt)*Point*Multi,'1', 0, Red))
Print("Ордер модифицирован успешно.");
 

Aide à la correction d'une erreur de compilation : Magic - identifiant non déclaré

chat :

bool CheckExists(int Type)
{
bool Result = True ;
for(int i = 0 ; i < OrdersTotal() ; i++)
if(OrderSelect(i, SELECT_BY_POS))
if(OrderType() == Type && OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
if(OrderOpenTime() >= Time[0])
Result = False ;
for(i = 0 ; i < OrdersHistoryTotal() ; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
if(OrderType() == Type &&& OrderOpenTime() >= Time[0]
&& OrderMagicNumber() == Magic && OrderSymbol() == Symbol())
Result = False ;
}

return(Result) ;
}

 
Abdus_Ali:

Aide à la correction d'une erreur de compilation : Magic - identifiant non déclaré

chat :

Les variables globales et utilisateur doivent être déclarées au début du code, dans ce cas il s'agit d'une variable utilisateur, écrivez-la comme ceci :

entrée int Magie = 1 ;

 
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen) ;
si (Bid>=TP1) // 1(1/0)
{

OrderModify(ticket2,? ????, SL2, Price2, 0, clrNONE) ;

Bonsoir, dites-moi comment modifier la commande de ticket2 ? Quel prix mettre au lieu de ? ????.....? Ou dois-je d'abord sélectionner cette commande pour la modifier ? Bien qu'en fait je l'ai déjà sélectionné en écrivant dans les paramètres de la commande OrderModify(ticket2,.....

 
bobrush:
ticket2=OrderSend( Symbol(),OP_SELL, lot1, Price2, 20, SL2, TP2, NULL, 2,0, clrGreen) ;
si (Bid>=TP1) // 1(1/0)
{

OrderModify(ticket2,? ????, SL2, Price2, 0, clrNONE) ;

Bonsoir, dites-moi comment modifier la commande de ticket2 ? Quel prix mettre au lieu de ? ????.....? Ou dois-je d'abord sélectionner cette commande pour la modifier ? Bien qu'en fait je l'ai déjà sélectionné en écrivant dans les paramètres de la commande OrderModify(ticket2,.....

Mettre OrderOpenPrice()
 
Je n'arrive pas à comprendre pourquoi la recherche et la fermeture des positions s'arrête dans la boucle, j'ai déjà tourné la boucle et augmenté le nombre de positions, dans le testeur il saute (laisse) toujours des positions... dis-moi si tu peux voir où et ce qui ne va pas...
int positions=PositionsTotal();
       for(int x1=-1;x1<positions;x1++) 
          {
           ulong pos_tiket11=PositionGetTicket(x1);
           if(PositionSelectByTicket(pos_tiket11))
             {
              string comment11=PositionGetString(POSITION_COMMENT);
              Print("ПОЗИЦИЯ ТИКЕТ + "+(string)pos_tiket11+" "+comment11+" ТИП "+(string)PositionGetInteger(POSITION_TYPE));
              if(pos_tiket11!=TIKET11) 
                {
                 ENUM_POSITION_TYPE type11=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
                 if(type11==POSITION_TYPE_BUY)
                   {
                    Print("ПОЗИЦИЯ ВЫБРАНА КОМЕНТ = "+comment11);
                    mytrade111.PositionClose(pos_tiket11,15);
                    TIKKET=0;    
                    dolivka_P1=1;
                   } 
                }
             }
          }
 
ara66676:
Je n'arrive pas à comprendre pourquoi la recherche et la fermeture des positions s'arrêtent dans la boucle, j'ai déjà inversé la boucle et augmenté le nombre de positions, mais dans le testeur il saute (quitte) toujours des positions.

Puisque la question est sur le forum mql4, je suppose que le code est aussi sur mql4. Ou c'est faux ?

Dans mql4, il n'y a pas de positions, il n'y a que des ordres.