mql5 - son işlemden bu yana belirli bir süre sonra dikey çizgi

 

Merhaba!

Beyler, aşağıdaki fikrin MQL5'te nasıl uygulanacağını öneren/yardımcı olabilecek var mı (yakın zamanda Metatrader ile kendim tanıştım - henüz kod yazmıyorum).

Kod algoritması:
1) Son işlemin kapanış saati ve işlemin sonucu belirlenir.

2) Son işlemin kapanışından sonraki günün genel sonucu belirlenir.

3) Gösterge ayarlarına uygun olarak, son işlemin kapatıldığı andan itibaren gelecekte belirli aralıklarla dikey bir çizgi çizilir.
Ayarlar:
- son ticaretin sonucu negatifse ve günün sonucu negatifse, dikey çizgi geleceğe 24 saat (gün) uzaklıkta çizilir.
- son ticaretin sonucu negatifse ve günün sonucu pozitifse, dikey çizgi geleceğe 2 saat uzaklıkta çizilir.
- Son ticaretin sonucu pozitifse, geleceğe 1 saat uzaklıkta dikey bir çizgi çizilir.

4) Çizgi, yeni bir anlaşmanın açılmasından sonra grafikte kalır, ancak yeni bir anlaşmanın kapanmasından sonra yukarıdaki algoritmaya göre hareket eder, çünkü yeni anlaşma zaten son kapanan anlaşma oldu.

Not.
Olumlu bir sonuç bir artıdır, emrin işe yaraması veya pozisyonun manuel olarak kapatılması önemli değildir. Onlar. artı dengede.
Negatif bir sonuç, bir işlemin sonucu olarak eksi veya sıfırdır.

not>

Bu kodun benim için anlamı şudur - işlemlerden sonra ara vermeye alışın ve ateşi kırmayın. Eriklerimin başarısız anlaşmaları hızla geri kazanmaya çalıştığını fark ettim. Manuel olarak bir tire koyabileceğiniz ve açıklanan kurala göre hareket ettirebileceğiniz açıktır, ancak bir yazılım seçeneğine ihtiyacım var çünkü. gelecekte, göstergeye ek koşullar/filtreler bağlamak istiyorum, yani. karar verme algoritmasını karmaşık hale getirir.

Hepinize şimdiden teşekkürler ve iyi şanslar!

 

Örnek olarak.

 void moveVLine( string obj_name, datetime obj_time)
{
   int          tm       = PeriodSeconds ( PERIOD_D1 );
   datetime     next_day = obj_time + tm;
   MqlDateTime tm_str;
   
   TimeToStruct (next_day,tm_str);
   if (tm_str.day_of_week == 6 )
   {
      tm *= 3 ;
      next_day = obj_time + tm;
   }
   ObjectMove ( 0 ,obj_name, 0 ,next_day, 0 );
   
   return ;
}
 
Сергей Таболин :

Örnek olarak.

Sergey, teşekkürler!
Örneğinizi başlatacağım için sonucu tekrar yazacağım
 
Сергей Таболин :

Örnek olarak.

Örnek derlenmedi :(
Anladığım kadarıyla kod bir parça ve bazı zorunlu bileşenler (#özellik vb.) eklemek gerekiyor mu?
 

Belirli bir zamanda sadece dikey bir çizgi çizen benzer bir gösterge buldum - önceden belirlenmiş statik bir zaman yerine gerekli algoritmaları ekleyerek onu temel almaya çalışacağım.
https://www.mql5.com/ru/code/18449

Vertical line
Vertical line
  • www.mql5.com
Индикатор рисует, а затем перемещает нарисованную вертикальную линию (OBJ_VLINE) на заданное время (часы и минуты). Входные параметры: Из параметра "Use only Hours and minutes" используются только часы и минуты.  Вертикальная линии рисуется для текущего дня. Если начинается новый день, то нарисованная линия переносится на этот новый день на...
 
Künt.
Belirli bir zamanda bir çubuğa çizgi çeken bir kaynak kodu (yukarıdaki kod) vardır. Sadece giriş parametrelerinden zamanı çıkarmak ve işlem geçmişinden zaman değerini almak gerekir. Ticaret işlevlerinin belgelerine bakıyorum, gerçeğin Tarih grubunun işlevleri arasında bir yerde olduğundan şüpheleniyorum... Şimdiye kadar bir incir görüyorum :(
Birisi geçmişten son anlaşmaya ilişkin verilerin nasıl alınacağını önerebilir/önerebilir mi ( konum kapanış saati ve anlaşmadaki sabit sonuç)?
 
renatmt5 :
Örnek derlenmedi :(
Anladığım kadarıyla kod bir parça ve bazı zorunlu bileşenler (#özellik vb.) eklemek gerekiyor mu?

Bu, dikey çizgi çevirme işlevidir . Belirli koşullar sağlandığında ana koddan çağrılması gerekir. Ayrıca, hattın kendisi zaten olmalıdır.

 
Сергей Таболин :

Bu, dikey çizgi çevirme işlevidir . Belirli koşullar sağlandığında ana koddan çağrılması gerekir.

Tamam, tekrar teşekkürler!
 
renatmt5 :

Merhaba!

Beyler, aşağıdaki fikrin MQL5'te nasıl uygulanacağını öneren/yardımcı olabilecek var mı (yakın zamanda Metatrader ile kendim tanıştım - henüz kod yazmıyorum).

Kod algoritması:
1) Son işlemin kapanış saati ve işlemin sonucu belirlenir.

2) Son işlemin kapanışından sonraki günün genel sonucu belirlenir.

3) Gösterge ayarlarına uygun olarak, son işlemin kapatıldığı andan itibaren gelecekte belirli aralıklarla dikey bir çizgi çizilir.
Ayarlar:
- son ticaretin sonucu negatifse ve günün sonucu negatifse, dikey çizgi geleceğe 24 saat (gün) uzaklıkta çizilir.
- son ticaretin sonucu negatifse ve günün sonucu pozitifse, dikey çizgi geleceğe 2 saat uzaklıkta çizilir.
- Son ticaretin sonucu pozitifse, geleceğe 1 saat uzaklıkta dikey bir çizgi çizilir.

4) Çizgi, yeni bir anlaşmanın açılmasından sonra grafikte kalır, ancak yeni bir anlaşmanın kapanmasından sonra yukarıdaki algoritmaya göre hareket eder, çünkü yeni anlaşma zaten son kapanan anlaşma oldu.

Not.
Olumlu bir sonuç bir artıdır, emrin işe yaraması veya pozisyonun manuel olarak kapatılması önemli değildir. Onlar. artı dengede.
Negatif bir sonuç, bir işlemin sonucu olarak eksi veya sıfırdır.

not>

Bu kodun benim için anlamı şudur - işlemlerden sonra ara vermeye alışın ve ateşi kırmayın. Eriklerimin başarısız anlaşmaları hızla geri kazanmaya çalıştığını fark ettim. Manuel olarak bir tire koyabileceğiniz ve açıklanan kurala göre hareket ettirebileceğiniz açıktır, ancak bir yazılım seçeneğine ihtiyacım var çünkü. gelecekte, göstergeye ek koşullar/filtreler bağlamak istiyorum, yani. karar verme algoritmasını karmaşık hale getirir.

Hepinize şimdiden teşekkürler ve iyi şanslar!

Gösterge, yani gösterge.

Öyle demek. İşlem geçmişini dakikada bir yokladığımızı tanımlayalım. Ardından, iki parametreye daha ihtiyaç vardır:

  • En son işlemleri yalnızca mevcut sembol (göstergenin üzerinde çalıştığı sembol) veya tümü için mi dikkate alın?
  • ve sihirli sayıyı hesaba katarak (yalnızca birini veya hepsini dikkate alın)?


Bir cevaba ihtiyacın var. Öğle yemeğine kadar bu başlıkta tekrar görünmeye çalışacağım.

 
Vladimir Karputov :

Gösterge, yani gösterge.

Öyle demek. İşlem geçmişini dakikada bir yokladığımızı tanımlayalım. Ardından, iki parametreye daha ihtiyaç vardır:

  • En son işlemleri yalnızca mevcut sembol (göstergenin üzerinde çalıştığı sembol) veya tümü için mi dikkate alın?
  • ve sihirli sayıyı hesaba katarak (yalnızca birini veya hepsini dikkate alın)?


Bir cevaba ihtiyacın var. Öğle yemeğine kadar bu başlıkta tekrar görünmeye çalışacağım.

Vladimir, zaman ayırıp soruma cevap verdiğin için teşekkür ederim. Başlangıçta olabildiğince basit, çünkü Gelecekte onu kendim geliştirmeyi bekliyorum, bedavaya değil :)
- sadece mevcut karakter için
- sihirli sayı hakkında - Neyle yendiğini anladığımdan emin değilim. Bir çeşit kimlik mi? Dürüst olmak gerekirse benim için önemli değil. Yalnızca son bir kapalı anlaşma için veri gerekiyor

 

"Son anlaşma" terimini açıklığa kavuşturmak istiyorum.

Geçerli gün içindeki son ticareti aramanız mı gerekiyor? Yoksa son N-günler için mi?