[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 149

 
Pouvez-vous me dire comment les fonds (AccountEquity() ) et les garanties (AccountMargin() ) sont séparés pour les positions d'achat et de vente ?
 
T-G:
Pouvez-vous me dire comment les fonds (AccountEquity() ) et les garanties (AccountMargin() ) sont séparés pour les positions d'achat et de vente ?
AccountEquity() n'est possible que pour votre compte et AccountMargin() avec vos conditions voir les très "Fonctions utiles" de Kim !
 
Messieurs, quelqu'un peut-il conseiller un indicateur ou un Expert Advisor, exposant les niveaux de support et de résistance en D1, sans décalage de préférence))))
 
Top2n:
Messieurs, quelqu'un peut-il conseiller un indicateur ou un Expert Advisor, exposant les niveaux de support et de résistance sur D1, sans lags de préférence))))
Recherche de : DailyPivotPoints
 

Bonjour à tous, j'ai un problème et je n'arrive pas à savoir ce que c'est.


Il y a deux fonctions données. Si j'appelle le 1, alors rien ne fonctionne. Dans le second cas, tout fonctionne. Veuillez indiquer quelle est l'erreur ?

Merci d'avance !

int OrderBuy(double pLots, string pComment, int pMagic, int pDatetime, color pColor)
{
   int ticket = 0;
   int err = 0;
   int c = 0;
   int NumberOfTries = 100;
   for (c = 0; c < NumberOfTries; c++) 
     {
         RefreshRates();
         ticket = OrderSend(Symbol(), OP_BUY, pLots, Ask, 0, Ask-0.0005, Ask+0.0005, pComment, pMagic, pDatetime, pColor);
         err = GetLastError();
         if (err == 0/* NO_ERROR */) break;
         if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
         Sleep(5000);
      }
      return(ticket);

}


int OrderSell(double pLots, string pComment, int pMagic, int pDatetime, color pColor)
{
   int ticket = 0;
   int err = 0;
   int c = 0;
   int NumberOfTries = 100;
   
   for (c = 0; c < NumberOfTries; c++) 
   {
         RefreshRates();
         ticket = OrderSend(Symbol(), OP_SELL, pLots, Bid, 0, Bid+0.0005, Bid-0.0005, pComment, pMagic, pDatetime, pColor);
         err = GetLastError();
         if (err == 0/* NO_ERROR */) break;
         if (!(err == 4/* SERVER_BUSY */ || err == 137/* BROKER_BUSY */ || err == 146/* TRADE_CONTEXT_BUSY */ || err == 136/* OFF_QUOTES */)) break;
         Sleep(5000);
    }
    return(ticket);

}





//вызовы функций

ticket = OrderBuy(lot, "---"+count+" ---", MagicNumber, 0, HotPink);
         Print(ticket+":тикет");//здесь выдает -1
         if (ticket < 0) 
               {
                  Print("Error: ", GetLastError());//здесь выдает "0";
                  return (0);
               } 




ticket = OrderSell(lot, "---"+count+" ---", MagicNumber, 0, HotPink);
         Print(ticket+":тикет");
         if (ticket < 0) 
               {
                  Print("Error: ", GetLastError());
                  return (0);
               } 
 
Si vous voulez rester dans les limites des calculs du terminal, le plus simple est de soustraire de ce que vous avez ce qui reste si vous ouvrez un ordre approprié :
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();
 
arabon:

Bonjour à tous, j'ai un problème et je n'arrive pas à savoir ce que c'est.


Il y a deux fonctions données. Si j'appelle le 1, alors rien ne fonctionne. Dans le second cas, tout fonctionne. Veuillez indiquer quelle est l'erreur ?

Merci d'avance !


Lafonction GetLastError() qui dans OrderSell et OrderBuy en boucle, réinitialise la valeur de l'erreur (voir aide sur GetLastError ATTENTION), donc

Print("Error: ", GetLastError());

Essayez de l'imprimer directement dans la boucle, vous verrez alors où l'ordre ne s'ouvre pas à cause d'une erreur.

 

J'ai fait un indicateur simple qui "retourne" l'instrument. Parfois, pour la perception, il est plus facile de voir une paire à l'envers, et l'œil est " lavé " en regardant la même image. Je n'ai jamais lu de fichier (je n'ai même jamais essayé de travailler avec un fichier), je peux afficher un graphique complet, quelqu'un a-t-il une idée ?


Dossiers :
converter.mq4  2 kb
 

Je ne l'ai toujours pas trouvé, ni en cherchant, ni parmi les fonctions de Kim.

Comment calculer correctement la marge pour les ordres ouverts séparément ?

J'avais l'habitude de faire comme ça :

в цикле
if (OrderType() == OP_BUY ) {  
   MarginBuy += (OrderOpenPrice()*OrderLots()/AccountLeverage())*MarketInfo(Symbol(), MODE_LOTSIZE);
}
         
if (OrderType() == OP_SELL ) {  
   MarginSell += (OrderOpenPrice()*OrderLots()/AccountLeverage())*MarketInfo(Symbol(), MODE_LOTSIZE);
}

J'ai obtenu une valeur différente de celle indiquée par le terminal.

Si vous voulez entrer dans les calculs du terminal, le plus simple est de soustraire de ce que vous avez ce qui reste si vous ouvrez l'ordre correspondant :
double ld_MarginPosition = AccountFreeMargin() - AccountFreeMarginCheck();


Tu ne peux pas juste le soustraire. J'ai besoin d'un calcul séparé pour chaque direction.

 
Terminal : Dépôt 617.84<=> T-G : Dépôt vente 617.83