Önceki kene değeri - sayfa 3

 
PreviousTick = CurrentTick;

CurrentTick =   Bid ;

if ( CurrentTick < PreviousTick )

       {

difference = PreviousTick - Bid ;

TotalDescent = TotalDescent + difference;

descentarray[ 0 ]=TotalDescent;

       }


bu kod, mt4 grafiğinin çökmesine neden olur. bunun nesi var?

fark, TotalDescent, 0 başlangıç değeriyle double olarak bildirilir. iniş dizisi, maksimum öğe sayısı olmadan 1d dizisi olarak bildirilir. ÖncekiTick = 0 durumunu filtrelemek için bir if ifadesi var ve TotalAscent karşılığı iyi çalışıyor.

ilk eksi işareti gelene kadar çalışır, sonra çöker. atladığım bir şey var mı?

 

Lütfen kodunuzu eklemek için </> düğmesini kullanın.


 
JPSatrio :


bu kod, mt4 grafiğinin çökmesine neden olur. bunun nesi var?

fark, TotalDescent, 0 başlangıç değeriyle double olarak bildirilir. iniş dizisi, maksimum öğe sayısı olmadan 1d dizisi olarak bildirilir. ÖncekiTick = 0 durumunu filtrelemek için bir if ifadesi var ve TotalAscent karşılığı iyi çalışıyor.

ilk eksiltme işareti gelene kadar çalışır, sonra çöker. atladığım bir şey var mı?

Diziyi boyutlandırıyor musunuz?

 
Keith Watford :

Diziyi boyutlandırıyor musunuz?

Hayır, çünkü hangi boyutun gerekli olacağından emin değilim. Dediğim gibi, yükseliş tarafı, sabit bir boyut seti olmadan diziyle iyi çalışıyor.
 
JPSatrio :
Hayır, çünkü hangi boyutun gerekli olacağından emin değilim. Dediğim gibi, yükseliş tarafı, sabit bir boyut seti olmadan diziyle iyi çalışıyor.

Diziyi boyutlandırmanız gerekir. Gereken boyuttan emin değilseniz, ona her ekstra öğe vermek istediğinizde, boyutu birer birer artırın.

 
Keith Watford :

Diziyi boyutlandırmanız gerekir. Gereken boyuttan emin değilseniz, ona her ekstra öğe vermek istediğinizde, boyutu birer birer artırın.

Shure için bir deneyeceğim, teşekkürler. Ancak, kodlayıcıların diziler için bir boyut belirlemediği birçok durum gördüm. Bu davanın neden farklı olduğundan hala emin değilim.
Eğer id, dizimi çok daha karmaşık hale getirecek her tıklamada dizimi artırma ve yeniden boyutlandırma gerekliliği olup olmadığını kontrol etmek zorundaysa, bu yüzden veri miktarını yönetmek için yeterince büyük bir boyut ayarlayacağımı düşünüyorum. Bir dizi dolarsa ne olur? (Bana hiç olmadı) yine mi kaza yaptı?
 
JPSatrio :
Shure için deneyeceğim, teşekkürler. Ancak, kodlayıcıların diziler için bir boyut belirlemediği birçok durum gördüm. Hala bu davanın neden farklı olduğundan emin değilim.
Eğer id, dizimi çok daha karmaşık hale getirecek her tıklamada dizimi artırma ve yeniden boyutlandırma gerekliliği olup olmadığını kontrol etmek zorundaysa, bu yüzden veri miktarını yönetmek için yeterince büyük bir boyut ayarlayacağımı düşünüyorum. Bir dizi dolarsa ne olur? (Bana hiç olmadı) yine mi kaza yaptı?

Bir dizinin boyutlandırılmadığı bir durum göreceğinizi hiç sanmıyorum. Var olmayan bir öğeye bir değer koymaya çalışırsanız, kod çökecektir.

 
Keith Watford :

Bir dizinin boyutlandırılmadığı bir durum göreceğinizi hiç sanmıyorum. Var olmayan bir öğeye bir değer koymaya çalışırsanız, kod çökecektir.

Bu başardı. Teşekkürler!
 

Bu iş parçacığı, bana önceki Ask ve şimdiki Ask arasındaki farkı anlatacak bir kod geliştirmeme yardımcı oldu. Fark sıfırsa 0.0 yazdırır, ancak fark sıfır değilse 1.000000000006551e-05 gibi çok fazla basamak vardır. Kodumda bir sorun mu var yoksa bunu düzeltmenin bir yolu var mı? Eğer önemliyse sembol EURUSD'dir. Bu benim ilk mql kodum, eksiklikler için şimdiden özür dilerim. Teşekkürler!

 /* Global Variables */
double ask_prev;
double ask_curr;
double ask_diff;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---

   MqlTick tick_curr;
//---
   if ( SymbolInfoTick ( Symbol (),tick_curr))
     {
      ask_curr = tick_curr.ask;
      ask_diff = ask_curr - ask_prev;
       Print (ask_diff);
      ask_prev = tick_curr.ask;
     }
   else Print ( "SymbolInfoTick() failed, error = " , GetLastError ());
  }
//+------------------------------------------------------------------+
 
rdone :

Bu iş parçacığı, bana önceki Ask ve şimdiki Ask arasındaki farkı anlatacak bir kod geliştirmeme yardımcı oldu. Fark sıfırsa 0.0 yazdırır, ancak fark sıfır değilse 1.000000000006551e-05 gibi çok fazla basamak vardır. Kodumda bir sorun mu var yoksa bunu düzeltmenin bir yolu var mı? Eğer önemliyse sembol EURUSD'dir. Bu benim ilk mql kodum, eksiklikler için şimdiden özür dilerim. Teşekkürler!

Neden sadece...

 MqlTick tick_curr, tick_last;

void OnTick ()
{
   tick_last = tick_curr;
   SymbolInfoTick ( Symbol (),tick_curr);
}