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

 
1Rakso >> :

sinyal neden çalışmıyor?

Filtre bölgesini en yüksek en yüksek ve en düşük en düşük noktalara ayarlamak istedim... sinyal çalışmıyor, neyi yanlış yapıyorum?

Burada ne aradığınızdan emin değilsiniz...

double hi_100 = iHigh(Symbol(),tf_100,iHighest(NULL,tf_100,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения
double lo_100 = iLow (Symbol(),tf_100,iLowest (NULL,tf_100,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения

maksimum ve minimum N-çubukları için ise, bu şekilde aranır.

double hi_100 = High[iHighest(Symbol(), tf_100, MODE_HIGH, hibar, 1)];
double lo_100 = Low [iLowest (Symbol(), tf_100, MODE_LOW, lobar, 1)];

burada hibar ve lobar, yüksek ve düşük değerlerin arandığı çubukların sayısıdır.

tf_100 - max ve min'in arandığı TimeFrame.

1 - arama 1. çubuktan başlar, sıfır çubuğunda aranmak istiyorsanız 0 ayarlamanız gerekir.

 
Swan >> :


oooh, ben bir debiiel'im, rezil etmekten utanıyorum
 
Dimi >> :

Şimdi sorunun kendisi; 20 değerini bu diziden değişkenlere nasıl çıkarabilirim?

çift Max_array[20] bildir; fonksiyonun dışında (küresel düzeyde), gerekirse - sonra statik

 
alsu >> :

ilk olarak, kodu mantıklı bir sıraya koyun.

ArraySetAsSeries(Max_array,true) - neden???

for(c=1; c <= total_c; c++) - diziler 0 ile total_c-1 arasında indekslenir .

Dürüst olmak gerekirse, mantığı neden beğenmediğinizi anlamadım... Burada ArraySetAsSeries(Max_array,true) Dizideki indeksleme yönünü ayarlayın. Yoksa yanlış bir şey mi var???

 
Dimi >> :

Dürüst olmak gerekirse, mantığı neden beğenmediğinizi anlamadım... Burada ArraySetAsSeries(Max_array,true) Dizideki indeksleme yönünü ayarlayın. Yoksa yanlış bir şey mi var???


bu kesinlikle bir hata değil, sadece mantık açısından gereksiz bir satır. ArraySetAsSeries, dizi boyutu daha da arttığında (örneğin, her yeni çubukta) anlamlıdır, o zaman yeni öğenin indeksi 0 olacaktır. Statik durumda, öğelerin bellekte hangi sırayla yerleştirildiği konusunda hiçbir fark yoktur. İkinci açıklama ile ilgili olarak - bir N boyutu dizisinde, son elemanın bir N-1 indeksi vardır. (c=0; c < total_c; c++) için doğru kod

 
alsu >> :

bu kesinlikle bir hata değil, sadece mantık açısından gereksiz bir satır. ArraySetAsSeries, dizi boyutu daha da artırıldığında (örneğin, her yeni çubukta) anlamlıdır, o zaman yeni öğenin indeksi 0 olacaktır. Statik durumda, öğelerin bellekte hangi sırayla yerleştirildiği konusunda hiçbir fark yoktur. İkinci açıklama ile ilgili olarak - bir N boyutu dizisinde, son elemanın bir N-1 indeksi vardır. (c=0; c < total_c; c++) için doğru kod

Teşekkür ederim şimdi anladım hatayı. Ama bu double Max_array[20] ile; bana gelene kadar... Çok farklı bir şekilde açıklamayacağım. Bu işlev, son 20 çubukta RSI'nin maksimum değerini arar. Başka bir fonksiyon tarafından hesaplanacak çubuk sayısı üzerinde aranacak bu maksimum değere ihtiyacım var. Yani her yeni çubukta hesaplanan bu çubuk sayısı değişecektir. Belki 10, belki 20 veya 30... Bunu kodda nasıl uygulayacağınız aşağıda açıklanmıştır??? Çubuk hesaplama işlevi hazır, şimdi bu dizideki bu sayı 20 yerine nasıl ekleneceği double Max_array[20]; ????

 
Dimi >> :

Teşekkür ederim şimdi anladım hatayı. Ama bu double Max_array[20] ile; bana gelene kadar... Çok farklı bir şekilde açıklamayacağım. Bu işlev, son 20 çubukta RSI'nin maksimum değerini arar. Başka bir fonksiyon tarafından hesaplanacak çubuk sayısı üzerinde aranacak bu maksimum değere ihtiyacım var. Yani her yeni çubukta hesaplanan bu çubuk sayısı değişecektir. Belki 10, belki 20 veya 30... Bunu kodda nasıl uygulayacağınız aşağıda açıklanmıştır??? Çubuk hesaplama işlevi hazır, şimdi bu dizideki bu sayı 20 yerine nasıl ekleneceği double Max_array[20]; ????


Çok basit:

 double IsMaxRSI ( int total_c ) {
   . . .
   double Max_array [ ] ;  
   ArrayResize ( Max_array , total_c ) ;
   . . .
}
 виноват, код куда-то выпал
 
Dimi >> :

Burada ne aradığınızdan emin değilsiniz...

double hi_100 = iHigh(Symbol(),tf_100,iHighest(NULL,tf_100,MODE_HIGH,hibar,n_bar)); //поиск хая наибольшего значения
double lo_100 = iLow (Symbol(),tf_100,iLowest (NULL,tf_100,MODE_LOW,lobar,n_bar)); //поиск лоу наименьшего значения

maksimum ve minimum N-çubukları için ise, bu şekilde aranır.

double hi_100 = High[iHighest(Symbol(), tf_100, MODE_HIGH, hibar, 1)];
double lo_100 = Low [iLowest (Symbol(), tf_100, MODE_LOW, lobar, 1)];

burada hibar ve lobar, yüksek ve düşük değerlerin arandığı çubukların sayısıdır.

tf_100 - max ve min'in arandığı TimeFrame.

1 - arama 1. çubuktan başlar, sıfır çubuğunda aranmak istiyorsanız 0 ayarlamanız gerekir.

Teşekkürler, seçeneğinizi deneyeceğim, barlara gelince, 50 ila 100 bar arasında seviyeler arıyordum, bu yüzden onları optimizasyon için harici olanlara getirdim.

teşekkürler, hatanın nerede olduğunu buldum, global değişkenlere tf dizisini eklemedim ve dış değişkenlerde tf hesaplamasında değeri tf sırasına göre ayarladım))))

 extern int tf_100   =    3 ; //)))

int tf [ 10 ] = { 0 , 1 , 5 , 15 , 30 , 60 , 240 , 1440 , 10080 , 43200 } ; //массив таймфрейма забыл его вставить)))

double hi_100 = High [ iHighest ( Symbol ( ) , tf [ tf_100 ] , MODE_HIGH , hibar , 1 ) ] ;
double lo_100 = Low [ iLowest ( Symbol ( ) , tf [ tf_100 ] , MODE_LOW , lobar , 1 ) ] ;

Evet, aptal değilim, çocuksu değilim, basit şeyler ......

 
alsu >> :

Çok basit:

Çok teşekkürler!!! İşe yaramış gibi görünüyor!!!

Tıpkı saatin çalıştığı gibi, tekrar teşekkürler!!! Gerçekten basitti.
 

Arkadaşlar, iyi günler.


Sizin için zor değilse, bana bu tür zorlukları nasıl çözeceğimi söyleyin:


İlk danışmanlardan birini yazıyorum ve aşağıdaki zorluklarla karşılaştım:


1) Aynı para birimi için, ancak farklı TF'lerde yapılan "siparişleri ayırt etmek" mümkün müdür?

(örneğin, aynı döviz çiftinde, H4 ve M30'da bir EA ile işlem yapıyorum... H4'te bir anlaşma yaptım ve göstergeler bu TF'de hareketin devam ettiğini gösteriyor, ancak bu anlaşma bir sinyal nedeniyle kapatıldı M30'da kapatmak için. ayrıca "birkaç TF'den gelen verilerin kullanımı" Expert Advisor'da sağlanmamıştır...)

yani, H4 ve M30'daki bu işlemleri bir şekilde programlı olarak ayırt etmem mümkün müydü?


2) Danışman yazarken aklıma bariz bir fikir geldi :) "Bir pozisyonu kapatmak için sinyaller ve ters bir pozisyon açmak için sinyaller" her zaman iyi değil....

çoğu zaman, karın önemli bir kısmı, karşıt sinyalin oluşumundan önce kaybolur...

bu nedenle, takip eden bir durdurma kullanmaya karar verdim ve hedefi fibonacci'ye göre belirledim.


Lütfen söyleyin, programlı olarak (Uzman Danışmanda) nasıl bir hedef belirleyebilirim - bir anlaşma için sipariş verirken belirli bir fibonacci seviyesi için bir referans noktası?


3) böyle bir gösterge var: BrainTrend1StopN. Lütfen bana bu gösterge tarafından üretilen "puan" düzeyine durakları nasıl "çekeceğimi" söyleyin.


Şimdiden çok teşekkür ederim.
Dosyalar:
Neden: