Obrigado por sua apreciação. Aprendi a programar neste fórum. Publico meu trabalho porque ele é disciplinador. Uso minhas descrições como dicas, pois esqueço muito rapidamente o que e como escrevi.
Peço desculpas por meu estilo de codificação, mas ele foi feito para mim mesmo. E foi publicado como um efeito colateral.
Infelizmente, é impossível avaliar a popularidade dos trabalhos publicados. Se alguém os usa, então há um círculo muito restrito de usuários.
Aumentar o número de usuários - esse objetivo não existe.
Não consigo obter os dados. Aqui, executo um script e, pelo que entendi, os dados agora estão armazenados em algum lugar no terminal:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/code/22166//+------------------------------------------------------------------+//| Função de início do programa de script|//+------------------------------------------------------------------+voidOnStart()
{
const RESOURCEDATA<int>ResourceINT("::int"); // Recurso para troca de ints. const - como uma prova de que nada é gravado no objeto de classe int ArrayINT[]={1,2,3};
ResourceINT=ArrayINT; // O recurso armazena uma matriz. int ArrayINT2[];
ResourceINT.Get(ArrayINT2); // Ler dados do recurso.ArrayPrint(ArrayINT2); // Retirado: 1 2 3 5 1 2 3
}
//+------------------------------------------------------------------+
aqui eu executo outro script para obter os dados que foram salvos quando executei o primeiro script, mas os dados não são exibidos:
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/code/22166//+------------------------------------------------------------------+//| Função de início do programa de script|//+------------------------------------------------------------------+voidOnStart()
{
//---// Esse é o nome completo do recurso a ser acessado de outro 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); // Imprima o nome completo do recurso.const RESOURCEDATA<int>Resource(NameOut); // Recurso para acessar dados (somente leitura) de outro programaint ArrayINT2[];
Resource.Get(ArrayINT2); // Ler dados do recurso.ArrayPrint(ArrayINT2); // Retirado:
}
//+------------------------------------------------------------------+
Não consigo obter os dados. Aqui estou executando um script e, pelo que entendi, os dados agora estão armazenados em algum lugar no terminal
Os dados são destruídos assim que seu proprietário (que os escreveu) para de trabalhar. Se isso não for feito, a memória do Terminal ficará rapidamente desordenada.
Inicie o data master como um consultor/indicador. Enquanto ele estiver ativo, seus dados estarão disponíveis para outros.
Os dados são destruídos assim que seu proprietário (que os escreveu) para de trabalhar. Se isso não for feito, a memória do Terminal ficará rapidamente desordenada.
Inicie o data master como um consultor/indicador. Enquanto ele estiver ativo, seus dados estarão disponíveis para outros.
Isso também não funcionou com os indicadores. Acho que há algo errado com o caminho.
Adicionei estática, mas ainda não funciona. Você pode corrigir o que está errado?
Atualize o ResourceData.mqh e tente estes indicadores
// Envio de dados#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618const RESOURCEDATA<MqlTick> Resource("::" + __FILE__); // Recurso para transferência de dados (ticks)voidOnInit()
{
_GlobalVariableSet("ResourceName", Resource.GetFullName()); // Escreva o nome completo do recurso (somente leitura) na variável global
}
voidOnDeinit( constint )
{
_GlobalVariableDel("ResourceName");
}
intOnCalculate( constint, constint, constint, constdouble &[] )
{
MqlTick Ticks[];
CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, 0, 5); // Dados gerados
Resource = Ticks; // Registrou os dadosreturn(0);
}
// Recuperação de dados#property indicator_chart_window#property indicator_plots0#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/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")); // Criou um recurso com base no nome completo passado na variável globalMqlTick Ticks[];
Resource.Get(Ticks); // Ler dados do recurso.ArrayPrint(Ticks); // Imprimir os dados obtidosreturn(0);
}
Atualize o ResourceData.mqh e tente estes indicadores
Obrigado, consegui alguma coisa, agora vou desmontá-lo para ver como funciona. Você pode corrigir os avisos no GlobalVariables.mqh? Meu conhecimento terminou em Res=-1, mas ele mostrou um erro lá. E também não sei como remover o aviso OnStart().
Obrigado por sua apreciação. Aprendi a programar neste fórum. Publico meu trabalho porque ele é disciplinador. Uso minhas descrições como dicas, pois esqueço muito rapidamente o que e como escrevi.
Peço desculpas por meu estilo de codificação, mas ele foi feito para mim mesmo. E foi publicado como um efeito colateral.
Infelizmente, é impossível avaliar a popularidade dos trabalhos publicados. Se alguém os usa, então há um círculo muito restrito de usuários.
Aumentar o número de usuários - esse objetivo não existe.
Não consigo obter os dados. Aqui, executo um script e, pelo que entendi, os dados agora estão armazenados em algum lugar no terminal:
aqui eu executo outro script para obter os dados que foram salvos quando executei o primeiro script, mas os dados não são exibidos:
Você pode corrigir onde está o erro?
Não consigo obter os dados. Aqui estou executando um script e, pelo que entendi, os dados agora estão armazenados em algum lugar no terminal
Os dados são destruídos assim que seu proprietário (que os escreveu) para de trabalhar. Se isso não for feito, a memória do Terminal ficará rapidamente desordenada.
Inicie o data master como um consultor/indicador. Enquanto ele estiver ativo, seus dados estarão disponíveis para outros.
Os dados são destruídos assim que seu proprietário (que os escreveu) para de trabalhar. Se isso não for feito, a memória do Terminal ficará rapidamente desordenada.
Inicie o data master como um consultor/indicador. Enquanto ele estiver ativo, seus dados estarão disponíveis para outros.
Isso também não funcionou com os indicadores. Acho que há algo errado com o caminho.
Também não funcionou nos indicadores. Acho que há algo errado com o caminho.
Você cria um recurso em cada OnCalculate e o elimina quando a função é concluída.
Você deve tornar o objeto estático. Isso é o básico da OOP.
Você cria um recurso em cada OnCalculate e o elimina quando a função é concluída.
Você deve tornar o objeto estático. Esse é o básico da OOP.
Eu adicionei static, mas ainda não funciona. Você pode corrigir o que está errado?
Adicionei estática, mas ainda não funciona. Você pode corrigir o que está errado?
Atualize o ResourceData.mqh e tente estes indicadores
Atualize o ResourceData.mqh e tente estes indicadores
Obrigado, consegui alguma coisa, agora vou desmontá-lo para ver como funciona.
Você pode corrigir os avisos no GlobalVariables.mqh? Meu conhecimento terminou em Res=-1, mas ele mostrou um erro lá. E também não sei como remover o aviso OnStart().
Você pode corrigir os avisos no GlobalVariables.mqh?
Obrigado!