Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 862

 

Por falar em cubos!

Você pode me dizer como apagar um "cubo" desnecessário?

 
im-zvv:

Por falar em cubos!

Você pode me dizer como apagar um "cubo" desnecessário?

Para isso, você precisa saber em que posição se encontra esse "cubo", quantos bytes ele ocupa, reescrever um ponteiro de arquivo ali e escrever um novo valor naquele lugar.

Consequentemente, se as cordas têm comprimentos diferentes, simplesmente não é realista. Não será possível calcular quantos bytes para o "cubo" requerido.

 
Alexey Viktorov:

Para fazer isso, você precisa saber em que posição está esse "cubo" e quantos bytes ele ocupa, depois embrulhe o ponteiro do arquivo ali e escreva o novo valor naquele lugar.

Consequentemente, se as cordas têm comprimentos diferentes, simplesmente não podemos fazer isso. Será impossível calcular quantos bytes para o "cubo" correto.

Obviamente, todos estes cálculos irão aumentar o tempo de processamento.

Procurarei outros métodos.

Obrigado.

 
Alexey Viktorov:

Para fazer isso, você precisa saber em que posição está este "cubo" e quantos bytes ele ocupa, reescrever um ponteiro de arquivo ali e escrever um novo valor neste lugar.

Consequentemente, se as cordas têm comprimentos diferentes, isso simplesmente não pode ser feito. Será impossível calcular quantos bytes para o "cubo" desejado.

Se não for crucial e você puder usar o WinApi, então acho que a tarefa pode ser resolvida através do FileMapping.

 

Vou tentar de tudo. Vou começar criando um arquivo "vazio", com variáveis abstratas para a reserva. Em seguida, vou substituí-lo pelos dados que obtiver.

Talvez funcione. O único problema é o tamanho do arquivo, que pode ficar maior. Terei que criar um novo backup antes de cada leitura.

 
Procurando artigos sobre o uso donovo operador em mql4, você pode aconselhar tais artigos? Quem pode explicar brevemente por que as aulas são necessárias se há funções e variáveis globais, já assisti a muitos vídeos e li a ajuda muitas vezes e ainda não entendi qual é o objetivo?
 
Seric29:
Procurando artigos sobre o uso denovo operador em mql4, aconselhar tais artigos? Já vi muitos vídeos e li o arquivo de ajuda muitas vezes, mas não entendo o significado das aulas.

o novo operador na MQL só é necessário para criar um ponteiro para uma instância de objeto


Os programas MQL são bastante especializados e o OOP é principalmente adequado para encapsulamento, dei um exemplo da classeCWorkTime acimahttps://www.mql5.com/ru/forum/160683/page861#comment_11840254

é conveniente usar o encapsulamento para fazer vários casos de objeto com limite de tempo, como este:

int OnInit()
{
   Work1=new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work2=new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);
}

.....


void OnTick()
  {

if(Work1.Disable() || Work1.Disable())
{
 Comment("Не торговое время!!!");
 }
else
{......

ou seja, no meu exemplo, você pode agora especificar 2 intervalos de tempo de trabalho da EA

SZY: leia - seção de artigos do fórum de busca "Objetos".

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.05.26
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Igor Makanu:

É claro que em maior medida as classes compõem variáveis e funções de dados, e na medida restante provavelmente fazem algo poderoso se eu entender corretamente, porque tudo pode ser organizado por funções, talvez as classes funcionem mais rápido que as funções, você tem acesso mais rápido aos dados, eu li nos fóruns que eles usam a memória de forma mais uniforme e econômica e tudo isso.

 

Por que este código não funciona?

#property version   "1.00"
#property strict
string iComments="\n 
 class CArray : public Cobject 
{
public:
    double m_Array[100];
}//дальше в OnInit()
 {Carray *arr = new CArray;
   arr.m_Array[22] = 1.23456;

....
}

Talvez a classe deva ser descrita com dois pontos ::? A idéia é criar um ponteiro que aponte para outro ponteiro.

 

Olá!

Mais uma vez obrigado aAlexey Viktorov pela dica sobre as citações - tudo funciona. Nesta segunda-feira temos uma situação - os alemães negociaram, enquanto os ingleses têm um dia de folga. Acontece que em condições para a abertura da posição do euro foram utilizados valores antigos de libra esterlina. Daí o pedido: aconselhe como estabelecer a verificação no código de que ambos os símbolos são negociados neste dia?

Obrigado.