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

 

Danışman yazan programcıları nerede arayacağımı söyle!

 

ek olarak, çubuğun açıldığı anı da kontrol etmeniz gerekir:

 datetime bartime;

int init()
{
   ...
   bartime= 0 ;
   ...
}

int start
{
   ...
   if (bartime<Time[ 0 ]) //если пришел новый бар
   {
       //делаем то что нужно
   }
   ...
   bartime=Time[ 0 ]; //обязательно запомнили обсчитанный бар
}

 
supernovik :

Danışman yazan programcıları nerede arayacağımı söyle!

https://www.mql5.com/ru/forum/116708
 
alsu :
...

3. for(i=1;i<=PerB;i++) MyATR[i-1]=(Yüksek[i]-Düşük[i])/Düşük[i] için diziyi doldurun; indeks i 1'den başlar çünkü sadece kapalı çubuklara ihtiyacımız var

...

nasıl olduğunu kontrol et, belki hata sadece bundadır

Tamam teşekkürler, sabah deneyeceğim (şimdi kafam kaynamıyor), ama bu durumda (i=1) mevcut barın Open[0] fiyatına başvurabilir miyim?

Not Tamam, özü kavradım gibi görünüyor - öğleden sonra deneyeceğim.

 
Craft :
Tamam, deneyeceğim, ancak bu durumda (i=1) Mevcut Açık[0]& çubuğunun Açık fiyatına başvurabilirim
Elbette yapabilirsin, seni hiçbir şey durduramaz. Genel olarak, MQL'de kişi dizi indekslerinden çok sorumlu olmalı ve sürekli olarak onların doğruluğunu kontrol etmelidir, çünkü hata ayıklama araçlarının eksikliği göz önüne alındığında, olası bir hatanın aranması haftalarca ertelenebilir. Ve çoğu zaman bu, "sahte kâselerin" ortaya çıkmasına neden olur - istemeden 1 barda geleceğe bakan ve bu nedenle test ederken olağanüstü sonuçlar veren, ancak gerçek zamanlı olarak birleşen programlar.
 

Sabaha kadar sürmedi. Biraz daha iyi oldu, ancak siparişlerden çiçek tarhlarının yeri kaçınılmazdı. Gerekli koşul altında tek bir sipariş vermeyi nasıl kaydedebilirim? Bahsettiğiniz: hayır, bu işe yaramaz. sadece siparişlerin tarihinin analizi yoluyla - bu nasıl yapılabilir veya başka ne uygulanabilir?

 
alsu :

ek olarak, çubuğun açıldığı anı da kontrol etmeniz gerekir:


alsu, bu benim örneğim için geçerli mi?
 
Lütfen söyle bana, bir danışman yazmakta zorlanıyorum. Eski emir tp veya sl ile kapatıldığında yeni bir emir açılması gerekir.



Minnettar olacağım!
 
Top2n :
Lütfen söyle bana, bir danışman yazmakta zorlanıyorum. Eskisi tp veya sl ile kapatıldığında yeni bir emir açılması gerekir.
Minnettar olacağım!

Sonuncunun nasıl kapanacağını tanımlayan işlevleri koda (Başlat işlevinin dışında) ayrı ayrı eklemek (kopyalamak) gerekir. konum.

Bu tür işlevler şu adrestedir: https://www.mql5.com/en/forum/107476

sayfa 21

isCloseLastPosByTake() işlevi.
Bu fonksiyon, son pozisyonu alma ile kapatmak için bayrağı döndürür. Bayrak kaldırıldı - Doğru - TakeProfit çalıştı. İşaret atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı

isCloseLastPosByStop() işlevi. Bu işlev, durarak son konumu kapatmak için bayrağı döndürür. İşaret kaldırıldı - Doğru - StopLoss tetiklendi. İşaret atlandı - Yanlış - pozisyon başka bir nedenle kapatıldı

--------------------

Büyük olasılıkla, bu da f-i gerektirecektir:

GetTypeLastClosePos() işlevi. Sayfa 20

Bu işlev, son kapatılan pozisyonun türünü veya -1'i döndürür.

=================================

O zaman, en basit durumda - açılış koşulları şöyle olacaktır:

//-------------Satın alma anlaşmaları için-------------

if ( isCloseLastPosByTake(NULL, OP_BUY, -1)==true || isCloseLastPosByStop(NULL, OP_BUY, -1)==true) {

// eğer son ise al veya dur ile kapatılan pozisyon al, ardından yeni bir alım pozisyonu aç

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

Aynı şey satış işlemleri için de geçerlidir....

 

Lütfen danışmanın deneyimli ustalarının göstergeden ve komut dosyasından (editörde "açmadan") nasıl ayırt ettiğini söyleyin. Her şeyi klasörlerde karıştırdım. EAs klasörü bozuk göstergelerle dolu ve göstergeler klasörü bozuk komut dosyalarıyla dolu. Bu nedenle, (her ihtimale karşı) yeni EA göstergesini her iki klasöre de kopyalıyorum.

Bence bu, dilin yaratıcılarının büyük bir kusuru. Dosya uzantısı farklı olmalıdır.

Büyükler ne diyecek?