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

 
¿Es posible exportar desde C++ e importar funciones datetime a mql? Sospecho que no es posible que las funciones trabajen sólo en el shell en el que se crean, pero me gustaría saber de los entendidos...
 
Viatcheslav Pashkov:

eso es exactamente lo que he leído.

Pero debe haber sido escrito para aquellos que lo sabían pero lo habían olvidado.

Esa información no me ayudó en absoluto.

¿Puede darme un ejemplo sencillo?

template<typename T>
T Add(T first,T second) {return first+second;}
 
Seric29:
¿Es posible exportar desde C++ e importar en mql funciones como datetime? Sospecho que no es posible que las funciones funcionen sólo en el shell en el que se crean, pero me gustaría preguntar a algunos conocedores...

Puedes hacerlo. Datetime es sólo 64 bits, que el compilador mql ya percibe como tiempo POSIX. Por lo tanto, nada impide crear funciones en la dll que devuelvan INT64 con el número de segundos que han pasado desde las 00:00:00 01.01.1970.

El dll contendrá:

INT64 Foo(...){...}

y puede declarar al importar

datetime Foo(...);

 

No puedo registrarme como vendedor desde hace una semana, no hay botón de registro. Antes no podía pagar dos veces (tardé 3 semanas en volver a registrarme) y tardé más de un mes en registrarme como esta cuenta.

¿qué es la pandereta para conseguir el botón? https://www.metatrader5.com/ru/terminal/help/market/market_sell

Как стать продавцом - Маркет - магазин приложений - Справка по MetaTrader 5
Как стать продавцом - Маркет - магазин приложений - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает многомиллионной аудиторией трейдеров. Став продавцом в Маркете, вы получите прямой доступ к ним, ведь ваш продукт появится прямо в торговой платформе на витрине Маркета. Помимо этого все продукты доступны на витрине Маркета на сайте MQL5.community. Как зарегистрироваться в качестве продавца # Чтобы иметь возможность...
 
Vladimir Simakov:

Puedes hacerlo. Datetime es sólo 64 bits, que el compilador mql ya percibe como tiempo POSIX. Por lo tanto, nada impide crear funciones en la dll que devuelvan INT64 con el número de segundos que han pasado desde las 00:00:00 01.01.1970.

El dll contendrá:

INT64 Foo(...){...}

y es posible declarar al importar.

datetime Foo(...);

Gracias por la respuesta, me ha mantenido el ánimo.

He creado muchos temas en el ciberforo sobre la aplicación de la fecha. Nadie ha dado respuestas claras. ¿Y qué bibliotecas y recursos necesito conectar para generar la fecha desde el lado de C++ en la dll, encontré diferentes códigos en la red y los inserté en el compilador, ni siquiera compilaron?

 
¿Es posible pasar un array a c++ y cambiar sus parámetros como el número de filas y columnas? En el propio C++ esto se hace sin problemas, pero cuando paso un array desde mql, no cambia la pregunta ¿por qué?
 
Seric29:

Gracias por la respuesta, me ha mantenido el ánimo.

He creado muchos hilos en el ciberforo sobre la aplicación de la fecha. Nadie ha dado respuestas claras. ¿Qué bibliotecas y recursos debo utilizar para generar la fecha desde el lado de++ en la dll, he encontrado diferentes códigos en la red y los he insertado en el compilador, pero ni siquiera han compilado?

Sólo puedo citar a los clásicos: "Saw Shura...". En primer lugar, hay que averiguar cómo funciona el sistema operativo con el tiempo: https://docs.microsoft.com/en-us/windows/win32/sysinfo/time-functions

Cuando lo descubras, todo será fácil y sencillo, pero - este es tu camino y nadie invertirá en ti el conocimiento, sólo tú mismo.

PS. Menos copiar y pegar sin sentido en los primeros pasos, entrar en el meollo de la cuestión de inmediato.

Time Functions - Win32 apps
  • 2018.05.31
  • mcleanbyron
  • docs.microsoft.com
The following functions are used with system time.
 
Vladimir Simakov:

Sólo puedo citar a los clásicos: "Saw Shura...". Para empezar, averigua cómo funciona el sistema operativo a lo largo del tiempo: https://docs.microsoft.com/en-us/windows/win32/sysinfo/time-functions

Cuando lo entiendas, todo será fácil y sencillo, pero - este es tu camino y nadie invertirá el conocimiento en ti, sólo tú mismo.

PS. Menos copiar y pegar sin sentido en los primeros pasos, entrar en las sutilezas de inmediato.

¿Son estas funciones listas para trabajar con el tiempo o se necesitan bibliotecas adicionales, acabo de encontrar un montón de cosas, pero no entendía cómo trabajar con él. ¿Tienes algún enlace a vídeos de youtube? Nunca he visto ningún vídeo en Internet sobre el trabajo con la fecha, he encontrado información de texto complicada o no funcional y ningún vídeo?

Tampoco entiendo por qué el código c++ para mql4 no funciona.

// ConsoleApplication5.cpp: определяет экспортированные функции для приложения DLL.
//со стороны mql объявляем массив формата int Mas[1] 

#include "stdafx.h"
#include <conio.h>
#include <iostream>

using std::cout;
using std::endl;
using std::cin;

using namespace std;//пытался выводить в консоль инфу но не работает может можно выводить в файл

#define _DLLAPI extern "C" __declspec(dllexport)


//данный пример работает в с++ но не работает в mql4
void Perenapr(int *&mas){// принимает массив как указатель на ссылку
int *arr=new int[10];// создаём новый массив/ новый участок памяти куда будем перенаправлять указатель со старого участка
for(int y=-1;++y<5;)//присваиваем элементы
arr[y]=y+1;
mas=arr;// перенаправляем указатель на новый участок памяти в результате со стороны mql указатель не меняется
// создаётся впечатление что в с++ из mql массив передается по значению а изменить форму массива из
// mql нельзя только из самого mql
}
_DLLAPI int __stdcall  test(int q,int w){
        return(189);}

_DLLAPI void __stdcall PriomMas(int mas[]){// данная функция принимает массив
Perenapr(mas);//данная функция перенаправляет указатель массива на ссылку указатель int *&mas
}


Este ejemplo funciona en c++ pero no en mql4. Me pregunto si se pueden cambiar los arrays con programas externos o son estáticos y sólo cambian en mql/

 
Seric29:

Son funciones listas para usar para trabajar con el tiempo o se necesitan librerías adicionales, he encontrado muchas cosas pero no he averiguado cómo trabajar con ellas. ¿Tienes algún enlace a vídeos de youtube? Nunca he visto ningún vídeo en Internet sobre el trabajo con la fecha, he encontrado información de texto complicada o no funcional y ningún vídeo?

Tampoco entiendo por qué no funciona el código c++ para mql4.


Este ejemplo funciona en c++ pero no en mql4. Me pregunto si se pueden cambiar los arrays con programas externos o son estáticos y sólo cambian en mql/

No intente escribir una DLL en un lenguaje que no conoce.

Ahorrarás muchos nervios y tiempo si realizas un par de cursos de formación previa.

Con la suficiente diligencia y determinación, sólo son un par de semanas. Puedes colgar en la pared un par de bonitos papeles de certificado al mismo tiempo

 
Seric29:

Son funciones listas para usar para trabajar con el tiempo o se necesitan librerías adicionales, he encontrado muchas cosas pero no he averiguado cómo trabajar con ellas. ¿Tienes algún enlace a vídeos de youtube? Nunca he visto ningún vídeo en Internet sobre el trabajo con la fecha, he encontrado información de texto complicada o no funcional y ningún vídeo?

Tampoco entiendo por qué no funciona el código c++ para mql4.


Este ejemplo funciona en c++ pero no en mql4. Me pregunto si se pueden cambiar los arrays con programas externos o son estáticos y sólo cambian en mql/

IMHO por supuesto, pero hay una opinión y la apoyo

Aprender de los vídeos, ejemplos, foros, gritar "ayúdame", etc., es un camino directo para convertirse en un codificador de moncey. Sólo los libros de texto, sólo los documentos, sólo las noches sin dormir y los litros de café en busca de una solución convertirán a un programador en desarrollador.