Questions des débutants MQL5 MT5 MetaTrader 5 - page 43

 
Dimka-novitsek: Pourtant, il se bat toujours... Disons que action=ORDER_TYPE_SELL, il est indiqué 'action' - identifiant non déclaré. OuENUM_ORDER_TYPE action=ORDER_TYPE_SELL, qui dit 'action' - token inattendu. Et ainsi de suite...

Donc "qu'est-ce qu'une fonction et qu'est-ce qu'un appel de fonction" n'a toujours pas été lu ? :)

OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,i,last_tick.bid,margin); //параметры функции вставляются примерно так :)
 

Je vais prendre ça...

Je ne fais pas la fonction... Je vais trouver d'où ça vient ! Je suis désolé si je vous ai induit en erreur ou si j'ai mal compris. Je vais juste...

Ah, ici.

OrderCalcMargin

Calcule le montant de la marge requise pour le type d'ordre spécifié dans le compte courant et dans l'environnement de marché actuel, sans tenir compte des ordres en cours et des positions ouvertes. Permet d'estimer le montant de la marge pour la transaction prévue. La valeur est retournée dans la devise du compte.
bool OrderCalcMargin(
ENUM_ORDER_TYPE action, // type de commande
string symbol, // nom du symbole
double volume, // volume
double prix, //prix d'ouverture
double& margin //variable pour obtenir la valeur de la marge
) ;

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Dimka-novitsek:

Il fronce toujours les sourcils... Disons que action=ORDER_TYPE_SELL, il est indiqué 'action' - identifiant non déclaré. OuENUM_ORDER_TYPE action=ORDER_TYPE_SELL, qui dit 'action' - token inattendu.

C'est partout... Et en anglais...

Dimitri !

Une fois de plus, je vous renvoie aux sections sur les fonctions et les appels de fonctions !


Définition de la fonction :

int function (int a, int b)
{
   return (a+b);
}

vient d'abord son en-tête.

Il comporte le type de valeur de retour (int), le nom de la fonction et ses paramètres d'entrée avec leurs types !


appel de fonction :

int c = 1;
int d = 5;
int summa;
summa = function(c, d);   // вызывается функция, фактические параметры переменные c и d
summa = function(1, 3);   // вызывается функция, фактические параметры числа 1 и 3
summa = function(1, d);   // вызывается функция, фактические параметры число 1 и переменная d

ici, vous avez d'abord défini quelques variables (ou non)

et ensuite vous appelez la fonction en écrivant entre parenthèses pour quels nombres ou variables vous l'appelez.

 
Ah, je vais déclarer les variables au-dessus de la fonction !
 
Ugh ! !! 0 erreur(s), 0 avertissement(s) 1 1 , Merci ! !!
 
S'il vous plaît aidez-moi, je ne peux pas devenir un programmeur, alors juste me dire ce qu'il faut faire, j'ai un Expert Advisor mql5 comment le modifier à mql4, si vous ne pouvez pas me dire s'il vous plaît !!!! ou en privé
 
fokeevis:
Aide s'il vous plaît, je ne peux pas devenir un programmeur, alors s'il vous plaît dites-moi ce qu'il faut faire, j'ai un mql5 Expert Advisor, comment puis-je le modifier à mql4, si vous n'êtes pas difficile à me dire à ce sujet !!!! ou en personne.
C'est compliqué et très difficile, surtout pour un non-programmeur, et vous avez donc raison de demander Jobs.
 
J'ai développé une fonction à la demande de quelqu'un, elle devrait ressembler à quelque chose comme ceci.
double GetLot(  double Risk,  ENUM_ORDER_TYPE  action ,  string  symbol ,   double  price ,  double   Lot  ){ 
                     double  volume=1,margin=1; 
                       if(!use_percent_of_deposit) return  (Lot) ; MqlTick last_tick;SymbolInfoTick(Symbol(),last_tick);
                                           switch(action)
     {
      case ORDER_TYPE_BUY: price=last_tick.asc ;
      case ORDER_TYPE_SELL: price=last_tick.bid ;
      case ORDER_TYPE_BUY_LIMIT: price=price;
      case ORDER_TYPE_SELL_LIMIT:  price=price;
      case ORDER_TYPE_BUY_STOP:  price=price;
      case ORDER_TYPE_SELL_STOP:  price=price;
      case ORDER_TYPE_BUY_STOP_LIMIT:  price=price;
      case ORDER_TYPE_SELL_STOP_LIMIT:  price=price;}
                     OrderCalcMargin(
         action,           // тип ордера
                  symbol,           // имя символа
                  volume,           // объем
                  price,            // цена открытия
                 margin            // переменная для получения значения маржи
                   ); 
         
         double  Koeffitsyenta=AccountInfoDouble(ACCOUNT_BALANCE)/ margin ;
         Lot= (Koeffitsyenta*Risk)/100;
         double Pt=1/SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP); 
          Lot= Lot*Pt; Print( "Lot*Pt  " ,  Lot   );
         Lot=NormalizeDouble(Lot,0); 
          Lot= Lot/Pt;
         double MAX=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
           double MIN=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
          if (Lot>MAX) Lot=MAX;if (Lot<MIN) Lot=MIN;
          return(Lot);
                 
                   }
Je ne l'ai pas encore compilé, je ne l'ai pas testé, je l'ai écrit dans Notepad.
 
Dimka-novitsek:
J'ai développé une fonction à la demande de quelqu'un, elle devrait ressembler à quelque chose comme ceci. Je ne l'ai pas encore compilé, je ne l'ai pas testé au travail, je l'ai écrit dans Notepad.
Alors quelle est la question ?
 

Est-il possible de rendre constant le spread sur le serveur MetaQuotes-Demo, car le débogage, l'ajustement tourne au cauchemar, il faut tenir compte du spread, qui change constamment et fausse l'image ????????.

Lespread flottant est un mal de tête inutile.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5