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

 
prom18 :
Grafik artan düz bir çizgi gibi görünmelidir.

Neden böyle karar verdin?
 
Vinin :

Neden böyle karar verdin?
Her çubuğun hacmi sıfırdan büyük ve yeni bir çubuk göründüğünde yeniden hesaplanacak olan toplamlarına ihtiyacım var.
 

Sergeyev'e :

Ah, şimdi ne demek istediğini anlıyorum. for sayacının hangi değerle karşılaştırılacağını tam olarak hatırlar ve değiştirmez. Yani, OrdersTotal 2 döndürdüyse, o zaman bunu hatırlayacak ve 2 ile çalışacaktır.

 
Solree :

Sergeyev'e :

Ah, şimdi ne demek istediğini anlıyorum. for sayacının hangi değerle karşılaştırılacağını tam olarak hatırlar ve değiştirmez. Yani, OrdersTotal 2 döndürdüyse, o zaman bunu hatırlayacak ve 2 ile çalışacaktır.


hayır. Ben sana tam tersini söylüyorum.

döngü durdurma koşulu (sizin durumunuzda OrdersTotal() ) her yinelemede ! değerlendirilir!

yani ilk yinelemede =2
ikincide zaten =1

programcı mısın nesin anlamak için temel olan şey mümkün değildir.

 

Sergeyev'e :

Gözlerimi açtın. Orada nasıl olduğunu kontrol etmek için bilerek C++ için bir IDE bile açtım. Ve iki kat haklı olduğun ortaya çıktı! Teşekkür ederim! :) Ama... Bunu yapsanız bile sipariş hala seçilmedi:

 int someA = OrdersTotal ();
for ( int a = 0 ; a < someA; a++)
     if ( OrderSelect (a, SELECT_BY_POS, MODE_TRADES))
         if ( OrderComment () == "Aelit" && OrderType () == OP_SELL)
             OrderClose ( OrderTicket (), OrderLots (), NormalizeDouble (Ask, Digits ), 0 );
 
prom18 :
Her çubuğun hacmi sıfırdan büyük ve yeni bir çubuk göründüğünde yeniden hesaplanacak olan toplamlarına ihtiyacım var.

Toplam hacim hem yükselebilir hem de düşebilir.
 
Vinin :

Toplam hacim hem yükselebilir hem de düşebilir.
Anlamıyorum. Hacim, çubuğun içindeki kenelerin sayısıdır. İlkinin hacmi 30, ikincisi 20, üçüncüsü 10. Toplamı 60 olacak. Ya da değil mi?
 
Solree :

Sergeyev'e :

Gözlerimi açtın. Hatta orada nasıl olduğunu kontrol etmek amacıyla C++ için bir IDE bile açtım. Ve iki kat haklı olduğun ortaya çıktı! Teşekkür ederim! :) Ama... Bunu yapsanız bile sipariş hala seçilmedi:


Siparişleri sil her zaman geri sayım

 int someA = OrdersTotal ();
for ( int a = someA- 1 ;a>= 0 a--)
     if ( OrderSelect (a, SELECT_BY_POS))
         if ( OrderComment () == "Aelit" && OrderType () == OP_SELL)
             OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 0 );
 
Solree :

Ama... bunu yapsanız bile sipariş hala seçili değil:

ve olmayacak!

pozisyon numarasına göre bir OrderSelect yaparsınız.

ilk yinelemede ilk sırayı seçersiniz, sipariş konumu a=0

bu siparişi kapattıktan sonra sipariş sayısı OrdersTotal= 1 olur.
Bu, 1. konumdan önceki ikinci sıranın 0 konumu olduğu anlamına gelir.

Ancak ikinci yinelemede, a zaten = 1 , 0 değil! Ve şu anda var olmayan konum = 1 için OrderSelect'in bir hata döndüreceği ortaya çıktı .

-------

Şimdi, bir sonraki yazınızdan önce en az bir dakika düşünün. Bu dinamikten kaçınmak için hangi iki seçeneği önerebilirsiniz?

 
prom18 :
Anlamıyorum. Hacim, çubuğun içindeki kenelerin sayısıdır. İlkinin hacmi 30, ikincisi 20, üçüncüsü 10. Toplamı 60 olacak. Ya da değil mi?


Hacimli bir zaman serisi alın ve tutamaçlarla yeniden hesaplayın

Örneğin, aşağıdaki ciltler vardır

10, 15, 25, 8, 11, 24, 30

İşte üçünün toplamı

50, 48, 44, 55

Yükseliş var düşüş var

Her şey hayattaki gibidir