Gracias por su aprecio. Aprendí a programar en este foro. Publico mi trabajo porque disciplina. Uso mis descripciones como pistas, porque olvido muy rápidamente qué y cómo escribí.
Pido disculpas por mi estilo de codificación, pero fue pensado para mí mismo. Y se publicó como efecto secundario.
Por desgracia, es imposible evaluar la popularidad de las obras publicadas. Si alguien los usa, entonces un círculo muy estrecho de usuarios.
Aumentar el número de usuarios - no existe tal objetivo.
no consigo obtener los datos, aquí ejecuto un script y según tengo entendido los datos se guardan ahora en algún lugar del terminal:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166//+------------------------------------------------------------------+//| Función de inicio del programa de script|//+------------------------------------------------------------------+voidOnStart()
{
const RESOURCEDATA<int>ResourceINT("::int"); // Recurso para intercambiar ints. const - como prueba de que no se escribe nada en el objeto de clase int ArrayINT[]={1,2,3};
ResourceINT=ArrayINT; // El recurso almacena un array. int ArrayINT2[];
ResourceINT.Get(ArrayINT2); // Leer datos del recurso.ArrayPrint(ArrayINT2); // Retirada: 1 2 3 5 1 2 3
}
//+------------------------------------------------------------------+
aquí ejecuto otro script para obtener los datos que se guardaron al ejecutar el primer script, pero los datos no se muestran:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166//+------------------------------------------------------------------+//| Función de inicio del programa de script|//+------------------------------------------------------------------+voidOnStart()
{
//---// Este es el nombre completo del recurso al que se va a acceder desde otro programa//const string NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5)+"::Ticks"; conststring NameOut=StringSubstr(MQLInfoString(MQL_PROGRAM_PATH),StringLen(TerminalInfoString(TERMINAL_PATH))+5,9)+"Test_Keep_Info.ex5::Ticks";
Print(NameOut); // Imprime el nombre completo del recurso.const RESOURCEDATA<int>Resource(NameOut); // Recurso para acceder a datos (sólo lectura) de otro programaint ArrayINT2[];
Resource.Get(ArrayINT2); // Leer datos del recurso.ArrayPrint(ArrayINT2); // Retirada:
}
//+------------------------------------------------------------------+
No puedo obtener los datos, aquí estoy ejecutando un script y como yo lo entiendo, los datos se almacenan ahora en algún lugar de la terminal
Los datos se destruyen tan pronto como su propietario (quien los escribió) deja de trabajar. Si esto no se hace, la memoria del Terminal se saturará rápidamente.
Inicie el maestro de datos como un asesor/indicador. Mientras viva, sus datos estarán disponibles para los demás.
Los datos se destruyen en cuanto su propietario (quien los escribió) deja de trabajar. Si no se hace así, la memoria del Terminal se saturará rápidamente.
Inicie el maestro de datos como un consejero/indicador. Mientras viva, sus datos estarán disponibles para los demás.
Tampoco funcionó con los indicadores. Creo que algo falla en la ruta.
He añadido estática, pero sigue sin funcionar. ¿Puede corregir lo que está mal allí?
Actualiza ResourceData.mqh y prueba estos indicadores
// Envío de datos#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618const RESOURCEDATA<MqlTick> Resource("::" + __FILE__); // Recurso para la transferencia de datos (ticks)voidOnInit()
{
_GlobalVariableSet("ResourceName", Resource.GetFullName()); // Escribe el nombre completo del recurso (sólo lectura) en la variable global
}
voidOnDeinit( constint )
{
_GlobalVariableDel("ResourceName");
}
intOnCalculate( constint, constint, constint, constdouble &[] )
{
MqlTick Ticks[];
CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 5); // Datos generados
Resource = Ticks; // Grabación de los datosreturn(0);
}
// Recuperación de datos#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618intOnCalculate( constint, constint, constint, constdouble &[] )
{
staticconst RESOURCEDATA<MqlTick> Resource(_GlobalVariableGet<string>("ResourceName")); // Creado un recurso basado en el nombre completo pasado en la variable globalMqlTick Ticks[];
Resource.Get(Ticks); // Leer datos del recurso.ArrayPrint(Ticks); // Imprimir los datos obtenidosreturn(0);
}
Actualiza ResourceData.mqh y prueba estos indicadores
Gracias, ya tengo algo, ahora lo desmontaré para ver como funciona. ¿Puedes por favor corregir las advertencias en GlobalVariables.mqh? Mis conocimientos terminaban en Res=-1, pero luego daba error ahí. Y tampoco se como quitar la advertencia de OnStart().
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Gracias por su aprecio. Aprendí a programar en este foro. Publico mi trabajo porque disciplina. Uso mis descripciones como pistas, porque olvido muy rápidamente qué y cómo escribí.
Pido disculpas por mi estilo de codificación, pero fue pensado para mí mismo. Y se publicó como efecto secundario.
Por desgracia, es imposible evaluar la popularidad de las obras publicadas. Si alguien los usa, entonces un círculo muy estrecho de usuarios.
Aumentar el número de usuarios - no existe tal objetivo.
no consigo obtener los datos, aquí ejecuto un script y según tengo entendido los datos se guardan ahora en algún lugar del terminal:
aquí ejecuto otro script para obtener los datos que se guardaron al ejecutar el primer script, pero los datos no se muestran:
¿Pueden corregirme dónde está el error?
No puedo obtener los datos, aquí estoy ejecutando un script y como yo lo entiendo, los datos se almacenan ahora en algún lugar de la terminal
Los datos se destruyen tan pronto como su propietario (quien los escribió) deja de trabajar. Si esto no se hace, la memoria del Terminal se saturará rápidamente.
Inicie el maestro de datos como un asesor/indicador. Mientras viva, sus datos estarán disponibles para los demás.
Los datos se destruyen en cuanto su propietario (quien los escribió) deja de trabajar. Si no se hace así, la memoria del Terminal se saturará rápidamente.
Inicie el maestro de datos como un consejero/indicador. Mientras viva, sus datos estarán disponibles para los demás.
Tampoco funcionó con los indicadores. Creo que algo falla en la ruta.
Tampoco funcionó con los indicadores. Creo que algo falla en la ruta.
Creas un recurso en cada OnCalculate y lo matas cuando termina la función.
Deberías hacer el objeto estático. Esto es lo básico de la programación orientada a objetos.
Se crea un recurso en cada OnCalculate y se mata cuando la función finaliza.
Debes hacer que el objeto sea estático. Esto es lo básico de la programación orientada a objetos.
He añadido static, pero sigue sin funcionar. ¿Puede corregir lo que está mal allí?
He añadido estática, pero sigue sin funcionar. ¿Puede corregir lo que está mal allí?
Actualiza ResourceData.mqh y prueba estos indicadores
Actualiza ResourceData.mqh y prueba estos indicadores
Gracias, ya tengo algo, ahora lo desmontaré para ver como funciona.
¿Puedes por favor corregir las advertencias en GlobalVariables.mqh? Mis conocimientos terminaban en Res=-1, pero luego daba error ahí. Y tampoco se como quitar la advertencia de OnStart().
¿Puede corregir las advertencias de GlobalVariables.mqh?
Gracias.