Aynı eyleme neden olan koşullarda birçok "veya" (||)'dan kaçmak mümkün müdür? - sayfa 4

 

borilunad :

En karmaşık hesaplamalar, piyasanın çeşitli gerekli verilerini ve her tikte açık pozisyonları kontrol eden fonksiyonlar kadar yavaşlamaz.

Kutsal gerçek, MarketInfo, test etmedeki en kötü sorunlardan biridir. Bu gibi durumlarda, mümkünse genellikle iki blok halinde yazarım ve yalnızca gerçek ticaret modu için "gerçek" isteklerde bulunurum. Bu özellikle değişmez (test cihazında) veriler için etkilidir, örneğin:

 int spread;

int init()
{
...

   if (IsTesting())
   {
      spread = MarketInfo( Symbol (),MODE_SPREAD);
   }

...
 
}

int start()
{
...

   if (!IsTesting())
   {
      spread = MarketInfo( Symbol (),MODE_SPREAD);
   }

...
}

Ayrıca if(!IsTesting()) bloğuna her türlü RefreshRates(), MODE_BID ve MODE_ASK istekleri (hızlı Bid and Ask ile değiştirilerek) vb. gönderebilirsiniz.

 
alsu :

Kutsal gerçek, MarketInfo, test etmedeki en kötü sorunlardan biridir. Bu gibi durumlarda, mümkünse genellikle iki blok halinde yazarım ve yalnızca gerçek ticaret modu için "gerçek" isteklerde bulunurum. Bu özellikle değişmez (test cihazında) veriler için etkilidir, örneğin:

Ayrıca if(!IsTesting()) bloğuna her türlü RefreshRates(), MODE_BID ve MODE_ASK istekleri (hızlı Bid and Ask ile değiştirilerek) vb. gönderebilirsiniz.

Başlangıcın başında sahip olduğum MarketInfo fonksiyonlarını değil, piyasanın çeşitli parametrelerini ve aksiyon almak için gerekli koşullarda belirtilen açık pozisyonları kontrol eden fonksiyonları kastediyorum. Üstelik MODE_BID ve MODE_ASK'ya ihtiyacım yok, çünkü Her zaman Bid'om ve Ask'om kullanırım.
 
pako :

Çok teşekkür ederim Pako! Peki, nasıl tahmin edemedim, bu kadar basit! Şimdi akşam yemeği yiyip elimden gelen her şeyi yapacağım ve hızımı kontrol edeceğim.

Ve ne demek istediğini anlamıyorum. Bu rakamlar nereden geldi? Kısa değişken isimleriyle ilgileniyorsanız, kısa isimleri uzun olanlara tercih ederim. Ya da başka ne var? Evet, formülüme clo'dan önce ve clo'dan sonra iki parantez eklediğinizi fark ettim. Bu hiç gerekli değil, hesaplamayı ihlal ediyor. Ama yine de, kalbimin derinliklerinden teşekkür ederim!

<--- 10.444 = 8.087 > 3.908 hangi dilde?

Yaptım, kontrol ettim, ortaya çıktı, ancak sonuç beni henüz memnun etmedi, çalışma süresini pratik olarak azaltmadı! Yarın elimden gelen her şeyi yapmaya çalışacağım, belki o zaman biraz fark olur.

Ama her neyse, asıl mesele şu ki, Pako, Alexey, Viktor ve diğerleri sayesinde, size çok minnettar olduğum başka bir önemli kod yazma yöntemi edindim!

 

Bu gibi durumlarda, işlevi kullanırım.

Örneğin:

...
if (Request()) Action;

bool Request()
{
 if (A) return ( true );
 if (B) return ( true );
 if (C) return ( true );
 if (D) return ( true );
 return ( false );
}
 
borilunad :
Her zaman Bid'om ve Ask'om kullanırım.

O zaman hala RefreshRates())) ihtiyacınız var.
 
icas :

Bu gibi durumlarda, işlevi kullanırım.

Örneğin:

Anladığım kadarıyla, tüm koşulları yerine getirme seçeneğiniz var, ancak yalnızca bir koşulu yerine getirmem gerekiyor ve daha fazlası karşılanırsa, ki bu pek olası değildir, bunlar çok farklı, o zaman buna gelmeyecek, çünkü bir koşul işe yarayacak. Yanlış anladıysam lütfen açıklayın! Her zaman yeni olan her şeyden mutluyum! Teşekkür ederim!
 
alsu :

O zaman hala RefreshRates'e ihtiyacınız var())))
Evet, başlangıcın başında RefreshRates() var mı, yoksa bu yeterli değil mi?
 
borilunad :
Evet, başlangıcın başında RefreshRates() var mı, yoksa bu yeterli değil mi?
Her şey hesaplamaların ne kadar sürede tamamlanacağına bağlıdır. Bu süre zarfında fiyatın güncellendiği bir durum olabilir, bu da Ask ve Bid'in alakasız hale geldiği anlamına gelir. Bu nedenle, ticari işlemler gerçekleştirmeden önce (daha doğrusu onlar için fiyatları hesaplamadan önce) RefreshRates() öğesini çağırmak daha iyidir.
 
borilunad :
Evet, başlangıcın başında RefreshRates() var mı, yoksa bu yeterli değil mi?
Başlat işlevinin yürütülmesinin başlangıcında RefreshRates kullanmanın bir anlamı yoktur, çünkü Sor ve Bid henüz geçerliliğini yitirmedi.
 
alsu :
Her şey hesaplamaların ne kadar sürede tamamlanacağına bağlıdır. Bu süre zarfında fiyatın güncellendiği bir durum olabilir, bu da Ask ve Bid'in alakasız hale geldiği anlamına gelir. Bu nedenle, ticari işlemler gerçekleştirmeden önce (daha doğrusu onlar için fiyatları hesaplamadan önce) RefreshRates() öğesini çağırmak daha iyidir.

Yani her koşul dizisinden önce RefreshRates()'e mi ihtiyacınız var? Ve sonra, hataların kontrol edildiği her yürütme işlevinde, siparişi tekrarlamak için RefreshRates () olduğunu düşündüm ve bu yeterli. Sonra daha fazla RefreshRates() koymaya çalışacağım ve ne olacağını göreceğim! Teşekkür ederim!

Ve Pap'e Yozh'u da teşekkürlerimi sunarım!