Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 364

 
bercut0077 :
İyi günler, bir gösterge var, ancak test cihazında, örneğin, yılın başından Mart ayına kadar belirli bir süre sonra çalışır, sonra sinyal vermeyi durdurur, ancak uzun bir süre test etmeniz gerekir (AuthorizedSSBODynamicBreakoutBoxFinalEdition), nerede bu kısıtlama koda dikilebilir - lütfen en azından nerede bir ipucu verin, hangi operatörler bunu tanımlıyor?
Zaman zaman hata veriyor. Sadece kutuyu çizmeyi bırakıyor. Hiçbir yerde kısıtlama yoktur. Kene tik test edin. Bazen yardımcı olur.
 
Sepulca :
Göstergenin kaynak kodu var mı? Değilse, yazarı arayın))))

Kaynağım var - orada şeytan bacağını kıracak.
 
Hayır, denemeyeceğim bile. Burada bazen kodunuzda kaybolursunuz, başka birininkinden bahsetmiyorum))))
 

Lütfen bana MQL4 ve 5 için kanıtlanmış bir uzman kurucu söyleyin, aksi takdirde çok az zaman vardır, bazen bir düşünceyi kontrol etmeniz veya birine yardım etmeniz, sonunda robot için temel oluşturmanız ve kendiniz eklemeniz gerekir ...

Minnettar olacağım, şimdiden teşekkürler! =)

 
vadynik :

bir fonksiyon yazıyorum

Ancak OrderOpenPrice () neden yuvarlanmış fiyatı dört ondalık basamağa beş ondalık basamağa döndürüyor?


 int i, k= OrdersTotal ();

   for (i=k- 1 ; i>= 0 ; i--) 
   {
     if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
     {                
       if (( OrderType ()== OP_BUY )&&( OrderOpenPrice ()>= Ask - 350 * Point )&&( OrderMagicNumber ()==Magic)||( OrderType ()== OP_BUY )&&( OrderOpenPrice ()<= Ask + 250 * Point )&&( OrderMagicNumber ()==Magic))
         {
           double o= OrderOpenPrice ();
           Print (o);
           OrderClose ( OrderTicket (), OrderLots (), Bid , 50 ,Blue); 
         
      }
    }
  }
Bunu yapmaya çalışın ve OrderOpenPrice ()'nin gerçekte ne döndürdüğünü görün, belki de bunun nedeni, işlevi Digits parametresiyle normalleştirmeniz ve baskıda gerçekte olmayan bir şey görmenizdir.
 
vadynik :

bir fonksiyon yazıyorum

Ancak OrderOpenPrice () neden yuvarlanmış fiyatı dört ondalık basamağa beş ondalık basamağa döndürüyor?

Print yuvarlatılmış fiyatı döndürmez, bu durumda yalnızca varsayılan ondalık basamak sayısını yazdırır.
Genel olarak her şey doğru, forex Rakamlardan daha düşük olan ondalık basamaklarla çalışmaz.Genel olarak, EURSD örneğine girerseniz, genellikle sadece dört ondalık basamaktır ve hatta beşinci ondalık basamak kavramıdır. bir DC.

Ancak sizin durumunuzda bunu yapmak daha iyidir: Print(DoubleToStr(OrderOpenPrice(),Digits));

 
Ekburg :

Bunu yapmaya çalışın ve OrderOpenPrice ()'nin gerçekte ne döndürdüğünü görün, belki de bunun nedeni, işlevi Digits parametresiyle normalleştirmeniz ve baskıda gerçekte olmayan bir şey görmenizdir.

Normalleşme olmadan da aynı , açılış fiyatından puan çıkarmam gerekiyor, eğer öyleyse, o zaman fiyat doğru yazılır, ancak EĞER'de bir tür uyuşmazlığı var (
 Print ( DoubleToStr ( OrderOpenPrice (), Digits ));
 
vadynik :

Normalleşme olmadan da aynı, açılış fiyatından puan çıkarmam gerekiyor, öyleyse fiyat doğru yazılır, ancak EĞER'de bir tür uyuşmazlığı var (

Dört karakter için ve doğruluk sizin için önemliyse hesaplamalar yapın. daha sonra, önceki son karakterin değeriyle yerine geri getirin, çünkü hesaplamalar sırasında, hesaplamaların özellikleri nedeniyle değişmez.
 
Ekburg :

Dört karakter için ve doğruluk sizin için önemliyse hesaplamalar yapın. daha sonra, önceki son karakterin değeriyle yerine geri getirin, çünkü hesaplamalar sırasında, hesaplamaların özellikleri nedeniyle değişmez.
Normalleştirme yalnızca Ordersend, orderclose vb.'de gereklidir. peki ve baskılardaki gerçek A değerlerini karşılaştırırken, herhangi bir sayıda ondalık basamak belirtin. Ancak sadece Print(some_double_value) yazarsanız, kural olarak dört ondalık basamak görüntülenecektir. Bu nedenle yazmak daha iyidir.
 Print ( DoubleToStr ( OrderOpenPrice (), Digits ));

Daha önce de belirtildiği gibi, I.e. önce double'ı belirli sayıda ondalık basamaklı bir dizgeye dönüştürün ve ardından Print'i kullanarak günlüğe çıktı alın....
 
Ve puanlar hesaplanırsa, bunları puanlarla karıştırmayın. Diyelim ki double SPREAD=Ask-Bid puanları, hatta double SPREAD=(Ask-Bid)/Puan puanları.