[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 408

 
Zhunko:

Es difícil decir sobre la asignada. Tendrías que preguntar a los Metakwots.

Inmediatamente le tomé la palabra a Víctor, pero... para disipar dudas me limité a escribir a las metacitas.

Zhunko:

Tenía mi cuenta real bloqueada en MRC por la apertura y actualización frecuente de gráficos. Esta no es una función de MQL4, sino un visor de gráficos propio

¿Qué quieres decir con " abrir a menudo un gráfico "? Entiendo lo que quieres decir sobre la actualización de las variables del entorno del mercado, pero no entiendo lo de abrir y actualizar un gráfico...

Zhunko:

Puede que, por ejemplo, MarketInfo() acceda al servidor o sólo reciba parte de los datos de la visión general del mercado.

He escrito a soporte, ¡escribiré aquí en cuanto me respondan!
 
Andrew245:

Lo adiviné, pero no los encuentro, estos parámetros de stop loss
https://docs.mql4.com/ru/trading/OrderSend
 

Una vez hice una pregunta sobre el uso de las bibliotecas. Sin embargo, me confundí un poco.

Según tengo entendido, la biblioteca es un conjunto de funciones con código, que no recuerdo exactamente cómo se llama, "cerrado", es decir, significa que en el proceso el código de la función de la biblioteca no se ve afectado por nada del exterior.

Es lógico que cuando todas las funciones de uso frecuente y no único se trasladen fuera del EA, sea muy conveniente. Pero, ¿por qué necesitamos entonces los inludes? Al fin y al cabo, las bibliotecas funcionan sin ellas. Entonces, ¿las inclusiones no son necesarias? ¿Quién los utiliza?

 
pako:

¿El 10% anual es bueno o malo?

Bueno, siempre dicen que lo principal es mantener la curva de equilibrio plana, y que puedes aumentar tus beneficios con la gestión de la movilidad. ¿O no es así?
 
Dmido:

Bueno, siempre se dice que lo principal es mantener la curva de equilibrio plana, y para aumentar los beneficios se puede utilizar la MM. ¿O no es así?


Intente aumentar

si el kolyan no viene.

 
TarasBY:
El día actual comienza al principio de la barra D1 actual (iTime (NULL, PERIOD_D1, 0)), pero no está buscando formas fáciles... :)))


no funciona.

iTime (NULL, PERIOD_D1, 0) imprime 137082240

e insertado en la función imprime todo el historial de operaciones disponible, pero no las operaciones de hoy.....

GetProfitFromDateInCurrency(NULL,-1,-1,(iTime (NULL, PERIOD_D1, 0))); 
видимо правильнее будет GetProfitFromDateInCurrency(NULL,-1,-1,(TimeCurrent()-iTime (NULL, PERIOD_D1, 0)));   НО И ТУТ РЕЗУЛЬТАТ ВСЕ СДЕЛКИ, ВМЕСТО СЕГОДНЯШНИХ
 
lottamer:


no funciona.

iTime (NULL, PERIOD_D1, 0) imprime 137082240

e insertado en la función imprime todo el historial de transacciones disponible, no las transacciones de hoy.....

Si utiliza GetProfitFromDateInCurrency() (original - esto es IMPORTANTE: no sé lo que debe tener allí en su versión), entonces la función debe ser llamada así:
GetProfitFromDateInCurrency (Symbol(), -1, -1, iTime (NULL, PERIOD_D1, 0));

y la función devolverá los beneficios de las órdenes cerradas desde el inicio del día actual.

Y TODAS las tonterías del código se capturan a través de Print().

 
hoz:
¿Qué quiere decir con "apertura frecuente del gráfico"? Entiendo lo de la actualización de las variables del entorno del mercado, pero no entiendo lo de la apertura y actualización del gráfico...
Cuando se abre y actualiza un gráfico, se solicitan nuevos datos en el servidor. Algunas empresas de corretaje codiciosas prefieren no gastar su dinero en servidores más potentes y un canal más amplio, sino repartirlo entre sus bolsillos. Tienen que limitar el número de peticiones del terminal para que un servidor débil no se "cuelgue". El MRC sólo tiene 2.000 solicitudes al día. Esto es 10 veces menos que el número de sus instrumentos multiplicado por el número de TFs, sin contar las solicitudes de operaciones.
hoz:

Una vez hice una pregunta sobre el uso de las bibliotecas. Sin embargo, me confundí un poco.

Según tengo entendido, la biblioteca es un conjunto de funciones con código, que no recuerdo exactamente cómo se llama, "cerrado", es decir, significa que en el proceso el código de la función de la biblioteca no se ve afectado por nada del exterior.

Es lógico que cuando todas las funciones de uso frecuente y no único se trasladan fuera del EA, es muy conveniente. Pero, ¿por qué necesitamos entonces los inludes? Al fin y al cabo, las bibliotecas funcionan sin ellas. Entonces, ¿las inclusiones no son necesarias? ¿Quién los utiliza?

Las inclusiones en MQL4 ayudan a ordenar el código. Por ejemplo, así es como se ve un indicador para 3000 líneas en mi artículo:

#property indicator_separate_window

#include <stdlib.mqh>
#include <stderror.mqh>
#include <ServicesMT4.mqh>
#include <Spectrum.mqh>
#include <TimeFrames.mqh>
#include <GeneralFunctions.mqh>
#include <DynamicArray2.mqh>
#include <SPECTRUM_IND_Macros.mq4>
#include <SPECTRUM_IND_Preset_Buffers.mq4>
#include <SPECTRUM_IND_Extern_Variable.mq4>
#include <SPECTRUM_IND_Global_Variable.mq4>
#include <SPECTRUM_IND_Functions_Project.mq4>

void init()
 {
  int    i = 0;
  string i_sName = StringSubstr(WindowExpertName(), 0, StringLen(WindowExpertName()) - 8);
  g_nCounterStart = 0;
  #include <SPECTRUM_IND_Check_Param.mq4>
  if (Postfix == "") g_sNameIndicator = i_sName + g_sPostfix;
  else g_sNameIndicator = i_sName + g_sPostfix + Postfix + " ";
  g_sNameObject = g_sNameIndicator + "Derivative ";
  g_sNameLine = g_sNameIndicator + "Line ";
  g_sNameSpectrum = g_sNameIndicator;
  IndicatorShortName(g_sNameIndicator);
  #include <SPECTRUM_IND_Extern_Variables_In_Array.mq4>
  #include <SPECTRUM_IND_Buffers.mq4>
  ServiceRefreshChart(WindowHandle(Symbol(), 0), 1000);
 }

void deinit()
 {
  ObjectsDeleteAll(g_nWindow);
  DeleteObject();
 }

void start()
 {
  if (g_bStop) return;
  #include <SPECTRUM_IND_Start_Variable.mq4>
  #include <SPECTRUM_IND_Start_Initialize.mq4>
  #include <SPECTRUM_IND_Optimization.mq4>
  #include <SPECTRUM_IND_Calc_Filters.mq4>
  #include <SPECTRUM_IND_Calc_Last_Derivative.mq4>
  #include <SPECTRUM_IND_Show_Lines.mq4>
  #include <SPECTRUM_IND_Show_Sum.mq4>
  g_nBegin = s_nBegin;
  g_nTemp_SizeChart = s_nSizeChart;
  g_tLastTime = iTime(NULL, g_nPeriod, 0);
  ArrayCopy(g_adTemp_PriceBeginBar, s_adPriceBeginBar);
 }
Las 5 líneas de operaciones similares se acumulan, o un algoritmo separado, o algún otro criterio del grupo y se puede asignar en un archivo separado. Aun así, es mejor mirar el código hasta 200 líneas que 10000 líneas de una vez. Te cansarás de retocarlo. En MQL4, es mejor evitar las llamadas a funciones. Especialmente, en los bucles. Si es posible, es mejor exponer la función. El código funcionará mucho más rápido. Las inclusiones son de gran ayuda en este caso.

Lamentablemente, el compilador no permite utilizar una inclusión más de una vez en un módulo. Suele ser una forma de ahorrar en código repetitivo.

 
hoz:
Inmediatamente le tomé la palabra a Víctor, pero... para disipar cualquier duda acabo de escribir a las metacitas.
...

Víctor tiene toda la razón. Esa petición al servidor, que llega cuando se abre el gráfico, no es una petición de la función del emulador, sino de una acción manual del usuario.

 
Integer:

Víctor tiene toda la razón. La petición al servidor, que llega cuando se abre el gráfico, no es una petición de una función del emulador, sino de una acción manual del usuario.

La solicitud del gráfico es similar a la solicitud de RefreshRates(). No tengo ninguna duda de que se refiere al servidor. Dicho esto, RefreshRates() no es una función comercial.

Tendré que preguntar a los Metacvots.