Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 852

 
Birkaç çubuk arasında maksimum Yüksek[] değeri nasıl bulunur?
 

Yeni mql4 CopyHigh özelliklerinden ve MathMax matematiksel işlevinden yararlanmak en iyisidir

Veya iEn Yüksek

 

Günaydın, hatanın nerede olduğunu söyle.

/////////////////////////////////////////////////////////////////////////////////////////////////////

  //////////////////////////////////Зона консолидации/////////////////////////////////////////////////

  ///////////////////////////////////////////////////////////////////////////////////////////////////

  if(Hour()>=10)

  {

   for(x9=2; x9<=5; x9++)

   {

    x10=Hour()-x9;//x10 -номер свечи от которой считаем восемь свечей назад

    if(x10>=0)

    {

     int Minn=iLowest(NULL, PERIOD_H1, MODE_LOW , x10+8, x10);

     int Maxx=iHighest(NULL, PERIOD_H1, MODE_HIGH, x10+8, x10);

     z11 =iHigh(NULL,PERIOD_H1,Maxx);

     z12 =iLow(NULL, PERIOD_H1,Minn);

     ZPB     =iTime(NULL,PERIOD_H1,x10+8);

     ZPB1     =iTime(NULL,PERIOD_H1,x10);

     if(z11-z12<=z10)

     {

      y4=ObjectCreate("Зона консолидации",OBJ_RECTANGLE,0,0,0,0,0);

      y4=ObjectSet("Зона консолидации",OBJPROP_WIDTH,2);

      y4=ObjectSet("Зона консолидации",OBJPROP_COLOR,Blue);

      y4=ObjectSet("Зона консолидации",OBJPROP_BACK,true);

      y4=ObjectMove("Зона консолидации",0,ZPB,z11);

      y4=ObjectMove("Зона консолидации",1,ZPB1,z12);

     }

    }

   }

  }

  ////////////////////////////////////////////////////////////////////////////////////////////////////

Planlandığı gibi, her yinelemede, kod kanal genişliğini kontrol etmelidir ve mevcut değerden küçük veya ona eşitse ( z11-z12<=z10 ), bir dikdörtgen çizmeniz gerekir, ancak çıktıda ortaya çıkıyor. önce tüm yinelemeler geçer ve ardından uygunluk denetimi yapılır.
 
AlexeyVik :

Yeni mql4 CopyHigh özelliklerinden ve MathMax matematiksel işlevinden yararlanmak en iyisidir

Veya iEn Yüksek

CopyHigh ise , ArrayMaximum , IMHO...
 

Lütfen bana 1 numaralı hatayla nasıl başa çıkacağımı söyleyin (ERR_NO_RESULT Hata yok, ancak sonuç bilinmiyor)?

EURUSD çiftinde , emrin 1 dolardan fazla zararda olması koşuluyla (0.01 çok 100 puan), EA emri değiştirmeye çalışır (emrin TakeProfit'ini açılış fiyatına ayarlayın).

Bu hatayı veriyor ne yapmalıyım?

 
evillive :
CopyHigh ise , ArrayMaximum , IMHO...
Evet, ben de öyle düşündüm... Bazı hatalar ve eksiklikler var. Yaklaşık bir buçuk ay önce beşinci forumda da aynı soru vardı. Yani orada ArrayMaximum hakkında konuşuyordum, ama burada biraz kafam karıştı ...
 

Merhabalar, 2000 adet miktarında hareketli ortalamalar (MA) ile çalışıyorum.

Görev, Kapanış[1] üzerindeki MA fiyatının tekrar sayısını saymaktır.

- Asgari kaynak maliyetiyle bu görevi gerçekleştirmek nasıl mümkün olabilir?

 
Top2n :

Merhabalar, 2000 adet miktarında hareketli ortalamalar (MA) ile çalışıyorum.

Görev, Kapat[1]'daki MA fiyatının tekrar sayısını saymaktır.

- Asgari kaynak maliyetiyle bu görevi gerçekleştirmek nasıl mümkün olabilir?

Kapanış fiyatlarında 1. periyodu kullanmazsanız tekrar sayısı sıfır olacaktır. Ancak belirli bir aralığa girmeyi düşünürsek, sorun çözülebilir ve daha ilginç olabilir. Alternatif olarak, maksimum ve minimum değerleri bulun. Farkı aralığa bölün. Ardından, her hareketli ortalama için, düştüğü aralığı belirliyoruz (burada aralıklarımıza veya aralıklarımıza karşılık gelen bir diziden bahsedeceğiz). En çok isabet alan dizi dizini kazanır. Belki de kendimi net ifade edemedim. Sorunu ayrı bir konuda çözmek daha iyidir. Birkaç çözüm olabilir. Ve gelecekte, birinin buna ihtiyacı olabilir. Ve burada ve sonra sonu bulamayacaklar
 

Merhaba, bir öğretici okuyorum, GV değişkenlerine ulaştım. Nasıl çalıştıklarını anlayamıyorum. Örneğin öğretici, GV değişkenlerinin yalnızca double türünde olabileceğini söylüyor. Tamam, çift çifttir). Ama sonra, GlobalVariableSet(), GlobalVariableGet(), GlobalVariableDel() fonksiyonlarını listelerken, birinin time, ikinci bool, vb. döndürdüğünü yazıyorlar. Kafamda bir karışıklık vardı, nasıl sıralandıklarını bile anlayamıyorum. Ayrıca yakın zamanda MQL4 çalışmaya başladım, kafamda bir çok yeni bilgi var. Mümkünse, ders kitabında (veya kendi başınıza) bir görev örneği kullanarak açıklayın:

Problem 24. Terminalde aynı anda birkaç uzman çalışıyor. Depozito tutarı 10.000$'dır.Tüm açık siparişlerin toplam değeri, mevduat tutarının %30'unu geçmemelidir. Her uzmana eşit miktarda para tahsis edilmelidir. Ticaret için tahsis edilen miktarın hesaplanmasını içeren bir Expert Advisor programı oluşturun.

int     uzmanlar ; // Miktar uzmanlar

çift Depo =10000.0, // Belirtilen mevduat

       Kalıcı =30, // Yüzdeyi ayarla

       para ; // Fon ara

string Miktar="GV_Quantity"; // GV değişken adı

//------------------------------------------------ --------------------

int init() // Özel. başlatma işlevi

{

Uzmanlar=GlobalVariableGet(Miktar); // Akımı al. değer

Uzmanlar=Uzmanlar+1; // Miktar uzmanlar

GlobalVariableSet(Miktar, Uzmanlar); // Yeni değer

Para=Depo*Kişi/100/Uzman; // Exp için fon.

Uyarı ("Penceredeki Uzman Danışman için", Sembol (), "vurgulanan", Para );

   dönüş; // init()'ten çık

}

//------------------------------------------------ --------------------

int start() // Özel. başlatma işlevi

{

int New_Experts= GlobalVariableGet(Miktar);// Yeni nicelik. tecrübe.

if (Uzmanlar!=Yeni_Uzmanlar) // Değiştirilirse

{

Uzmanlar=Yeni_Uzmanlar; // Şimdi geçerli. çok

Para=Depo*Kişi/100/Uzman; // Yeni değer para kaynağı

Uyarı ("EA için yeni değer", Symbol (),": ", Money );

}

/*

...

Burada uzmanın ana kodu belirtilmelidir,

Money değişkeninin değerini kullanan

...

*/

   dönüş ; // Baştan çık ()

}

//------------------------------------------------ --------------------

int deinit () // Spec. fonksiyon tanımı

{

   if ( Uzmanlar ==1) // Sadece bir uzman varsa..

      GlobalVariableDel ( Miktar ); //..GV değişkenlerini kaldır

   başka // Aksi takdirde..

      GlobalVariableSet(Miktar, Uzman-1); //..1 azalt

Uyarı ("Uzman pencereden kaldırıldı ", Sembol ()); // İleti boşaltma hakkında

   dönüş; // deinit()'ten çık

   }  

 
Vinin :
Kapanış fiyatlarında 1. periyodu kullanmazsanız tekrar sayısı sıfır olacaktır. Ancak belirli bir aralığa girmeyi düşünürsek, sorun çözülebilir ve daha ilginç olabilir. Alternatif olarak, maksimum ve minimum değerleri bulun. Farkı aralığa bölün. Ardından, her hareketli ortalama için, düştüğü aralığı belirliyoruz (burada aralıklarımıza veya aralıklarımıza karşılık gelen bir diziden bahsedeceğiz). En çok isabet alan dizi dizini kazanır. Belki de kendimi net ifade edemedim. Sorunu ayrı bir konuda çözmek daha iyidir. Birkaç çözüm olabilir. Ve gelecekte, birinin buna ihtiyacı olabilir. Ve burada ve sonra sonu bulamayacaklar

Düşünmek lazım teşekkürler.

ayrı konu - https://forum.mql4.com/en/66882

Neden: