É possível implementar um padrão de um único botão na MQL4.

 

Tenho estruturas das quais preciso de uma única instância. Naturalmente, é altamente desencorajado criar vários objetos em diferentes classes destas estruturas. Assim, cheguei à conclusão de que, neste caso, a opção mais razoável seria usar o padrãosingleton. Certo?

Aqui está um exemplo de uma estrutura:

struct Symbol_Properties
{
   datetime    gdt_Quote;           // Время поступления последней котировки
   double      gda_Price [2];       // Текущие рыночные цены (0 - Bid, 1- Ask)
   double      gd_Spread;           // Размер спреда в пунктах
   double      gd_Swap;             // Своп
   double      gd_Comission;        // Комиссия
   double      gd_Pt;               // Величина одного пункта
   int         gi_Digits;           // Количество знаков в цене после запятой
   int         gi_StopLevel;        // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   int         gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
};

Como faço para transformá-lo emum singleton? Existe tal possibilidade na MQL4?

Quem está usando este padrão em seus desenvolvimentos?

 
hoz:

Tenho estruturas das quais preciso de uma única instância. Naturalmente, é altamente desencorajado criar vários objetos em diferentes classes destas estruturas. Assim, cheguei à conclusão de que, neste caso, a opção mais razoável seria usar o padrãosingleton. Certo?

Aqui está um exemplo de uma estrutura:

Como faço para transformá-lo emum singleton? Existe tal possibilidade na MQL4?

Quem usa este padrão em seus desenvolvimentos?


"... Você pode ao menos desenhar um quociente quadrático..."? - "... Não, nem consigo imaginar. ..."

Qualquer padrão na MQL4 pode ser implementado.

 
tara:


"... Você pode ao menos imaginar o quociente quadrático..."? - "... Não, nem consigo imaginar. ..."

Qualquer padrão pode ser implementado na MQL4.

Alexey, mostre-me um exemplo. Eu li o artigohttp://cpp-reference.ru/patterns/creational-patterns/singleton/

Na verdade, ainda não entendi como aplicá-lo à minha estrutura. É por isso que estou perguntando.

 
hoz:

Alexei, mostre-me um exemplo. Eu li o artigohttp://cpp-reference.ru/patterns/creational-patterns/singleton/

Não entendi bem como aplicá-lo à minha estrutura. É por isso que estou perguntando.


Victor, não estou tentando explicar como aplicar o artigo que não li à sua estrutura, e não entendo a relação entre esta última e as classes desconhecidas.

Meu ponto é que qualquer padrão, corretamente descrito verbalmente, pode ser implementado na MQL4.

 
anunciá-lo uma vez no inite e esquecê-lo.
 
FAQ:
anunciá-lo uma vez no inite e esquecê-lo.
E isso é a coisa certa a fazer! Pois, Victor não sabe por que é necessário um singleton :-)
 
Victor, como sempre, está se enterrando nos detalhes, indo do complicado para o contrário...
 
hoz:

Tenho estruturas das quais preciso de uma única instância. Naturalmente, é altamente desencorajado criar vários objetos em diferentes classes destas estruturas. Assim, cheguei à conclusão de que, neste caso, a opção mais razoável seria usar o padrãosingleton. Certo?

Aqui está um exemplo de uma estrutura:

Como faço para transformá-lo emum singleton? Existe tal possibilidade na MQL4?

Quem está usando este padrão em seus desenvolvimentos?


Havia aqui um tema assim, e alguém até desenhou este singleton, se você olhar ao seu redor pode encontrá-lo. Mas eu não preciso disso aqui.
 
tara:


Victor, não quero dizer como aplicar o artigo que não li à sua estrutura, e não entendo as relações desta última com classes desconhecidas.

Meu ponto é que qualquer padrão, corretamente descrito verbalmente, pode ser implementado na MQL4.

Alexey, você não é o primeiro programador... Os membros-elementos da estrutura, tais como: símbolo, ponto, stop loss, etc... Eles são utilizados com bastante freqüência. E eles são necessários em muitas classes. Portanto, não há dúvidas sobre a relação entre as classes que utilizam essas estruturas e as estruturas correspondentes como tal!

FAQ:
declará-lo uma vez e esquecê-lo.

O que o inite tem a ver com isso? A qual inite você está se referindo? Não é como se eu os estivesse descrevendo na própria EA.

Zhunko:
E com razão! Pois, Victor não sabe por que é necessário um singleton :-)

Sim, bem... O principal é queVadim sabe :)))))

Eu estou ciente disso!

FAQ:
Victor, como sempre, está se enterrando nos detalhes, indo do complicado, enquanto o oposto deveria ser o caso...
Hmm... Bem, como? Tornar todos os métodos na estrutura estáticos com o objeto criado imediatamente após a estrutura, e iludir esta estrutura em cada classe e no próprio Expert Advisor?
 
sim
 

Eu o fiz desta maneira:

struct Symbol_Properties
{
   static datetime    gdt_Quote;           // Время поступления последней котировки
   static double      gda_Price [2];       // Текущие рыночные цены (0 - Bid, 1- Ask)
   static double      gd_Spread;           // Размер спреда в пунктах
   static double      gd_Swap;             // Своп
   static double      gd_Comission;        // Комиссия
   static double      gd_Pt;               // Величина одного пункта
   static int         gi_Digits;           // Количество знаков в цене после запятой
   static int         gi_StopLevel;        // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   static int         gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
};
//---- Создадим объект структуре Symbol_Properties
Symbol_Properties SSym;
datetime   SSym.gdt_Quote = 0;
double     SSym.gda_Price [2] = {0.0, 0.0};
double     SSym.gd_Spread = 0.0;
double     SSym.gd_Swap = 0.0;
double     SSym.gd_Comission = 0.0;
double     SSym.gd_Pt = 0.0;
int        SSym.gi_Digits = 0;
int        SSym.gi_StopLevel = 0;
int        SSym.gi_FreezLevel = 0;

Mas, por alguma razão, há muitos erros na compilação. O que está errado?

Razão: