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

 
ve işte başka bir soru... SecondsAfterOpenLastPos() işlevi. danışman devre dışı bırakılmışsa, bu işlev dün KAPALI olan son anlaşmanın değerini döndürür mü? (Kontrol edemiyorum - piyasa duruyor)
 
rigonich :


Bu tür sorunları çözmek için birkaç seçenek vardır. belki de en basiti, tüm siparişler arasında dolaşın, en son kapatılanı arayın, siparişinizin stop veya kar ile kapatılıp kapatılmadığına bakın, biletini hatırlayın, döngüye yeni bir tane ile başlayın, eğer biletle bir sipariş hatırlıyorsanız seçili, atla, sondan bir önceki sırayı bul...

PS ve MODE_TRADES değil, MODE_HISTORY.


mantık açık.... ama benim için bunu koda yazmak hala imkansız... ÇOK karmaşık... Tekrarlama döngüleriyle hiç çalışmadım... Sadece onlara ihtiyacım yoktu... bu yüzden - karanlık bir orman:))) Ve gördüğüm o döngüler benim için biraz açık... bir şeylerin düzenlendiği açık... ve bu kadar.

BASİT bir örnek alabilir miyim... ama burada neler olduğunu ve döngünün neresinde olduğunu anlamam için açıklamalarla birlikte?

 
lottamer :

belki buradan iki seçeneği yeniden yapabilirsiniz https://forum.mql4.com/ru/38949/page5#434244

TimeOpenLastPos() işlevi.

Bu fonksiyon, son açık pozisyonun açılış zamanını döndürür.

Son KAPALI pozisyonu açma İHTİYACI

veya

SecondsAfterOpenLastPos() işlevi.

Bu fonksiyon, son pozisyonun açılmasından bu yana geçen saniye sayısını döndürür.

GEREKLİDİR saat içinde .... ve saniye içinde değil.

bu seçenek daha yakın

İlk seçenek minimum değişikliklerle kullanılabilir (geçmişe ve neye ihtiyacınız olduğuna bakın), ancak ikincisi hakkında, neden onunla karşılaştığınız açık değil mi? danışmanınızdan tam olarak ne istediğinizi düşünün? Günde birden fazla işlem açmaması için mi?
 
lottamer :
ve işte başka bir soru... SecondsAfterOpenLastPos() işlevi. danışman devre dışı bırakılmışsa, bu işlev dün KAPALI olan son anlaşmanın değerini döndürür mü? (Kontrol edemiyorum - piyasa duruyor)


İrade.

Daha doğrusu, kapalı değil, açık olacak

 
rigonich :


Pratikte bu, emirlerle çalışan tüm baykuşlarda kullanılır. önce bir emir seçmeniz gerekir ve sonra onunla bir şeyler yapabilirsiniz (siparişle ilgili bilgileri görüntüleyin, sunucuya değiştirilmesi veya kapanması hakkında bir ticaret talebi gönderin) Terminalde emir seçmenin biletle iki yolu vardır, yani, belirli bir sipariş için değişmeyen sunucudaki siparişe atanan numaraya veya siparişin terminalde saklandığı seri numarasına (endeks) göre. Bu sayı, hangi ve kaç siparişin açıldığına, verildiğine, kapatıldığına veya silindiğine bağlı olarak her tikte değişebilir.

Siparişlerle çalışmak için sipariş numaralandırma döngüleri düzenlenir.


Örneğin, D1'in açılışında bir limit emrim var. TP ve SL birkaç gün çalışmayabilir, bir siparişi kontrol ederseniz .. o zaman müsait olur ve yenisini açmayız. Demek ki uymuyor. Böylece, potansiyel işlemler kaçırılacaktır.
 
hoz :

Örneğin, D1'in açılışında bir limit emrim var. TP ve SL birkaç gün çalışmayabilir, bir siparişi kontrol ederseniz .. o zaman müsait olur ve yenisini açmayız. Demek ki uymuyor. Böylece, potansiyel işlemler kaçırılacaktır.

Ardından tüm siparişlerin açılış saatini kontrol edin ve bugün açık olan bir sipariş olup olmadığına bakın.
 
rigonich :
İlk seçenek minimum değişikliklerle kullanılabilir (geçmişe ve neye ihtiyacınız olduğuna bakın), ancak ikincisi hakkında, neden onunla karşılaştığınız açık değil mi? danışmanınızdan tam olarak ne istediğinizi düşünün? Günde birden fazla işlem açmaması için mi?

koşulların toplamına göre - Dün son işlemin açılış saatini TAM OLARAK bilmem gerekiyor (bu, ertesi gün doğal olarak kapanacak, ancak tam olarak ne zaman bilinmiyor - belki hemen ve belki bugün sabah erkenden) danışmana dünün anlaşmasının bugünü etkilemediğini açıkça belirtin çünkü ben bunu amaçladım.

Ancak bugünün kapalı olanı, bugünün açık olanı zaten etkilemelidir GEREKİR.

onlar. EA, sabah açık olduğunda dünün ticaretini bugünün ticaretinden ayırt etmelidir. Bu da ancak AÇILIŞ zamanı karşılaştırılarak yapılabilir.

 
rigonich :


İrade.

Daha doğrusu, kapalı değil, açık olacak


dünkü son işlemin açılış saati nasıl alınır?
 
rigonich :


İrade.

Daha doğrusu, kapalı değil, açık olacak


lanet olsun ... çünkü orada açıkça yazıyor

( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))

 
rigonich :
İlk seçenek minimum değişikliklerle kullanılabilir (geçmişe ve neye ihtiyacınız olduğuna bakın), ancak ikincisi hakkında, neden onunla karşılaştığınız açık değil mi? danışmanınızdan tam olarak ne istediğinizi düşünün? Günde birden fazla işlem açmaması için mi?


bir seçenek buldu.

böyle bir fonksiyon var

isTradeToDay() işlevi.

Bu işlev, bugünün ticari bayrağını döndürür. Bayrak kaldırdı - Doğru - pozisyonlar bugün açıldı . Bayrak atlandı - Yanlış - bugün hiç pozisyon açılmadı

sadece burada ilginç - işlem saat 23'te açılır ve sabah saat 4'te kapanırsa, bu fonksiyon sabah saat 7'de neyi gösterecek? bugün anlaşma var mıydı, yok muydu?

Neden: