[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 24

 

Zaten başlatıldı. Açılış sinyalini uzun süre tahmin etmedi ve hava aynı zamanlayıcıdan sağlandı.

Kısacası, Paul öldü.

 
Biri bana söyleyebilir mi: soru banal gülünç, ama onu her gün yok edemem. Bir mum açıldığında bir danışmanı sipariş açmaya zorlama ve aynı mum üzerinde kapanırsa, yeni bir mum görünene kadar açılmaz. Burada sorun, bir sinyal göründüğünde, bir siparişin açıldığı, diyelim ki siparişin sırasıyla aynı mum üzerinde kapatıldığı, sinyalin yürürlükte olduğu, ancak artık alakalı olmadığı gerçeğinde yatmaktadır. robot açılış fiyatına yazılır. Bir yolu olduğunu hatırlıyorum ama hatırlayamıyorum.
 

bayrak denir

Sipariş açıldığında, OrderIsOpened=true atayın. Yeni bir mum açarken - ...=yanlış ve hepsi bu.

 
tara :

bayrak denir

Sipariş açıldığında, OrderIsOpened=true atayın. Yeni bir mum açarken - ...=yanlış ve hepsi bu.

Teşekkür ederim. Ve yeni bir mumun açılışını nasıl kodlayabilirim?
 
kwadrad :
Teşekkür ederim. Ve yeni bir mumun açılışını nasıl kodlayabilirim?


Nasıl istersen, her şey senin elinde. Örneğin:

- zamanı TF'nin boyutuna değiştirirken (en kolay yol)

- "yeni" açılış fiyatı "eski" fiyattan farklıysa

hepsi aynı "bayrak" teknolojisini kullanıyor.

Benim için zevkti.

 
kwadrad :
Teşekkür ederim. Ve yeni bir mumun açılışını nasıl kodlayabilirim?
Arama ile keşfedin .
 
Fartarantula :

Merhaba sevgili mqls. İşte kodla ilgili ilk sorunum.

Aslında moda. Görev göstergesi, 1. satır = son ve sondan önceki gün maks. ve 2. satır = sondan önceki gün ve sondan önceki gün koordinatlarıyla modaya uygun.

Her şey hiçbir şey olmazdı, ancak daha küçük bir TF'ye geçerken, ilgili fiyat seviyesinde de olsa koordinat günün başlangıcına yapışır .... ve çizginin anlamı tamamen kaybolur.

Bir eğilim çizgisi nesnesi oluştururken, tarih saat parametresi suçlanır. Nasıl ulaşacağım hakkında hiçbir fikrim yok. Ekstremumların fiyatının oluşum zamanını hesaplamak gerekir. Görünüşe göre, bu bilgi

tf dakikasında belirlenir. ve burada bir stoperim var. Trend çizgisinin yeniden çizilmesi ve koordinatların ekstremumlara karşılık gelen çubuklara yapışması için TF değiştirilirken tarih-saat nasıl belirlenir.

Ne yazık ki, arama bu konuyla ilgili hiçbir şey bulamadı. tavsiye için minnettar olacağım.

Zorluğun, kodun yazma Prosedüründen kaynaklandığını anlıyorum.

Bu soruna aşağıdaki çözümü sunuyorum:

 // Ваша трендовая по High на дневном таймфрейме
datetime Time1 = iTime ( Symbol (), PERIOD_D1 , 1 );
double    High1 = iHigh ( Symbol (), PERIOD_D1 , 1 );
datetime Time2 = iTime ( Symbol (), PERIOD_D1 , 2 );
double    High2 = iHigh ( Symbol (), PERIOD_D1 , 2 );
ObjectCreate ( "High_Trend" , OBJ_TREND , 0 , Time2, High2, Time1, High1, 0 , 0 );

// Ищем точное время High'ев на таймфрейме PERIOD
int PERIOD = PERIOD_M5 ;

int BarTime1 = iBarShift ( Symbol (), PERIOD, Time1);
int BarTime2 = iBarShift ( Symbol (), PERIOD, Time2);
Time1 = iTime ( Symbol (), PERIOD, 
      Highest( Symbol (), PERIOD, MODE_HIGH, BarTime1, 1 ));
Time2 = iTime ( Symbol (), PERIOD, 
      Highest( Symbol (), PERIOD, MODE_HIGH, BarTime2, BarTime1+ 1 ));

ObjectSet ( "High_Trend" , OBJPROP_TIME2, Time1);
ObjectSet ( "High_Trend" , OBJPROP_TIME1, Time2);

Tek sorun, bu koda sahip EA test cihazında çalıştırılırsa ve PERIOD değişkeni PERIOD_M1 olarak ayarlanırsa, o zaman her iki iBarShift işlevi de -1 döndürür, yani. işlev, TF M1'deki bir çubuğun geçmişinde böyle bir zamanla bulunamadı ... Bu neden oluyor, bilmiyorum.

Neden olduğunu anladım! Test edilen dönemde M1 çubukları için bir geçmiş yoktu.

 
alex12 :

Enstrümanın tüm geçmişi için fiyat davranışını MA tarafından görmem gerekiyor, ancak grafiğe yerleştirildiğinde gösterge çizilmiyor.

Sorun nedir ?

Derlerken = 0 ve 0.

Bu arada - MT4 Terminali kilitleniyor!

Geçmiş ve Aver_Bars giriş parametrelerinin değerini daha küçük bir değere ayarlayın ve terminal "askıda kalmayı" durduracaktır.

Ve grafiğe yerleştirildiğinde göstergenin çizilmediği fikrini nereden aldınız? EUR/USD TF M1'i bugünün grafiğine attığımda göstergenizin benim için çizdiği şey buydu:


:D :D :D

 
artmedia70 :
Böyle bir hatayla (sıfıra bölme), danışman daha fazla çalışmayı durdurur. Kodda sıfıra bölmenin gerçekleştiği bir yer arayın - büyük olasılıkla, herhangi bir parametrenin hesaplanması sonucunda sıfır elde edilir.
Teşekkürler, anladım. Hafta sonu kontrol edeceğim.
 

Merhaba sevgili forum kullanıcıları.

Tabii ki, yeni başlayanlardan gelen soruların bir kısmı. mql4'ü araştırmaya çalışıyorum, daha önce hiç program yapmadım, bu yüzden sorular oldukça ilkel olabilir. Ama kendi başına çalışmıyor.

Bir histogram değil, bir çizgi çizerek, ancak bazı işlemlerle hacimlerin görüntüsünü biraz "eziyet etmeye" karar verdim. Kod parçası aşağıdaki anlama sahip olmalıdır. İkinci çubuktan başlayarak, önceki çubukla tek yönlü (her ikisi de yukarı), ses ikinci çubuktan çekilir. Sonuç olarak, gösterge penceresinde, ikinci çubuktan gerçekten yukarı doğru çizilen kesikli bir çizgi alıyorum, ANCAK bir nedenden dolayı her durumda değil. Kırık bir çizgi elde edilir, çünkü geri kalan koşulların oluşturulması için hiçbir şekilde tanımlanmamıştır, bu gelecek için bir konudur. Ama çizginin neden her ikinci çubukta yukarıya doğru çizilmediğini anlayamıyorum. Bana yardım et lütfen.

İşte kod. Koddaki diğer gözden kaçırmalar hakkında daha fazla yorum varsa, sadece memnun olacağım.

 double dVolume=Volume[i];
double vback1=Volume[i+ 1 ];

         {
         double vteor12=(dVolume+vback1)/ 2 ;
            if (Close[i+ 1 ]>Open[i+ 1 ] && Close[i]>Open[i]) double UP12=(Close[i]-Open[i+ 1 ])* 1000 ; else UP12= 0 ;
            if (UP12!= 0 ) double vrealUP12=(dVolume+vback1)/UP12; else vrealUP12= 0 ;
            if (Close[i+ 1 ]>Open[i+ 1 ])
            if (Close[i]>Open[i])
            ExtVolumesBuffer[i]=dVolume+vteor12-vrealUP12;
            if (ExtVolumesBuffer[i]< 0 ) ExtVolumesBuffer[i]= 0 ;
              }