Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1417

 

Ve burada bir çeşit karmaşa var... Bazı seviyeleri gizlemek ve diğerlerini belirli bir stille yapmak istiyorum (aksi gibi).

Böylece hata ayıklama stilindeki sıfır seviyesi değişiyor, ancak ilk seviyeyi gizlediğiniz anda sarıya geri dönüyor. Hata ayıklamada da öyle değil. Değerin yazılı olduğu yazı sadece doğru renktedir. Bu fibonacci ile ne acı....

   int total_levels=(int)ObjectGetInteger(ChartID(),name,OBJPROP_LEVELS);
   for(int i=0;i<total_levels;i++)
     {
      if(i==0 || i==4 || i==5)
        {
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELCOLOR,i,FiboClr);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELWIDTH,i,FiboWidth);
         ObjectSetInteger(ChartID(),name,OBJPROP_LEVELSTYLE,i,FiboStyle);
        }
      else
        {
         ObjectSetDouble(ChartID(),name,OBJPROP_LEVELVALUE,i,0);
         ObjectSetString(ChartID(),name,OBJPROP_LEVELTEXT,i,"");
        }
     }
 

Herkese iyi günler.

lütfen bana sorunu nasıl çözeceğimi söyleyin

pozisyonları ve emirleri işleyen ve bunları veritabanı ile kontrol eden bir sınıf var.

bu sınıftan STRUCTURES (string, double, int, string .....) geçirmemiz gerekiyor.

bu nasıl yapılabilir

ve mümkünse bir örnek bağlantısı

 
Sergey Li #:

Herkese iyi günler.

lütfen bana sorunu nasıl çözeceğimi söyleyin

pozisyonları ve emirleri işleyen ve bunları veritabanı ile kontrol eden bir sınıf vardır

bu sınıftan STRUCTURES (string, double, int, string .....) geçmek gerekir.

bu nasıl yapılabilir

ve mümkünse bir örnek bağlantısı

Standart kütüphanede örnekler bulunmaktadır.

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / Result
  • www.mql5.com
Result(MqlTradeResult&) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Bir emir göndermeden önce bir sembol üzerindeki son pozisyonun ne zaman açıldığını kontrol etmemiz gerekiyor, geçmişe mi yoksa terminalin global değişkenine mi bakmak daha hızlı olur?
 
lynxntech global terminal değişkenine mi bakmak daha hızlı olur?

Değişkenden daha hızlı olamaz. Sadece bir düzeltme: terminali yeniden başlatırken kaydetmek için terminalin global değişkenini kullanabilir ve OnInit() içinde geçmişe bakabilirsiniz. Ancak OnTick()'e gittiğinizde, bu değer terminalin global değişkeninde değil, global seviye değişkeninde olmalıdır.

 
Alexey Viktorov #:

Bir değişkende olduğundan daha hızlı olamaz. Sadece bir düzeltme: terminali yeniden başlatırken kaydetmek için terminalin global değişkenini kullanabilir ve OnInit() içinde geçmişi inceleyebilirsiniz. Ancak OnTick()'e gittiğinizde, bu değer terminalin global değişkeninde değil, global seviye değişkeninde olmalıdır.

Terminalin global değişkeni bu kadar yavaş mı, çünkü normal bir değişkenle aynı bellekte saklanmalı, gerektiğinde diskten istenen çok büyük miktarda bilgi değil.

 
lynxntech #:

Global bir değişken bu kadar yavaş mıdır, çünkü normal bir değişkenle aynı bellekte saklanmalıdır, gerektiğinde diskten istenen çok büyük miktarda bilgi değildir.

Kabaca konuşmak gerekirse, global bir terminal değişkeni neredeyse bir dosya gibidir. Aksi takdirde, bilgisayar kapatıldığında nerede saklanır? Ve programın herhangi bir yerinden erişilebilen global düzeydeki bir değişken bellekteki bir değişkendir. Doğal olarak daha hızlıdır.

Yeni bir açılışta, terminal yeniden başlatıldıktan sonra geri yüklemek için hem global seviye değişkenine hem de terminalin global değişkenine yazmanın daha iyi olduğu ortaya çıktı. Ancak terminal çalışırken, global seviye değişkeni kontrol edilmelidir.

 
Alexey Viktorov #:

Kabaca konuşmak gerekirse, global bir terminal değişkeni neredeyse bir dosya gibidir. Aksi takdirde, bilgisayar kapatıldığında nerede saklanır? Ve programın herhangi bir yerinden erişilebilen global düzeydeki bir değişken bellekteki bir değişkendir. Doğal olarak daha hızlıdır.

Yeni bir açılışta, terminal yeniden başlatıldıktan sonra geri yüklemek için hem global seviye değişkenine hem de terminalin global değişkenine yazmanın daha iyi olduğu ortaya çıktı. Ancak terminal çalışırken, global seviye değişkeni kontrol edilmelidir.

yani OnDeinit'te geçmişi kontrol edip global terminal değişkenine yazmak?

İdeal olarak, metin formunda sadece birkaç baytlık bilgi var, her zamanki değişkenler gibi kullanılabilirlikte, yani RAM'de bulunmuyor mu?

OnInit'te bunu okuyoruz, RAM'e yazıyoruz ve sonra değişken güncellendiğinde üzerine yazılıyor.

Bunu gerçekten ölçen biri var mı? Ya da belki geliştiriciler bunu anlamamıza yardımcı olabilir.

 
lynxntech #:

Yani OnDeinit'te geçmişi kontrol edip global Terminal'e yazmak mı?

İdeal olarak, metin biçiminde yalnızca birkaç bayt değerinde bilgi var, normal değişkenler olarak kullanılabilirlikte, yani RAM'de bulunmuyor mu?

OnInit'te onu okuruz, RAM'e yazarız ve sonra değişken güncellendiğinde üzerine yazılır.

Bunu gerçekten ölçen oldu mu? Ya da belki geliştiriciler bunu anlamamıza yardımcı olabilir.

OnDeinit() işlevinde geçmişi seçmekten kim bahsetti?

Ben bir sonraki pozisyon açılışında değişkeni terminal değişkenine kopyalama gerekliliğinden bahsediyordum...

 
Alexey Viktorov #:

OnDeinit() işlevinde geçmişin seçilmesi hakkında kim bir şey söyledi?

Bir sonraki pozisyon açılışında değişkeni terminal değişkenine kopyalama gerekliliğinden bahsediyordum...

Hepsi yapılabilir, soru gerçek işi ölçenlere ve planlarında ne olduğunu bilen geliştiricilere daha iyiydi.

Deney yapmak istemiyorum, başka birçok görev var.

Neden: