[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 246

 
BBSL :

eddy kimseyi kırmak istemediğini söyledi

Aslında, umurumda değil dedim: D, birisini incitse bile doğru davranırım, çünkü Bunlar onların sorunları. ama bu onların iyiliği için, öyle ki, sorunu çözmek isteyen onlar, sebep aramaya başlarlar ve sonunda onu ortadan kaldırırlar, aksi takdirde sorun her zaman olacaktır.
 
Ais :

Her şeyi tek bir dosyada yapmanın nedenlerinden biri -> https://docs.mql4.com/en/basis/variables/formal :

"Parametreleri referansa göre geçmek mümkündür. Bu durumda, bu tür parametrelerin değiştirilmesi, çağrılan fonksiyondaki karşılık gelen değişkenleri etkiler, referansla iletilir. Dizi elemanları referansla geçirilemez. Referansla parametreler sadece bir parametre içinde iletilebilir . modülü, kitaplık işlevleri için bu olanak sağlanmaz . "


Evet, belki de sorun bu...

Parametrelerden birinin referansla geçirilen bir dizi olduğu birçok işlevim var ...

Onlar. Sorunlardan kaçınmak için programın çoklu dosya yapısından vazgeçmek gerekiyor, farklı bir şekilde çözmek imkansız mı?

 
Bicus :

Beyler böyle bir soru

Danışmanı test cihazında çalıştırıyorum. EA'nın tarihe referansları vardır, yani. son örneğin 20 kapalı siparişten biri aranır.

Gerçek hayatta, her şey basittir, siparişlerin görüntülenmesi gereken tarih için dönemi belirleyebilirsiniz. Böylece en son siparişler her zaman "üstte" olur. Ancak test cihazında, daha fazla anlaşma - ne kadar çok sipariş verilirse, bunların listesi o kadar büyük olur ve danışman o kadar yavaş çalışmaya başlar.

Genel olarak, benzer bir sorunu nasıl çözdünüz?

Modern bilgisayarlar saniyede yüz milyonlarca işlem gerçekleştirir.

Bilgisayarın yavaşlamaya başlaması için kaç işlem olması gerekir?

"Zor" durumunuzda, siparişlerin yalnızca son ay/yarım yıl için aranacağı bir koşul girebilirsiniz.

 
eddy :
Aslında, umurumda değil dedim: D, birisini incitse bile doğru davranırım, çünkü Bunlar onların sorunları. ama bu onların iyiliği için, öyle ki, sorunu çözmek isteyerek, nedenler aramaya başlarlar ve sonunda onu ortadan kaldırırlar, aksi takdirde sorun her zaman olacaktır.


eddy, kavram doğru - bu çok öznel))

Bir grup insan, bir şeyin genel olarak kabul edildiğine ve doğru olduğuna inanıyorsa, bu, bu grup insan için kuralların normudur. Bu forumda böyle bir grup var.

Kendi dünya görüşünüz olması çok güzel, ancak bunu tartışmak için zaman harcamak ve dahası insanları ikna etmek veya yeniden eğitmek çok büyük bir lüks))

Fikirlerin doğruluğunu tartışarak kaynakları boşa harcıyoruz ve sorularımız çözülmüyor.

Size tüm saygımla ve fikirlerinizi anlayarak programlamaya geri dönmeyi öneriyorum))

 
tmt0086 :
Merhaba =) Ben sadece bir danışman yazdım.. hiçbir koşul yok, sadece GBPUSD ve EURUSD'de açılıyor. Yani test yaparken EURUSD üzerinde durduğunda GBPUSD emirlerini açmaz. Ve tam tersi. Belki bir iş parçacığı olarak kurabilirsin? siparişleri açmak için.. Demoda her şey yolunda ama test edemiyorum.

birine cevap ver..
 
Sergey_Rogozin :

"Zor" durumunuzda, siparişlerin sayımının yalnızca son ay/yarım yıl için gerçekleştirileceği bir koşul girebilirsiniz.

Hangi koşullar?

Geçmiş, test cihazında sıralanamaz. Son sipariş en alta düşüyor. Buna ulaşmak için tüm hikayeyi kaydırmanız gerekir.

Yanıldım?

 
tmt0086 :

birine cevap ver..

MT4'te çoklu para birimi strateji test cihazı yoktur.
 
BBSL :


eddy, kavram doğru - bu çok öznel))

nesnel kurallar ve dolayısıyla doğruluk vardır. kuralların önemi ve kuralların hiyerarşisi de vardır. bir kural diğerinden daha az önemliyse veya hiyerarşik olarak daha düşükse, daha önemli/daha yüksek kural bunu gerektiriyorsa yoksayılmalıdır. Hayatım boyunca kuralları ve doğruluğu inceledim
 
Roman. :

MT4'te çoklu para birimi strateji test cihazı yoktur.

nereden alabileceğimi söyler misin? MT5'te gösterilecek mi?
 
Bicus :

Hangi koşullar?

Geçmiş, test cihazında sıralanamaz. Son sipariş en alta düşüyor. Buna ulaşmak için tüm hikayeyi kaydırmanız gerekir.

Yanıldım?


hayır. Onunla daha fazla çalışmak için sipariş geçmişinden en son kapatılan siparişi seçmeye bir örnek...

 //---Поиск последнего отработавшего ордера для открытия очередной позиции ---
   
   for (orderIndex = (OrdersHistoryTotal() - 1 ); orderIndex >= 0 ; orderIndex--)
   {   
       if (! OrderSelect (orderIndex, SELECT_BY_POS, MODE_HISTORY))
      {
         Print ( "Ошибка при доступе к исторической базе (" , GetLastError (), ")" );
         continue ;
      }
   
       if ((OrderSymbol() != Symbol ()) || (OrderMagicNumber() != MagicNumber))
      {
         continue ;
      }
      
        
   //-------------------------Принимаем в расчет только ордер, закрытый недавно-----------------------
if (time<OrderCloseTime())     //(сравниваем его с хранящимся в пероеменной time) 
  {
    time=OrderCloseTime();     //если время закрытия ордера больше - ложим его в переменную
         
         
     
         int lastType = OrderType();
         double lastLots = OrderLots();
         double lastProfit = OrderProfit() + OrderSwap();
.....
.....
.....