Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 43

 
Dimka-novitsek: Aun así, sigue luchando... Digamos que action=ORDER_TYPE_SELL, dice 'action' - identificador no declarado. OENUM_ORDER_TYPE action=ORDER_TYPE_SELL, dice 'action' - token inesperado. Y así sucesivamente...

¿Así que "qué es una función y qué es una llamada a una función" sigue sin leerse? :)

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

Yo me encargo de eso...

No hago la función... ¡Averiguaré de dónde viene! Siento si te he confundido o si te he entendido mal. Yo sólo...

Ah, aquí.

OrderCalcMargin

Calcula el importe del margen necesario para el tipo de orden especificado en la cuenta actual y en el entorno de mercado actual, sin tener en cuenta las órdenes pendientes actuales y las posiciones abiertas. Permite estimar el importe del margen para la operación prevista. El valor se devuelve en la moneda de la cuenta.
bool MargenCálculoPedido(
ENUM_ORDER_TYPE acción, // tipo de pedido
string symbol, // nombre del símbolo
doble volumen, // volumen
precio doble, //precio abierto
double& margin //variable para obtener el valor del margen
);

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

Pero aún así, se ensucia... Digamos que action=ORDER_TYPE_SELL, dice 'action' - identificador no declarado. OENUM_ORDER_TYPE action=ORDER_TYPE_SELL, dice 'action' - token inesperado.

Está en todas partes... Y en inglés...

¡Dimitri!

¡Una vez más te señalo las secciones de funciones y llamadas a funciones!


Definición de la función:

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

primero viene su cabecera.

Tiene el tipo de valor de retorno (int), el nombre de la función y sus parámetros de entrada con sus tipos.


llamada a la función:

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

aquí primero has definido algunas variables (o no)

y luego llamas a la función escribiendo entre paréntesis para qué números o variables la llamas.

 
Ah, ¡declararé las variables por encima de la función!
 
Ugh!! 0 error(es), 0 advertencia(s) 1 1 , ¡¡¡Gracias!!!
 
Por favor ayúdame, no puedo hacerme programador, así que solo dime que hacer, tengo un Expert Advisor mql5 como rehacerlo para mql4, si no puedes dímelo por favor!!!! o en privado
 
fokeevis:
Ayuda por favor, no puedo convertirme en programador, así que por favor díganme que hacer, tengo un Expert Advisor mql5, como puedo modificarlo a mql4, si no es difícil que me lo digan!!!! o en persona.
Es complicado y muy difícil, sobre todo para los que no son programadores, así que deberías contactar con Jobs.
 
He desarrollado una función a petición de alguien, debería ser algo así.
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);
                 
                   }
Todavía no lo he compilado, no lo he probado, lo escribí en el Bloc de notas.
 
Dimka-novitsek:
He desarrollado una función a petición de alguien, debería ser algo así. Todavía no la he compilado, no la he probado en el trabajo, la escribí en el Bloc de notas.
¿Cuál es la pregunta?
 

¿Es posible hacer que el spread en el servidor MetaQuotes-Demo sea constante, porque la depuración, el ajuste se convierte en una pesadilla, hay que tener en cuenta el spread, que cambia constantemente y distorsiona la imagen????????

Eldiferencial flotante es un dolor de cabeza innecesario.

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