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

 
artmedia70 :

Henüz çalışmıyor ... ve AC

günlükte yakala, yeniden hesaplama doğru olmayabilir ve AC1 = 0 ve AC2 = 0 gibi koşul hiçbir zaman yerine getirilmeyecek ve asla 0 > 0 olmayacak

yazdır (AC1,AC2) ;
if (BB>0 && OsMA>0 && AC1>AC2) döner(1);

 
IgorM :

günlükte yakala, yeniden hesaplama doğru olmayabilir ve AC1 = 0 ve AC2 = 0 gibi koşul hiçbir zaman yerine getirilmeyecek ve asla 0 > 0 olmayacak

yazdır(AC1,AC2) ;
if (BB>0 && OsMA>0 && AC1>AC2) döner(1);

aşağıda:

başka dönüş (0);

 

Teşekkürler Igor. Görünüşe göre köpek orayı karıştırdı ... :)

Comment() bana aynı AC1 ve AC2 = 0.01 değerlerini veriyor, ancak veri penceresinde AC1=0.001008, AC2=0.001020 değerlerine sahipler.
Kapasite nasıl arttırılır? Peki, 1000 ile banal çarpma dışında mı yoksa bunun gibi mi?

 
IgorM :

evet, bir süre denemeniz gerektiği anlamına geliyor - bu ilk zirveye kadar ve sonra ........ - tekrar anlamıyorum


Yapılmış. İşte çalışmasının sonucu.

Kodun karmaşık olmadığı ortaya çıktı, bu yüzden kendiniz için yeniden yapmanız zor olmayacak.

Senaryo yazıya eklenmiştir.

Dosyalar:
0.mq4  4 kb
 

Bu giriş doğru mu:

 double AC1= NormalizeDouble ( iAC (sy,tf, 1 ), 8 );
 
artmedia70 :

Henüz çalışmıyor... ve bu AC

Tek bir çıkış yolu var - değişkenlerde hangi belirli değerlerin olduğunu bulmak - bu bize programlanmış koşulun neden çalışmadığını gösterecektir.

Yuvarlama otomatik olarak 0,01'e giderse, büyük olasılıkla test UsdJpy gibi bir araçta geçer. Ardından seçenek, dize değişkenleri üzerinde çalışmaya devam eder (virgülden sonra gerçekten çok fazla bir derinliğe ihtiyacınız varsa)

 
drknn :
Tek bir çıkış yolu var - değişkenlerde hangi belirli değerlerin olduğunu bulmak - bu bize programlanmış koşulun neden çalışmadığını gösterecektir.
Teşekkürler Vladimir, sebebini buldum. Soru iki mesaj yukarıda...
 
drknn :


Yapılmış. İşte çalışmasının sonucu.


ATP, her şey yolunda - çalışıyor, trend bayrağının girileceğini hiçbir şekilde tahmin edemedim - diziyi sıralamanın gerekli olduğunu düşündüm
 
artmedia70 :

Bu giriş doğru mu:


Doğru, çünkü ilk parametre bir sayı döndürür ve ikincisi - izin verilen sınırlar içinde bir tamsayı değeri. Bütün soru, değişkende tam olarak ne yatacağıdır. Olduğu gibi yazdırmayı deneyin ve şu yapıyı deneyin:

 double AC1= NormalizeDouble ( iAC (sy,tf, 1 ), 8 );
string str=AC1;
Print( "str = " ,str);
 
IgorM :

ATP, her şey yolunda - çalışıyor, trend bayrağının girileceğini hiçbir şekilde tahmin edemedim - diziyi sıralamanın gerekli olduğunu düşündüm


Dizilerle çalışmanın sorunu, dizi yineleme işlevi kendisine verilen bir değerle karşılaştığında, bu değerin bulunduğu hücrenin numarasını döndürmesidir. Ve aynı değerin aynı dizideki diğer hücrelerde bulunabilmesi gerçeği, tam da karmaşıklığa neden olan şeydir. Bu nedenle, tüm diziyi sıralayana kadar yinelemeye devam etmeliyiz, değerleri sıralamaya devam etmeliyiz. Ve istenilen değere denk gelir gelmez önceden oluşturulmuş başka bir diziye hücre indeksini giriyoruz veya stringlerin yapıştırılmasını yapıyoruz.

Görevinizin karmaşıklığı, zirveleri / çukurları aramanız gerektiğidir. Bunu tespit etmek için ekstremumu atlamanız gerekir ve ancak o zaman kod gerçekten içinden geçtiğini anlayabilir. Bu yüzden ekstremum noktasını ve içinde bulunduğu hücreyi hatırlamak için bir adım geri gitmelisiniz.