[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 320

 
okvseok :

"çift MathRound ( double value)", ancak daha büyük bir ondalık kesire yuvarlanmasına ihtiyacım var ve sayı tamsayıysa veya zaten ondalık ise, ona dokunmayın.

Örneğin: 1) 0.744, 0.8'e yuvarlanır; 1.233, 1.3'e yuvarlanır

2) 0.9 veya 3 veya 1.5 dokunmayın.

 double MathRoundDec( double dValue) 
 {
  if (dValue == NormalizeDouble (dValue, 1 )) return (dValue);
   return ( MathRound ( 10 * dValue) / 10 );  
 }
Kontrol etmedim ama bunun gibi bir şey.
 
Zhunko :
Kontrol etmedim ama bunun gibi bir şey.


Kesinlikle işe yaramaz hareketler, yine de double res = 3'ü işlemek için matematiksel olarak double res=NormalizeDouble(res,1) yeterlidir; veya çift res = 3.0;

Fark, yalnızca yazdırıldığında (grafik) görünür olacaktır, ancak yazarın sorunun açıklamasında buna sahip değildir.

 
FAQ :


Kesinlikle işe yaramaz hareketler, yine de double res = 3'ü işlemek için matematiksel olarak double res=NormalizeDouble(res,1) yeterlidir; veya çift res = 3.0;

Fark, yalnızca yazdırıldığında (grafik) görünür olacaktır, ancak yazarın sorunun açıklamasında buna sahip değildir.

Peki, bunu yapabilirsiniz:

 double MathRoundDec( double dValue) 
 {
   return ( MathRound ( 10 * dValue) / 10 );  
 }
Bana göre ilk seçenek daha iyi. Daha hızlı çalışacaktır.
 
Zhunko :

Peki, bunu yapabilirsiniz:

Bana göre ilk seçenek daha iyi. Daha hızlı çalışacaktır.


Bu seçenek

 double res= NormalizeDouble (res, 1 );

en hızlı olmalı

 
Herkese teşekkürler. Pazartesi tekrar yazıp her şeyi deneyeceğim!
 
Vadim'in sürümü %20-25 oranında daha hızlıdır, ancak etki, bir milyonu aşan yineleme sayısıyla istikrarlı bir şekilde kendini göstermeye başlar. (kontrol)
 
FAQ :
Vadim'in sürümü %20-25 oranında daha hızlıdır, ancak etki, bir milyonu aşan yineleme sayısıyla istikrarlı bir şekilde kendini göstermeye başlar. (kontrol)

Kodu nasıl test ettiğinizi gösterin
 
FAQ :
Vadim'in sürümü %20-25 oranında daha hızlıdır, ancak etki, bir milyonu aşan yineleme sayısıyla istikrarlı bir şekilde kendini göstermeye başlar. (kontrol)
çok teşekkürler!
 
okvseok :

şöyle yazmak doğrudur: if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice()) Stop=false // yani sondan son sipariş kar al (belirli bir seviyeye ulaşıldığında kar alarak), sonra Stop=false? (Global değişkenlerde dur)

soru ortaya çıktı, çünkü siparişim her durumda if((iClose(NULL,0,1)<ma) && Stop==True) koşuluyla açıldı...

 

Normalleştirilmemiş kopyaları asla karşılaştırmayın, işe yaramaz. Ve bu arada , bir emrin kapanış fiyatı alış fiyatından farklı olabilir (gerçek/demo (online))

bu nedenle fiyat farkının modülünü ölçmek ve test değeri ile karşılaştırmak daha doğru olacaktır.

 if ( MathAbs ( OrderTakeProfit ()- OrderClosePrice ())< 2 * Point ){Stop=false;}
Neden: