MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1930

 
Valeriy Yastremskiy # :

Mantığını biraz anlamadım. Pozisyon açma, SL modifikasyonu, pozisyon kapatma olayları birkaç sembolde izlenir. Konum açma - verilen sembole sahip pencerenin açık olup olmadığını araştırın (pencere kimliğini arıyoruz), açıksa seviyeleri çizin ve ardından SL trolünü izleyin. Açık değilse, istenen sembol ve zaman çerçevesine sahip bir pencere açın ve seviyeleri çizin veya açmayın. Modifikasyon olayı, istenen sembolün penceresini buluyoruz, seviyeler zaten çizilmiş ve seviyenin rengini değiştiriyor veya sonraki seviyeyi silip çiziyoruz.

Genel olarak, müşterinin etkisini dışlamak için, işin başında, pozisyonları ve pencereleri analiz etmek ve açık pozisyonların olduğu ve pencerelerin açık olmadığı semboller üzerinde açık pencereleri açmak gerekir.

Bütün bunlarda önemli olan, düzgün çalışan bir takip algoritması, yani alım satım işlemlerinin kendisidir.

Arka planda çizim bilgi amaçlıdır ve sistemin karlılığı için geçerli değildir.

Bu nedenle, bir pozisyon varsa, ancak grafik kapalıysa ve kendini kapatmadıysa, o zaman hiçbir şey açmanıza gerek yok, takip eden algoritma çalışacak, duraklar aktarılacak, ancak çizim olmayacak. - Sorun değil. Tablo açıkça kapatıldığında çok daha kötü, ancak program onu tam anlamıyla grafik çizmek için tekrar açtı - bu zaten kötü.

 

Meslektaşlarım - Optimizasyon önbellek dosyasını buluta aktardım, ticaret için bir seçenek belirlemek üzere başka bir bilgisayarda nasıl kullanabilirim?


Cevap:

Herhangi birinin ihtiyacı varsa - burada .


Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
Vitaly Muzichenko # :

Bütün bunlarda önemli olan, düzgün çalışan bir takip algoritması, yani alım satım işlemlerinin kendisidir.

Arka planda çizim bilgi amaçlıdır ve sistemin karlılığı için geçerli değildir.

Bu nedenle, bir pozisyon varsa, ancak grafik kapalıysa ve kendini kapatmadıysa, o zaman hiçbir şey açmanıza gerek yok, takip eden algoritma çalışacak, duraklar aktarılacak, ancak çizim olmayacak. - Sorun değil. Tablo açıkça kapatıldığında çok daha kötü, ancak program onu tam anlamıyla grafik çizmek için tekrar açtı - bu zaten kötü.

Öyle olabilir. Ama sonra olay için açık bir grafik varsa çizeriz. Genel olarak, kafanız karışmaması için seviyeleri her seferinde yeniden çizebilirsiniz. Bunun için veriler var. Takip eden, takip eden adım, pozisyon fiyatı için tetik seviyesi. Bir pozisyon için seviye numarası ve tetiklenen seviyelerin sayısını hesaplamak kolaydır.

 
Valeriy Yastremskiy # :

Öyle olabilir. Ama sonra olay için açık bir grafik varsa çizeriz. Genel olarak, kafanız karışmaması için seviyeleri her seferinde yeniden çizebilirsiniz. Bunun için veriler var. Takip eden, takip eden adım, pozisyon fiyatı için tetik seviyesi. Bir pozisyon için seviye numarası ve tetiklenen seviyelerin sayısını hesaplamak kolaydır.

Bir pozisyon belirirse, trolün çalışacağı seviyeleri önceden çizin derim. Ek bir konum belirirse, çizgileri de önceden yeni seviyelere yeniden çizin.

Geçtikten / değiştirdikten sonra rengin değişmesindeki noktayı görmüyorum. Pozisyonları kapattıktan sonra tüm satırlar silinebilir.

Nasıl olması gerektiğini bir örnek gösterdi

Burada pozisyonların açılacağı nesneler çizilir, sadece bilgilendirici ve bu kadar


---

Not: Şu anda matematiksel hesaplamaları hiç yapamıyorum maalesef

 

OnTimer hakkında soru

Zamanlayıcı olayı program çalışmadan önce gerçekleşirse bekleyecek mi (program zamanlayıcı olayını atlayacak) yoksa program durdurulup yeni bir zamanlayıcı olayında mı başlayacak? Sonsuz bir döngüde mi kalacak yoksa döngü her saniye yeniden mi olacak?

 int OnInit ()
{
 EventSetTimer ( 1 );
      
    }
//---
   return ( INIT_SUCCEEDED );
}

void OnTimer ()
{
  
   int i= 0 ;
   while (i< 1 ) {
   
  }
}

Rıhtımlarda, zamanlayıcı olayının önceliği ve programın ilerlemesi hakkında doğrudan bir gösterge yoktur, sadece olayların sırası hakkındadır.

Ya da anlamıyorum. Eylemin başladığı zamanlayıcı olayı kuyrukta sayılır mı?

Rıhtımlar:

EventSetTimer

Her program için birden fazla zamanlayıcı başlatılamaz. Her mql4 programı ve her çizelge, yeni gelen tüm olayların eklendiği kendi olay kuyruğuna sahiptir. Kuyrukta zaten bir Timer olayı varsa veya bu olay işleniyorsa, mql4 programının kuyruğuna yeni bir Timer olayı koyulmaz.


 
Valeriy Yastremskiy program çalışmadan önce gerçekleşirse bekleyecek mi (program zamanlayıcı olayını atlayacak) yoksa program durdurulup yeni bir zamanlayıcı olayında mı başlayacak? Sonsuz bir döngüde mi kalacak yoksa döngü her saniye yeniden mi olacak?

Rıhtımlarda, zamanlayıcı olayının önceliği ve programın ilerlemesi hakkında doğrudan bir gösterge yoktur, sadece olayların sırası hakkındadır.

Ya da anlamıyorum. Eylemin başladığı zamanlayıcı olayı kuyrukta sayılır mı?

Rıhtımlar:

EventSetTimer

Her program için birden fazla zamanlayıcı başlatılamaz. Her mql4 programı ve her çizelge, yeni gelen tüm olayların eklendiği kendi olay kuyruğuna sahiptir. Kuyrukta zaten bir Timer olayı varsa veya bu olay işleniyorsa, mql4 programının kuyruğuna yeni bir Timer olayı koyulmaz.


Olaylar KESİNTİ DEĞİLDİR. Mevcut işlevleri kesintiye uğratmadan birbiri ardına OnXXX'de işlenirler.

OnInit tamamlanana kadar, terminal tarafından başka bir OnTimer OnTick işleyicisi çağrılmayacak. (kendiniz bir işlev olarak çekmediğiniz sürece)

 
Maxim Kuznetsov # :

Olaylar KESİNTİ DEĞİLDİR. Mevcut işlevleri kesintiye uğratmadan birbiri ardına OnXXX'de işlenirler.

OnInit tamamlanana kadar, terminal tarafından başka bir OnTimer OnTick işleyicisi çağrılmayacak. (kendiniz bir işlev olarak çekmediğiniz sürece)

Teşekkür ederim)

 
Vitaly Muzichenko # :

Bütün bunlarda önemli olan, düzgün çalışan bir takip algoritması, yani alım satım işlemlerinin kendisidir.

Arka planda çizim bilgi amaçlıdır ve sistemin karlılığı için geçerli değildir.

Bu nedenle, bir pozisyon varsa, ancak grafik kapalıysa ve kendini kapatmadıysa, o zaman hiçbir şey açmanıza gerek yok, takip eden algoritma çalışacak, duraklar aktarılacak, ancak çizim olmayacak. - Sorun değil. Tablo açıkça kapatıldığında çok daha kötü, ancak program onu tam anlamıyla grafik çizmek için tekrar açtı - bu zaten kötü.

Tanrım - ve neden lavaboya gönderildin? Elbette yanlış yere ve yanlış değişkenler yazmışlar: z veya v?...

 
Merhaba! Birisi için çok zor değilse, MT4 danışmanı için bir işlev yazın veya yazmasına yardımcı olun. Buradaki nokta, açık bir gecikmeyi veya piyasa emrini manuel olarak değiştirirken, danışmanın postaya bir mesaj göndermesidir. Örneğin: Açık bir limit emrinin stoploss'unu taşıdım, danışman böyle bir emrin stop loss'unun filancaya değiştiğine dair bir e-posta yazıyor.
 
Vitaly Muzichenko # :


Çalışması gerekiyor gibi görünüyor. Kontrol etmedim.

çizim mantığı. Seviyeleri kontrol etmiyorum, tekrar çekiyorum ve fiyatın altına Bai grey, üstüne mavi çizersem, Sat'ta fiyatın üstünde bir seviye varsa, gri, altında kırmızı.

Evet, seviyeleri kaldırmayı unuttum.)))

Dosyalar: