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

 
leonerd:

¿Qué significa la escala de tiempo en la historia del comercio?

Escala X. ¿Qué significan los valores de la escala?

Dígame, ¿qué significan las cifras del gráfico en la declaración de operaciones?

 
leonerd:

¿Qué significan estas cifras en el gráfico de la declaración comercial?

El número de la operación que ha provocado el cambio de saldo.

 
No lo entendí de inmediato, es una pregunta infantil:

¿Cómo puedo probar mi TS en MT5 sin tener en cuenta el spread?

En MT4 todo es visible inmediatamente en el probador, en MT5 ¿debo generar un símbolo de oferta personalizado?
 
Para trabajar con Json, ¿es esto lo mejor o hay algo más novedoso y correcto?
JSON Serialization and Deserialization (native MQL)
JSON Serialization and Deserialization (native MQL)
  • www.mql5.com
ForecastOscilator_HTF The ForecastOscilator indicator with the timeframe selection option available in the input parameters. Flat_HTF The Flat indicator with the timeframe selection option available in the input parameters. FX5_SelfAdjustingRSI_HTF The FX5_SelfAdjustingRSI...
 
Igor Makanu:
No lo entendí de inmediato, es una pregunta infantil:

¿Cómo puedo probar mi TS en MT5 sin tener en cuenta el spread?

En MT4 todo es visible inmediatamente en el probador, en MT5 ¿debo generar un símbolo de oferta personalizado?

Puede intentar abrir la ventana"Probador de Estrategias", pestaña "Ajustes" - pulse el botón al lado del símbolo y corrija el símbolo - ponga el spread a "0".

 

MT5

Por favor, aconseje cómo implementar el aumento de los lotes en función del equilibrio.

Pero no por %, sino por valor de crecimiento de saldo.

Con cada aumento de saldo de 1.000 dólares quiero aumentar el lote en un paso de 0,1

Mis datos iniciales son elpar EUR/USD

Depósito (saldo inicial) 1000 $

Lote inicial 0,1

Necesidad.

Si el depósito:

1000 entonces lote 0,1

2000 entonces lote 0,2

3000 entonces lote 0,3

Etc.

Ahora utilizo este método:

if (Balance>= 1000 && Balance<=2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<=3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<=3000)  Lot = 0.3;

Etc.

Pero en lugar de esta enumeración interminable, me gustaría tener una función.

Intenté inventarlo yo mismo, pero no funcionó muy bien.

Quizás por problemas de normalización...

Por favor, aconsejen, tal vez alguien tenga una solución preparada o un ejemplo.

Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
Пара EUR/USD: технический анализ, новости Forex, фундаментальный анализ - Блоги трейдеров и аналитика финансовых рынков
  • www.mql5.com
Валютная пара EUR/USD — самая ликвидная, поскольку в ней участвуют первая и вторая по значимости мировые резервные валюты. Это подтверждается и статистически: доллар и евро самые крупные по объему
 
Vladpedro:

MT5

Por favor, aconseje cómo implementar el aumento de los lotes en función del equilibrio.

Pero no por %, sino por valor de crecimiento de saldo.

Con cada aumento de saldo de 1.000 dólares quiero aumentar el lote en un paso de 0,1

Mis datos iniciales son elpar EUR/USD

Depósito (saldo inicial) 1000 $

Lote inicial 0,1

Necesidad.

Si el depósito:

1000 entonces lote 0,1

2000 entonces lote 0,2

3000 entonces lote 0,3

Etc.

Ahora utilizo este método:

Etc.

Pero en lugar de esta enumeración interminable, me gustaría tener una función.

Intenté inventarlo yo mismo, pero no funcionó muy bien.

Quizás por problemas de normalización...

Tal vez alguien tenga una solución lista o un ejemplo.

Preste atención al cociente al dividir el depósito por 1000. En un depósito < 2000 habrá 1 entero y algunas décimas, centésimas... que no son de interés. El depósito de 2000 será de 2 y así sucesivamente. Resulta que basta con multiplicar la parte entera de esta fracción por 0,1 y obtener lo que queremos.

Y en su lista hay un error, aunque insignificante. La forma correcta es la siguiente

if (Balance>= 1000 && Balance<2000)  Lot = 0.1;
if (Balance>= 2000 && Balance<3000)  Lot = 0.2;
if (Balance>= 3000 && Balance<3000)  Lot = 0.3;
 
Vladpedro:

MT5

Por favor, aconseje cómo implementar el aumento de los lotes en función del equilibrio.

Pero no por %, sino por valor de crecimiento de saldo.

Con cada aumento de saldo de 1.000 dólares quiero aumentar el lote en un paso de 0,1

Mis datos iniciales son elpar EUR/USD

Depósito (saldo inicial) 1000 $

Lote inicial 0,1

Necesidad.

Si el depósito:

1000 entonces lote 0,1

2000 entonces lote 0,2

3000 entonces lote 0,3

Etc.

Ahora utilizo este método:

Etc.

Pero en lugar de esta enumeración interminable, me gustaría tener una función.

Intenté inventarlo yo mismo, pero no funcionó muy bien.

Quizás por problemas de normalización...

Tal vez alguien tenga una solución o un ejemplo.

Encuentra el redondeo usando MathCeil,MathRound o MathFloor.

Vea un ejemplo de cómo funcionan:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2018, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   double start_balance=1000;
   double step_balance=1000;

   Print("Step ",DoubleToString(step_balance,1));

   for(int i=0; i<12; i++)
     {
      double division=start_balance/step_balance;
      Print("Balance ",DoubleToString(start_balance,1),
            ", division ",DoubleToString(division,1),
            ", MathCeil(",DoubleToString(division,1),") ->  ",MathCeil(division),
            ", MathRound(",DoubleToString(division,1),") ->  ",MathRound(division),
            ", MathFloor(",DoubleToString(division,1),") ->  ",MathFloor(division));
      start_balance=start_balance+step_balance/3;
     }
  }
//+------------------------------------------------------------------+

y el resultado.

Step 1000.0
Balance 1000.0, division 1.0, MathCeil(1.0) ->  1.0, MathRound(1.0) ->  1.0, MathFloor(1.0) ->  1.0
Balance 1333.3, division 1.3, MathCeil(1.3) ->  2.0, MathRound(1.3) ->  1.0, MathFloor(1.3) ->  1.0
Balance 1666.7, division 1.7, MathCeil(1.7) ->  2.0, MathRound(1.7) ->  2.0, MathFloor(1.7) ->  1.0
Balance 2000.0, division 2.0, MathCeil(2.0) ->  2.0, MathRound(2.0) ->  2.0, MathFloor(2.0) ->  1.0
Balance 2333.3, division 2.3, MathCeil(2.3) ->  3.0, MathRound(2.3) ->  2.0, MathFloor(2.3) ->  2.0
Balance 2666.7, division 2.7, MathCeil(2.7) ->  3.0, MathRound(2.7) ->  3.0, MathFloor(2.7) ->  2.0
Balance 3000.0, division 3.0, MathCeil(3.0) ->  3.0, MathRound(3.0) ->  3.0, MathFloor(3.0) ->  3.0
Balance 3333.3, division 3.3, MathCeil(3.3) ->  4.0, MathRound(3.3) ->  3.0, MathFloor(3.3) ->  3.0
Balance 3666.7, division 3.7, MathCeil(3.7) ->  4.0, MathRound(3.7) ->  4.0, MathFloor(3.7) ->  3.0
Balance 4000.0, division 4.0, MathCeil(4.0) ->  5.0, MathRound(4.0) ->  4.0, MathFloor(4.0) ->  4.0
Balance 4333.3, division 4.3, MathCeil(4.3) ->  5.0, MathRound(4.3) ->  4.0, MathFloor(4.3) ->  4.0
Balance 4666.7, division 4.7, MathCeil(4.7) ->  5.0, MathRound(4.7) ->  5.0, MathFloor(4.7) ->  4.0

Recomiendo utilizarMathFloor.

Документация по MQL5: Математические функции / MathFloor
Документация по MQL5: Математические функции / MathFloor
  • www.mql5.com
Математические функции / MathFloor - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Archivos adjuntos:
1.mq5  3 kb
 
Alexey Viktorov:

Preste atención al cociente al dividir el depósito por 1000. Si el depósito < 2000 será 1 entero y algunas décimas, centésimas. que no son de interés. El depósito de 2000 contendrá 2 y así sucesivamente. Resulta que basta con multiplicar la parte entera de esta fracción por 0,1 y obtener lo que queremos.

Y en su enumeración, aunque menor, hay un error. Correcto es

Alexey

Gracias. Tengo la idea de dividir por 1000 y reducir a enteros, intentaré ponerla en práctica.

<= se puso automáticamente, no desde el código. Escribir con mis manos, y los bolígrafos son tales ...))

 
Vladimir Karputov:

Seleccione una operación de redondeo entre MathCeil , MathRound o MathFloor.

Un ejemplo de cómo funcionan:

y el resultado.

Yo recomendaría usarMathFloor.

Gracias, justo lo que necesitas.