Singleton modelini MQL4'te uygulamak mümkün mü? - sayfa 4

 
FAQ :

Önceden tanımlanmış değişkenleri ve standart yapıları kullanmak daha kolay değil mi???

Bir örnek görmek isterim. Ve sonra, alternatif bir seçenek sunulmamasına rağmen, tekerleği yeniden icat ettiğim bir sayfanın tamamını okuyorum..
 
 

O zaman bana önceden tanımlanmış değişkenlerde benim verdiğim temel yapının diğer türlerinin nerede olduğunu gösterin ???

Özel olarak bu yapıdan bahsetmiyorum, genel olarak bu teknikten bahsediyorum.

Örneğin, burada konum özelliği yapısı:

 struct Position_Properties
{
   datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   double       gd_OpenPrice;         // Цена открытия
   double       gd_Lots;             // Объём позиции на открытие
   double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   double       gd_NewTP;             // Новый Take Profit выбранной позиции
   int          gi_CurTicket;         // Тикет выбранного ордера
   int          gi_Type;             // Тип торговой операции
   int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   int          gi_Magic;             // Магический номер
   string       gs_Comment;           // Комментарий
   string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   ulong        gu_Duration;         // Длительность позиции в секундах
} SPos;

Ayrıca önceden tanımlanmış değişkenler? Evet, böyle önceden tanımlanmış değişkenler yok!

 
İşte başlaman gereken yer burasıydı, ilk mesajda verdiğin yapıya göre karar veriyorum.
 
FAQ :
İşte başlaman gereken yer burasıydı, ilk mesajda verdiğin yapıya göre karar veriyorum.


Evet anladım. Peki seçeneklerim nedir? Bu noktada gerçekten tıkandım. Bazı çözüm gerekli. Bu değişkenler sınıflara nasıl aktarılır? Rahatlık istiyorum, o yüzden soruyorum...

 
hoz :

Tek bir kopyada ihtiyaç duyulan yapılar var. Doğal olarak, farklı veri yapı sınıflarında birkaç nesne oluşturmak kesinlikle önerilmez.

Böylece, bu durumda en makul seçeneğin singleton modelini kullanmak olduğu sonucuna vardım.

Doğru?

doğru değil.

harici değiştiriciyi kullan

 

Böyle?

 struct Position_Properties
{
   extern static datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   extern static datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   extern static double       gd_OpenPrice;         // Цена открытия
   extern static double       gd_Lots;             // Объём позиции на открытие
   extern static double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   extern static double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   extern static double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   extern static double       gd_NewTP;             // Новый Take Profit выбранной позиции
   extern static int          gi_CurTicket;         // Тикет выбранного ордера
   extern static int          gi_Type;             // Тип торговой операции
   extern static int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   extern static int          gi_Magic;             // Магический номер
   extern static string       gs_Comment;           // Комментарий
   extern static string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   extern static ulong        gu_Duration;         // Длительность позиции в секундах
} SPos;

Position_Properties::gdt_Expiration = 0 ;
Position_Properties::gdt_OpenTime = 0 ;
Position_Properties::gd_OpenPrice = 0.0 ;
Position_Properties::gd_Lots = 0.0 ;
Position_Properties::gd_CurSL = 0.0 ;
Position_Properties::gd_CurTP = 0.0 ;
Position_Properties::gd_NewSL = 0.0 ;
Position_Properties::gd_NewTP = 0.0 ;
Position_Properties::gi_CurTicket;
Position_Properties::gi_Type;
Position_Properties::gi_Slippage = 3 ;
Position_Properties::gi_Magic;
Position_Properties::gs_Comment;
Position_Properties::gs_Symbol;
Position_Properties::gu_Duration:
 
hoz :

Böyle?


garip mantık.


ve hariciyi kader değil yapmak için bir yapı örneği?

 
sergeev :

garip mantık.


ve hariciyi kader değil yapmak için bir yapı örneği?

Hiçbir yerde böyle anlardan söz edilmiyor. Nasıl yapıldığını nasıl bilebilirim? Tanıdık programcılardan kime sormuyorum - bilmiyorum. Ve bazıları hala foruma çıkıp sabitlemeyi başarıyor.

Böyle?

 struct Position_Properties
{
   static datetime     gdt_Expiration;       // Срок истечения отложенного ордера
   static datetime     gdt_OpenTime;         // Время открытия выбранной позиции
   static double       gd_OpenPrice;         // Цена открытия
   static double       gd_Lots;             // Объём позиции на открытие
   static double       gd_CurSL;             // Текущий Stop Loss выбранной позиции
   static double       gd_NewSL;             // Новый Stop Loss выбранной позиции
   static double       gd_CurTP;             // Текущий Take Profit выбранной позиции
   static double       gd_NewTP;             // Новый Take Profit выбранной позиции
   static int          gi_CurTicket;         // Тикет выбранного ордера
   static int          gi_Type;             // Тип торговой операции
   static int          gi_Slippage;         // Максимально допустимое отклонение цены для рыночных ордеров
   static int          gi_Magic;             // Магический номер
   static string       gs_Comment;           // Комментарий
   static string       gs_Symbol;           // Наименование фин. инструмента, с которым производится операция
   static ulong        gu_Duration;         // Длительность позиции в секундах
};
extern Position_Properties::SPos;
Position_Properties::gdt_Expiration = 0 ;
Position_Properties::gdt_OpenTime = 0 ;
Position_Properties::gd_OpenPrice = 0.0 ;
Position_Properties::gd_Lots = 0.0 ;
Position_Properties::gd_CurSL = 0.0 ;
Position_Properties::gd_CurTP = 0.0 ;
Position_Properties::gd_NewSL = 0.0 ;
Position_Properties::gd_NewTP = 0.0 ;
Position_Properties::gi_CurTicket;
Position_Properties::gi_Type;
Position_Properties::gi_Slippage = 3 ;
Position_Properties::gi_Magic;
Position_Properties::gs_Comment;
Position_Properties::gs_Symbol;
Position_Properties::gu_Duration:
 
hoz :

Hiçbir yerde böyle anlardan söz edilmiyor. Nasıl yapıldığını nasıl bilebilirim? Tanıdık programcılardan kime sormuyorum - bilmiyorum. Ve bazıları hala foruma çıkıp sabitlemeyi başarıyor.

Böyle?


bu nedir??

 extern Position_Properties ::SPos;