Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 935

 
Hola, me gustaría saber si existe un script normal para descargar y sincronizar el historial de cotizaciones para MT5.ex5 y todo estaba bien, el escáner funcionaba, daba señales, todo funcionaba bien, pero ayer después de la comida como corte, el escáner simplemente dejó de ver el historial y por lo tanto buscar puntos de entrada según la estrategia y dar señales, pensé que el asunto está en el escáner, pero Tengo unas cuantas versiones y dejó de mostrar señales en todas ellas, me puse en manos de mi amigo y borré el terminal, no sirvió para nada, lo borré con toda la información, lo reinstalé y cuando empecé a cargar el historial con el script abrí la pestaña de expertos y vi que sólo había errores al cargar el historial, escribí al soporte del broker, me dijeron que recientemente los ingenieros de MT% habían actualizado algo y quizás el algoritmo del script se desajustó he intentado preguntar aquí que hacer y si hay otros scripts para el historial de cotizaciones, debo decir de entrada que he intentado usar un plazo de un mes para descargar las cotizaciones, fue inútil, muchas gracias de antemano.
 
82Dmitry82:
Hola, me gustaría saber si existe un script normal para cargar y sincronizar el historial de cotizaciones para MT5.ex5 y todo estaba bien, el escáner funcionaba, daba señales, todo funcionaba bien, pero ayer después del almuerzo como corte, el escáner simplemente dejó de ver el historial y por lo tanto buscar puntos de entrada según la estrategia y dar señales, pensé que el asunto está en el escáner, pero Tengo varias versiones del mismo y dejó de dar señales para todos, tanto para mí como para mi amigo, vacié el terminal, sin resultado, lo borré con toda la información, lo volví a instalar y cuando empecé a cargar el historial con el script, abrí la pestaña de expertos y vi que sólo había errores al cargar el historial, escribí al soporte del broker, me contestaron que recientemente en MT% que podría haberse actualizado y el algoritmo se confunde en el script, da tal historial de carga,Me disculpo por el gran número de cartas, sólo traté de explicar la situación en detalle, el soporte del broker se negó a ayudar, dicen que no somos nosotros, y metaquotes, no se puede escribir a ellos, no tienen retroalimentación, así que decidí preguntar aquí qué hacer y si hay otros scripts para el historial de cotizaciones, debo admitir que traté de usar TF mensual para descargar las cotizaciones, no sirve, gracias de antemano.

No voy a decir nada, pero esta es la única empresa en la que he tenido problemas con los datos históricos a la hora de cumplir uno de mis pedidos: se encendía y se apagaba.

Estuve buscando las razones hasta que le dije al cliente que lo probara con las cotizaciones de otros corredores. Y todo resultó estar bien allí.

Si ha intentado cargar las cotizaciones en plazos mensuales, no ha servido de nada.

 
 

no tienes un ejemplo completo, publica el código reproducible, es decir, una plantilla de clase completa y un ejemplo de código en el que crees un objeto usando esta plantilla, hasta ahora sólo "telépatas de vacaciones" .... sospecho que el código simplemente no compila, muchos puntos de contención en tu plantilla, puede que no vea la lógica en ella

 
Artyom Trishkin:

No voy a decir nada, pero esta es la única empresa en la que he tenido problemas con los datos históricos a la hora de cumplir uno de mis pedidos: se encendía y se apagaba.

Estuve buscando las razones hasta que le dije al cliente que lo probara con las cotizaciones de otros corredores. Y todo resultó estar bien allí.

La razón es que está prohibido hablar de corredores en este recurso, dejémoslo así.

Esa es la cuestión, no han tenido ningún problema durante más de seis meses. Traté de usarlo por alguna razón, el nuestro utiliza un barógrafo makdi, parece ser el problema, al menos cuando querían pedir para QuickBooks la respuesta fue negativa después de revisar TOR, todo descansó en la plataforma incorporada indukes, sólo IMb a veces en hibernación y América da a trabajar

 
Igor Makanu:

no tienes un ejemplo completo, publica el código reproducible, es decir, una plantilla de clase completa y un ejemplo de código en el que crees un objeto usando esta plantilla, hasta ahora sólo "telépatas de vacaciones" .... sospecho que el código simplemente no compila, hay muchos puntos cuestionables en tu plantilla, quizás no veo la lógica en ella

Debería funcionar así.

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#define  templ(T)          template<typename T>// задача данного макроса определять int bool double и т.д

//Далее пишем макрос который будет принимать массив и возвращать
//результат с помощью вызова перегружаемой функции которая будет вызываться из класса, но в моём примере вписана простая функция,
// я 3 дня посидел и выяснил что макрос может принимать массивы любой размеренности  в принципе об этом написано в справке что макрос может принимать эл. любого типа
#define  Vosmas(a,b,c,d,e) /*return*/(Fun(a,b,c,d,e))//a- массив, 
                                                    //b- номер строки если нужен
                                                    //c,d- номера измерений если нужны и массив многомерный

int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit()
{int Perem=0;
//макрос должен вызвать функцию из класса и сделать следующее/ в моём примере будет простая функция
 Perem=Vosmas(Mas,0,0,0,3);
 Print("Vosmas: ",Perem);//результат 3
return(INIT_SUCCEEDED);}

templ(T)class CData{
public:CData(){};~CData(){};
       //перегружаемая функция Total() с наращиваемым количеством аргументов, не знаю будет ли оно наращивать аргументы вроде записывается но когда дойдёт до расчётов увидим
       //хотелось бы с этим разобраться 
       //а также делать такую перегрузку 
       T Total(T &mas[]    ,int y1=0 ...){return(mas[y1]);}  //y2 весит в холостую  
       T Total(T &mas[][]  ,int y1=0 ...){return(mas[y1][y2]);}
       T Total(T &mas[][][],int y1=0 ...){return(mas[y1][y2][y3]);}};
       
         
templ(T) T Fun(T &a[],int b,int c,int d,int e){a[b]=e; return (a[b]);}// оставшиеся аргументы будут висеть в холостую

En general, quiero lograr este efecto, pero sin experiencia en el área de las clases. El código se compila y funciona

 
Seric29:

Debería funcionar así.

Desgraciadamente no entiendo la lógica de este código, ni siquiera puedo imaginar por qué declararías palabras clave del lenguaje por sustitución de macros,

Y por lógica, dudo que consigas acceder a un array multidimensional de esta manera, creo que tu ejemplo simplemente no compiló una plantilla y por lo tanto no obtuviste un error de compilación,

No soy de mucha ayuda, tal vez alguien más pueda resolver tu ejemplo

 
Igor Makanu:

Desgraciadamente no entiendo la lógica de este código, ni siquiera puedo imaginar por qué usarías la sustitución de macros para declarar palabras clave del lenguaje,

Y por lógica, dudo que consigas acceder a un array multidimensional de esta manera, creo que tu ejemplo simplemente no compiló una plantilla y por lo tanto no obtuviste un error de compilación,

No soy de mucha ayuda, tal vez alguien más pueda resolver tu ejemplo.

El código compila pero no está terminado, el punto es obtener este resultado

return(mas[y1]);

Necesito llamar a una función de la clase y obtener este valor.

 
Seric29:

El código se compila, pero no está terminado.

de nuevo: el hecho de que no haya obtenido un error de compilación no significa que su clase de plantilla haya sido incluida - ¿dónde está el objeto de la clase CData? - Veo una declaración de plantilla, ¿dónde está la variable? - ¿Objeto?

si usted "necesita vitalmente" para resolver la cuestión, a continuación, hacer el código totalmente reproducible - completamente es sin ..... comentarios a su discreción y, de nuevo, no entiendo la lógica de utilizar la sustitución de macro

#define  templ(T)          template<typename T>

tal vez esa sea la "esencia", rara vez uso macros, al menos si uso una macro entiendo lo que eventualmente hace, en tu ejemplo es un misterio para mí

 
Igor Makanu:

de nuevo: el hecho de que no haya obtenido un error de compilación no significa que su clase de plantilla haya sido incluida - ¿dónde está el objeto de clase CData? - Veo una declaración de plantilla, pero ¿dónde está dicha variable? - ¿Objeto?

si usted "necesita vitalmente" para resolver la cuestión, a continuación, hacer el código totalmente reproducible - completamente es sin ..... comentarios a su discreción y, de nuevo, no entiendo la lógica de utilizar la sustitución de macro

tal vez ese sea el punto, rara vez uso macros, al menos si uso una macro entiendo lo que eventualmente hace, en tu ejemplo es un misterio para mí

La tarea de la macro llamando a una función de la clase y pasar el valor a la función y ya que la macro puede tomar una matriz de cualquier dimensión estoy tratando de hacer un esquema de este tipo. Por supuesto un montón de gemas, pero necesito llamar a la función de la clase y no sé cómo llamar a una función simple de la clase (en mi caso, el método Total no tiene descripción) no está escrito en la ayuda, hay ejemplos complejos de transferencia.

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#define  templ(T)          template<typename T>// задача данного макроса определять int bool double и т.д

#define  Vosmas(a,b,c,d,e)  5

int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit()
{int Perem=0;
Perem=Vosmas(Mas,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas2,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas3,0,0,0,0);
Print("Vosmas: ",Perem);//во всех случаях результат 5
return(INIT_SUCCEEDED);}

Aquí hay un ejemplo una macro toma una matriz de cualquier dimensión, es malo que los desarrolladores han cortado estas características normales de trabajo con elementos complejos.

Se puede hacer sin plantilla, pero es mejor con una plantilla.