Actualiza ResourceData.mqh y prueba estos indicadores
Buenas tardes ¿No se puede pasar del .mqh al indicador? ¿O hay algún truco para que no se reinicie cada vez al compilar el indicador? Hice una variante así, pero se reinicia al compilar el indicador:
#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>m_Resource("::"+__FILE__); // Recurso para la transferencia de datos (ticks)class CMyTicks
{
protected:
public:
//+------------------------------------------------------------------+//| Constructor.|//+------------------------------------------------------------------+ void CMyTicks()
{
_GlobalVariableSet("ResourceName",m_Resource.GetFullName()); // Escribe el nombre completo del recurso (sólo lectura) en la variable global
}
//+------------------------------------------------------------------+//| Destructor.|//+------------------------------------------------------------------+ void ~CMyTicks()
{
//_GlobalVariableDel("NombreRecurso");
}
//+------------------------------------------------------------------+ void CollectTicks()
{
MqlTick m_Ticks[];
CopyTicks(_Symbol,m_Ticks,COPY_TICKS_ALL,0,5); // Datos generados
m_Resource=m_Ticks; // Grabación de los datos
}
};
//+------------------------------------------------------------------+
// Recuperación de datos#property indicator_chart_window#property indicator_plots0#include <Test_Keep_Info_13.mqh>
CMyTicks Test;
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618staticconst RESOURCEDATA<MqlTick>Resource(_GlobalVariableGet<string>("ResourceName")); // Creado un recurso basado en el nombre completo pasado en la variable global MqlTick Ticks[];
intOnCalculate(constint rates_total,constint prev_calculated,constint,constdouble &[])
{
if(prev_calculated==0)
{
Resource.Get(Ticks); // Leer datos del recurso.ArrayPrint(Ticks); // Imprimir los datos obtenidosif(ArraySize(Ticks)<1)
{
Test.CollectTicks();
Print(" SAVE TICKS ");
}
Resource.Get(Ticks); // Leer datos del recurso.ArrayPrint(Ticks); // Imprimir los datos obtenidos
}
return(rates_total);
}
//+------------------------------------------------------------------+
Y en la cuenta de "alguien más va a explicar", así que ya sé la respuesta, será "preguntar al autor". ¡Gracias!
Buenas tardes ¿No se puede transferir de .mqh al indicador? ¿O hay algún truco para que no se reinicie cada vez que se compila el indicador? Hice una variante así, pero se reinicia al compilar el indicador:
Y por aquello de "alguien me lo explicará", así que ya sé la respuesta, será "preguntar al autor". Gracias.
El objeto es estático, pero los datos se destruyen. ¿Qué está mal en mi ejemplo?
Desafortunadamente, tienes grandes lagunas en tu comprensión de la programación orientada a objetos, por lo que no estás consiguiendo lo que pretendías. Pregunta en el foro por ayuda con cuestiones generales de POO.
Desafortunadamente, tienes grandes lagunas en tu comprensión de la programación orientada a objetos, por lo que no funciona como se pretendía. Pide ayuda en el foro sobre cuestiones generales de programación orientada a objetos.
Puedes intercambiar cualquier cosa a través de Recursos.
// Ejemplo de intercambio de cualquier dato (incluyendo matrices de cadenas).#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/es/code/22166#define PRINT(A) Print(#A + " = " + (string)(A));
voidOnStart()
{
// Datos arbitrarios para el ejemplostring Str[] = {"123", "Hello World!"};
double Num = 5;
MqlTick Tick = {0};
Tick.bid = 1.23456;
const RESOURCEDATA<uint> Resource; // Recurso para compartir datos
CONTAINER<uint> Container; // Crear un contenedor - todo será almacenado en un array de un tipo simple (uint es el elegido en el ejemplo)// Llenar el contenedor con datos diferentes
Container[0] = Str;
Container[1] = Num;
Container[2] = Tick;
// Imprimir los tipos de datos almacenados en el contenedorfor (int i = 0; i < Container.GetAmount(); i++)
PRINT(Container[i].GetType())
Resource = Container.Data; // Enviar los datos para su intercambio
CONTAINER<uint> Container2; // Aquí es donde obtendremos los datos
Resource.Get(Container2.Data); // Tengo los datos// Obtener los datos en su forma originalstring Str2[];
Container[0].Get(Str2); // Obtenido el arrayArrayPrint(Str2);
PRINT(Container[1].Get<double>()) // Tenemos un número
PRINT(Container[2].Get<MqlTick>().bid) // Tenemos la estructura
}
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.
Según las primeras pruebas, asumo que para double y datetime debemos hacer recursos separados y nombre de variables globales. ¿Es esto correcto?
Según las primeras pruebas, asumo que para double y datetime debemos hacer recursos separados y nombre de variables globales. ¿Es esto correcto?
Lamentablemente, es muy difícil llegar a tu nivel de dominio del lenguaje de programación. Quizás alguien más te lo explique.
Por desgracia, es muy difícil llegar a tu nivel de dominio del lenguaje de programación. Quizás alguien más te lo explique.
Bueno, lo principal es que todo me funciona hasta ahora.
Actualiza ResourceData.mqh y prueba estos indicadores
Buenas tardes ¿No se puede pasar del .mqh al indicador? ¿O hay algún truco para que no se reinicie cada vez al compilar el indicador? Hice una variante así, pero se reinicia al compilar el indicador:
Y en la cuenta de "alguien más va a explicar", así que ya sé la respuesta, será "preguntar al autor". ¡Gracias!
Buenas tardes ¿No se puede transferir de .mqh al indicador? ¿O hay algún truco para que no se reinicie cada vez que se compila el indicador? Hice una variante así, pero se reinicia al compilar el indicador:
Y por aquello de "alguien me lo explicará", así que ya sé la respuesta, será "preguntar al autor". Gracias.
Por desgracia, no puedo entender la pregunta.
Por desgracia, no entiendo la pregunta.
El objeto es estático, pero los datos se destruyen. ¿Qué está mal en mi ejemplo?
El objeto es estático, pero los datos se destruyen. ¿Qué está mal en mi ejemplo?
Desafortunadamente, tienes grandes lagunas en tu comprensión de la programación orientada a objetos, por lo que no estás consiguiendo lo que pretendías. Pregunta en el foro por ayuda con cuestiones generales de POO.
Desafortunadamente, tienes grandes lagunas en tu comprensión de la programación orientada a objetos, por lo que no funciona como se pretendía. Pide ayuda en el foro sobre cuestiones generales de programación orientada a objetos.
Ok, gracias.
Las fuentes de la biblioteca contienen Convert.mqh, que convierte rápidamente una matriz de un tipo en una matriz de otro tipo.
Puedes intercambiar cualquier cosa a través de Recursos.