De acordo com os primeiros testes, presumo que, para double e datetime, devemos criar recursos e nomes de variáveis globais separados. Isso está correto?
De acordo com os primeiros testes, presumo que, para double e datetime, devemos criar recursos e nomes de variáveis globais separados. Isso está correto?
Infelizmente, é muito difícil atingir seu nível de proficiência em linguagem de programação. Talvez outra pessoa possa lhe explicar.
Atualize o ResourceData.mqh e tente estes indicadores
Boa tarde! Não é possível transferir do .mqh para o indicador? Ou há algum truque para não reiniciar sempre que compilar o indicador? Criei essa variante, mas ela é redefinida ao compilar o indicador:
#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>m_Resource("::"+__FILE__); // Recurso para transferência de dados (ticks)class CMyTicks
{
protected:
public:
//+------------------------------------------------------------------+//| Construtor.|//+------------------------------------------------------------------+ void CMyTicks()
{
_GlobalVariableSet("ResourceName",m_Resource.GetFullName()); // Escreva o nome completo do recurso (somente leitura) na variável global
}
//+------------------------------------------------------------------+//| Destruidor.|//+------------------------------------------------------------------+ void ~CMyTicks()
{
//_GlobalVariableDel("ResourceName");
}
//+------------------------------------------------------------------+ void CollectTicks()
{
MqlTick m_Ticks[];
CopyTicks(_Symbol,m_Ticks,COPY_TICKS_ALL,0,5); // Dados gerados
m_Resource=m_Ticks; // Registrou os dados
}
};
//+------------------------------------------------------------------+
// Recuperação de dados#property indicator_chart_window#property indicator_plots0#include <Test_Keep_Info_13.mqh>
CMyTicks Test;
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/code/22166#include <GlobalVariables.mqh> // https://www.mql5.com/ru/forum/189649#comment_4854618staticconst RESOURCEDATA<MqlTick>Resource(_GlobalVariableGet<string>("ResourceName")); // Criou um recurso com base no nome completo passado na variável global MqlTick Ticks[];
intOnCalculate(constint rates_total,constint prev_calculated,constint,constdouble &[])
{
if(prev_calculated==0)
{
Resource.Get(Ticks); // Ler dados do recurso.ArrayPrint(Ticks); // Imprimir os dados obtidosif(ArraySize(Ticks)<1)
{
Test.CollectTicks();
Print(" SAVE TICKS ");
}
Resource.Get(Ticks); // Ler dados do recurso.ArrayPrint(Ticks); // Imprimir os dados obtidos
}
return(rates_total);
}
//+------------------------------------------------------------------+
E por conta de "outra pessoa explicará", então eu já sei a resposta, será "pergunte ao autor". Muito obrigado!
Boa tarde! Não é possível transferir do .mqh para o indicador? Ou há algum truque para não reiniciar toda vez que o indicador for compilado? Eu criei essa variante, mas ela é redefinida ao compilar o indicador:
E por conta de "outra pessoa explicará", então já sei a resposta, será "pergunte ao autor". Obrigado!
O objeto é estático, mas os dados são destruídos. O que está errado em meu exemplo?
Infelizmente, você tem grandes lacunas no seu entendimento de OOP, portanto, não está obtendo o que pretendia. Peça ajuda no fórum com perguntas gerais sobre OOP.
Infelizmente, você tem grandes lacunas em seu entendimento de OOP, portanto, não funciona como pretendido. Peça ajuda ao fórum com perguntas gerais sobre OOP.
Você pode trocar qualquer coisa por meio do Resources.
// Exemplo de troca de quaisquer dados (incluindo matrizes de strings).#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/pt/code/22166#define PRINT(A) Print(#A + " = " + (string)(A));
voidOnStart()
{
// Dados arbitrários para o exemplostring Str[] = {"123", "Hello World!"};
double Num = 5;
MqlTick Tick = {0};
Tick.bid = 1.23456;
const RESOURCEDATA<uint> Resource; // Recurso para compartilhamento de dados
CONTAINER<uint> Container; // Crie um contêiner - tudo será armazenado em uma matriz de um tipo simples (no exemplo, foi escolhido uint)// Preencher o contêiner com dados diferentes
Container[0] = Str;
Container[1] = Num;
Container[2] = Tick;
// Imprimir os tipos de dados armazenados no contêinerfor (int i = 0; i < Container.GetAmount(); i++)
PRINT(Container[i].GetType())
Resource = Container.Data; // Enviou os dados para troca
CONTAINER<uint> Container2; // É aqui que obteremos os dados
Resource.Get(Container2.Data); // Obteve os dados// Obter os dados em sua forma originalstring Str2[];
Container[0].Get(Str2); // Obteve a matrizArrayPrint(Str2);
PRINT(Container[1].Get<double>()) // Temos um número
PRINT(Container[2].Get<MqlTick>().bid) // Temos a estrutura
}
De acordo com os primeiros testes, presumo que, para double e datetime, devemos criar recursos e nomes de variáveis globais separados. Isso está correto?
De acordo com os primeiros testes, presumo que, para double e datetime, devemos criar recursos e nomes de variáveis globais separados. Isso está correto?
Infelizmente, é muito difícil atingir seu nível de proficiência em linguagem de programação. Talvez outra pessoa possa lhe explicar.
Infelizmente, é muito difícil atingir seu nível de proficiência em linguagem de programação. Talvez outra pessoa possa lhe explicar isso.
Bem, o principal é que tudo funciona para mim até agora.
Atualize o ResourceData.mqh e tente estes indicadores
Boa tarde! Não é possível transferir do .mqh para o indicador? Ou há algum truque para não reiniciar sempre que compilar o indicador? Criei essa variante, mas ela é redefinida ao compilar o indicador:
E por conta de "outra pessoa explicará", então eu já sei a resposta, será "pergunte ao autor". Muito obrigado!
Boa tarde! Não é possível transferir do .mqh para o indicador? Ou há algum truque para não reiniciar toda vez que o indicador for compilado? Eu criei essa variante, mas ela é redefinida ao compilar o indicador:
E por conta de "outra pessoa explicará", então já sei a resposta, será "pergunte ao autor". Obrigado!
Infelizmente, não consigo entender a pergunta.
Infelizmente, não consigo entender a pergunta.
O objeto é estático, mas os dados são destruídos. O que está errado em meu exemplo?
O objeto é estático, mas os dados são destruídos. O que está errado em meu exemplo?
Infelizmente, você tem grandes lacunas no seu entendimento de OOP, portanto, não está obtendo o que pretendia. Peça ajuda no fórum com perguntas gerais sobre OOP.
Infelizmente, você tem grandes lacunas em seu entendimento de OOP, portanto, não funciona como pretendido. Peça ajuda ao fórum com perguntas gerais sobre OOP.
Certo, obrigado.
Os códigos-fonte da biblioteca contêm o Convert.mqh, que converte rapidamente uma matriz de um tipo em uma matriz de outro tipo.
Você pode trocar qualquer coisa por meio do Resources.