[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 715

 
dimon74 :
Benim için bu böyle. Pozisyon TP tarafından kapatılmıştır ve yeni bir bekleyen emir vermek için TP+n*Puan değerine ihtiyacınız vardır. Ve burada bir tutarsızlık görüyoruz: OrderTakeProfit () bana dört işaret veriyor (bu, Uyarı aracılığıyla görülebilir) ve DC beş işaret istiyor. Zaten çok denedim, ama her şey değil gibi görünüyor. Bir fikriniz varsa, lütfen atın. Şimdiden teşekkürler!
Alert () ve Print () varsayılan olarak 4 ondalık basamak verir, aslında 8 kullanılmasına rağmen, "konsol"a daha doğru çıktı için DoubleToStr() işlevini kullanın.
 
dimon74 :
Benim için bu böyle. Pozisyon TP tarafından kapatılmıştır ve yeni bir bekleyen emir vermek için TP+n*Puan değerine ihtiyacınız vardır. Ve burada bir tutarsızlık görüyoruz: OrderTakeProfit () bana dört işaret veriyor (bu, Uyarı aracılığıyla görülebilir) ve DC beş işaret istiyor. Zaten çok denedim, ama her şey değil gibi görünüyor. Bir fikriniz varsa, lütfen atın. Şimdiden teşekkürler!

stringDoubleToStr ( çift değer, int basamak)

Sayısal bir değeri, belirtilen duyarlık biçiminde sayının karakter temsilini içeren bir metin dizesine dönüştürür.

Bu doğrulama için yardımcı olmalıdır.

Sadece hem Alert() hem de Print() değerleri 4 basamaklı bir doğrulukla verir. yani başka bir problemin var

 

neden böyle göründüğünü anlayamıyorum

 for ( int a= 0 ;a< 8 ;a++)
// тут что нить делаем
for ( int a= 0 ;a< 8 ;a++)
// еще чо нить делаем

değişkenin zaten tanımlı olduğunu yazar. tekrar 0 atanmış gibi görünüyor? Ve farklı kod parçalarındalar, ilki if'de, ikincisi başka'da ...

 
Abzasc :

neden böyle göründüğünü anlayamıyorum

değişkenin zaten tanımlı olduğunu yazar. tekrarda yine 0 atanmış gibi görünüyor? Ve farklı kod parçalarındalar, ilki if'de, ikincisi başka'da ...


 int a;
for (a= 0 ;a< 8 ;a++)
// тут что нить делаем
for (a= 0 ;a< 8 ;a++)
// еще чо нить делаем
Neden aynı değişkeni iki kez tanımlayasınız?
 
Vinin :

Neden aynı değişkeni iki kez tanımlayasınız?

yeniden okumak için

 for ( int a= 0 ;a< 8 ;a++)
 aJPY[a]= iCustom ( NULL , PERIOD_M15 , "Indexes" ,a, 0 );

Yani, koşul bir ise, okuyoruz, başka ise ... kahretsin. anladım. Ama bu özel bir durumda, bu parçaya başka bir yerde ihtiyacım yok.

a değişkeninin başka bir kod parçasında kullanılabilmesi için nasıl sıfırlanacağı açık değildir. Koşul aynıysa, bir gösterge diyoruz, diğeri ise - diğeri... aksi takdirde yeterli değişkeniniz olmaz...

 
Abzasc :

yeniden okumak için

Yani koşul bir ise okuruz, diğeri ise ... kahretsin. anladım. Ama bu özel bir durumda, bu parçaya başka bir yerde ihtiyacım yok.

a değişkeninin başka bir kod parçasında kullanılabilmesi için nasıl sıfırlanacağı açık değildir. Koşul aynıysa, bir gösterge diyoruz, diğeri ise - diğeri... aksi takdirde yeterli değişkeniniz olmaz...


Hayır, karar vermelisin. Kod eksik gibi görünüyor. Ben sadece birinden bahsettim. Bir değişken bildirmek ve onu kullanmak (ön başlatma ile) iki farklı şeydir. Bir ve aynı değişken tamamen farklı fonksiyonel değerler taşıyabilir, asıl şey neyi ve nerede olduğunu karıştırmamaktır.
 

Daha spesifik olmaya çalışacağım. Tamponsuz bir gösterge var. Başka bir göstergenin değerlerini 4 diziye alır. vidalamaya çalışıyorum

   int    counted_bars=IndicatorCounted();
   // считать только последний вызов
   int limit;
   if (counted_bars> 0 )
      counted_bars--;
   limit= Bars -counted_bars;
   for ( int i= 0 ;i<limit;i++)
Yeni bir bar varsa, tüm dizileri yeniden hesaplıyoruz. değilse, o zaman sadece 0-uluma. Ama yine de yeniden hesaplıyoruz, yani hem if hem de başkasını çağırıyoruz.
 
Abzasc :

Daha spesifik olmaya çalışacağım. Tamponsuz bir gösterge var. Başka bir göstergenin değerlerini 4 diziye alır. vidalamaya çalışıyorum

Yeni bir çubuk varsa, tüm dizileri yeniden hesaplıyoruz. değilse, o zaman sadece 0-uluma. Ama yine de yeniden hesaplıyoruz, yani hem if hem de başkasını çağırıyoruz.


farklı bir yaklaşımı tercih ederim

   int     counted_bars=IndicatorCounted();
   // считать только последний вызов
   int limit= Bars -counted_bars- 1 ;
   if ( Bars -counted_bars> 2 )
      limit = //.......................
   for ( int i=limit;i>= 0 ;i--)

Bu bir zevk meselesi olmasına rağmen. Ama en azından her satırı açıklayabilirim

 
Vinin :


farklı bir yaklaşımı tercih ederim

Bu bir zevk meselesi olmasına rağmen. Ama en azından her satırı açıklayabilirim

Bırak olsun. O zaman limit = 0 ise, eğer 0, 1, 2 dizisi yazarsak - dizi 0. Ve değişkende bir hata.

Yoksa dizi 1, 2, yoksa dizi 0 yazmamız gerekli mi?

Her neyse - a değişkenini iki kez kullanamam, işte önemli nokta. Her ne kadar sadece 2 kez başvursam da, if ve else içinde. Kodun en üstündeki genel değişkenlerde bile yok.

 
Abzasc :

Bırak olsun. O zaman limit = 0 ise, eğer 0, 1, 2 dizisi yazarsak - dizi 0. Ve değişkende bir hata.

Yoksa dizi 1, 2, yoksa dizi 0 yazmamız gerekli mi?

Her neyse - a değişkenini iki kez kullanamam, işte yakalama. Her ne kadar sadece 2 kez başvursam da, if ve else içinde. Kodun en üstündeki genel değişkenlerde bile yok.


Lütfen tüm kodu sağlayın. Kişisel olarak mümkündür. yardım etmeye çalışacağım