MQL5 Sihirbazı tarafından oluşturulan bir Uzman Danışmanı açma, kapatma - sayfa 2

 
PeretsCHILI :

Sorunun ifadesiyle karar verdim:

uzun açılış: hızlı MA, yavaş MA'yı aşağıdan yukarıya doğru geçer, ayrıca bir zaman filtresi

uzun kapanış: hızlı MA, yavaş MA'yı yukarıdan aşağıya doğru geçer

açılış şortu: hızlı MA, yavaş MA'yı yukarıdan aşağıya doğru geçer, ayrıca bir zaman filtresi

kapanış şortu: hızlı MA, yavaş MA'yı aşağıdan yukarıya doğru keser.

Daha önce bahsedilen örnekte bunun için sırasıyla CheckOpenLong, CheckCloseLong, CheckOpenShort, CheckCloseShort kullanılmıştır.

Biri açılacak ve diğeri kapanacak sinyaller içeren iki modül yaparsanız, anladığım kadarıyla ilki standart modül kitaplığında olduğu gibi LongCondition ve ShortCondition kullanacaktır. Kapatmak için ikinci modülde ne kullanılmalı?


Ve en önemlisi, nerede? "...çarpılar..." ne anlama geliyor? İşin güzelliği bu :)

 

Kahretsin, kafam daha da karıştı)) " 6 adımda bir ticaret robotu oluşturun !" Makalesinde iki MA'nın kesiştiği noktada açılacak sinyalleri olan ilk modül az önce sunulmuştur.

https://www.mql5.com/ru/articles/367

"çapraz geçmek" ne demek Hızlı MA, yavaş MA'yı aşağıdan yukarıya doğru keser - bu, ilk çubuktaki FastMA-SlowMA değerleri arasındaki farkın sıfırdan büyük ve ikinci çubukta sıfırdan küçük olduğu zamandır. Yukarıdan aşağıya - ilk çubukta sıfırdan küçük, ikincisinde sıfırdan fazla.

Açma ve kapama sinyalleri olan iki modül oluşturarak sorunu çözebileceğinizi söylediniz. Temel olarak kapatılacak sinyalleri olan bir modül oluşturmak için belirtilen makaledeki modülü kullanmak mümkün müdür?

Создай торгового робота за 6 шагов!
Создай торгового робота за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
PeretsCHILI :

...

"çapraz geçmek" ne demek Hızlı MA, yavaş MA'yı aşağıdan yukarıya doğru keser - bu, ilk çubuktaki FastMA-SlowMA değerleri arasındaki farkın sıfırdan büyük ve ikinci çubukta sıfırdan küçük olduğu zamandır. Yukarıdan aşağıya - ilk çubukta sıfırdan küçük, ikincisinde sıfırdan fazla.

...


Zaten iyi. Görev somutlaştırıldığında, bu çok doğru.


PeretsŞİLİ :

...

Açma ve kapama sinyalleri olan iki modül oluşturarak sorunu çözebileceğinizi söylediniz. Temel olarak kapatılacak sinyalleri olan bir modül oluşturmak için belirtilen makaledeki modülü kullanmak mümkün müdür?

Kendimi yanlış ifade ettim. Ticaret sinyalleri modülü, "AÇIK ALIM zamanı" ve "AÇIK SATIŞ zamanı" sinyallerini üretir. Yani AÇ sinyali verirler. Ancak daha sonra CExpert, mevcut bir pozisyonu kapatıp tersine çevirmeye veya bir pozisyon açmaya karar verir.



Modülü 6 adımda bir ticaret robotu oluşturun makalesinden alalım! - Nesini sevmiyorsun?

 

Bu yüzden, iki MA'nın kesişiminde bir zaman filtresi ile açılış sinyalleri olan bir modül yazmak istiyorum ve aşağıdaki durumlarda kapanma meydana geldi: karşı sinyalin alınması; saldırgan SL; saldırgan TP Makaleye göre bir modül (Cross2MA diyelim) yazabilir ve Cross2MA ve SignalITF modülleri ile bir Expert Advisor oluşturabilirsiniz , ancak SignalITF filtresi de kapanırken kontrol edileceğinden bu seçenek uygun değildir.

Örneğin: 2MA var, SignalITF sadece Pazartesi günleri işlem görecek şekilde ayarlandı. Bu nedenle, Pazartesi günü bir alım sinyali alınır, süre geçtikten sonra bir alım pozisyonu açılır, Salı günü, ne Sl ne de TP'ye henüz ulaşılmadığında, 2MA'nın ters geçişi gerçekleşir ve Al pozisyonu kapatılmalıdır, ama bu olmaz, çünkü zaten haftalar başka bir gün.

Olması gerektiği gibi: koşullar aynı, 2MA, Pazartesi günleri işlem görüyor: Pazartesi, al sinyali alınır, Al açılır, Salı günü sat sinyali alınır, ancak zaten Salı olduğu için Satış pozisyonu açılmaz , sadece Al pozisyonu kapatılır.

LongCondition iki komut içerir: Buy'u açma ve Sell'i kapatma. Onları bir şekilde ayırmam gerekiyor.)

 

"Ayrı uçar, pirzola ayrı uçar."


PeretsCHILI :

Bu yüzden, iki MA'nın kesişiminde bir zaman filtresi ile açılış sinyalleri olan bir modül yazmak istiyorum ve aşağıdaki durumlarda kapanma meydana geldi: karşı sinyalin alınması; saldırgan SL; saldırgan TP ...

Alım satım sinyalleri modülü, "ALMA açma SÜRESİ" ve "AÇMA SATIŞ ZAMANI" SADECE İKİ SİNYAL VEREBİLİR.

Zararı durdur ve kârı al kontrolünü kontrol etmeyeceğiz, çünkü bir zararı durdur veya kârı al kapanışı varsa, bunun tek bir anlamı var: pozisyon kapandı ve alım satım sinyalleri modülünün orada ne verdiğini görmenin zamanı geldi (başka bir deyişle, pozisyon sayısı sıfır olduğunda, her şeye bir daire içinde başlarız: bir sinyal bekliyoruz).

Sonraki: "zıt sinyal" olmadığından modüllerin çalışmasının yanlış yorumlanması - şu şekilde olabilir:

  1. açık bir ALIŞ pozisyonumuz var ve "SATIŞ açma zamanı" sinyali geliyor
  2. veya açık bir SATIŞ pozisyonumuz var ve "ALMA açma zamanı geldi" sinyali
Her iki durumda da mevcut pozisyon kapatılacak ve yenisi açılacaktır.


 
Andy :
LongCondition, herhangi bir koşuldan bağımsız olarak bir satın alma işlemini basitçe açabilir ve tutabilir ve kapanış, kâr durdurma yoluyla mı yoksa manuel olarak mı yapılmalıdır?

CExpertSignal sınıfının LongCondition'ı prensipte hiçbir şeyi "tutamaz". CExpertSignal sadece İKİ SİNYAL VERİR: "AÇIK ALIM zamanı" ve "AÇIK SATIŞ zamanı".


Usta tarafından bir araya getirilen Expert Advisor'ın asla kapanmamasını istiyor musunuz? Ardından, EA'nın giriş parametresini "// [0...100] kapatmak için sinyal eşik değeri" olarak değiştirin - kapatma için ağırlık çubuğunu "100" olarak ayarlayın.

 
Andy :
Ve sonra onları ne kapatır?

CExpert sınıfının bir nesnesi - tüm sinyal modüllerini sorgular, ağırlıklarını değerlendirir ve elde edilen tahmini özetler: sinyal ağırlığı




 

Modüllerin yorumunu anladım. Tüm bu tef dansları oluyor çünkü danışmanı şu şekilde optimize edeceğim: 1. iki MA'nın (dönem, vardiya, yumuşatma), durma ve sıfır alma özellikleri; 2. Durdurma ve alma ile optimizasyon. 3. takip eden optimizasyon.

İşin püf noktası şudur: Cross2MA ve SignalITF filtresi ile bir Expert Advisor oluşturursanız , aşağıdaki gibi çalışacaktır (koşullar aynı, dur ve sıfıra al):

Pazartesi, FastMA SlowMA'yı aşağıdan yukarıya doğru keser, bir Buy pozisyonu açılır, pozisyon bir sonraki Pazartesiye kadar tutulur, önümüzdeki Pazartesi 3 seçenek olabilir:

1. FastMA SlowMA'yı yukarıdan aşağıya geçer - mevcut pozisyon kapanır, bir Satış pozisyonu açılır.

2. Kavşak yok - konum kaydedilir.

3. FastMA, SlowMA'yı aşağıdan yukarıya doğru keser - konum kaydedilir.

Ve böylece gelecek Pazartesiye kadar. Ve Pazartesi günleri arasında pek çok şey olabilir, 2 MA birkaç kez geçebilir, fiyat düşecektir.

Örneğin, aşağıdakileri uygulamak mümkün mü (koşullar aynı): Salı günü FastMA SlowMA'yı yukarıdan aşağıya geçiyor, Pazartesi değil Salı olduğu için Satış pozisyonunun açılması gerçekleşmiyor, ancak mevcut pozisyon kapandı mı

 

Sanırım bunu eşiği kullanarak nasıl yapacağımı buldum.

Cross2MA'nın 80 ve SignalITF'nin 40 döndürmesine izin verin.

set 50'yi açma eşiği, set 30'u kapatma eşiği.

Her iki modül de sinyal verirse, aritmetik ortalama 60, eşik 50'den fazla ise bir pozisyon açılır.

Sadece Cross2MA tetiklenirse, aritmetik ortalama 40, 30'dan fazla, mevcut pozisyon kapatılır, 50'den az, yeni bir pozisyon açılmaz.

Doğru?

Sadece SignalITF boş_değer döndürür.

 
PeretsCHILI :

Sanırım bunu eşiği kullanarak nasıl yapacağımı buldum.

Cross2MA'nın 80 ve SignalITF'nin 40 döndürmesine izin verin.

set 50'yi açma eşiği, set 30'u kapatma eşiği.

Her iki modül de sinyal verirse, aritmetik ortalama 60, eşik 50'den fazla ise bir pozisyon açılır.

Sadece Cross2MA tetiklenirse, aritmetik ortalama 40, 30'dan fazla, mevcut pozisyon kapatılır, 50'den az, yeni bir pozisyon açılmaz.

Doğru?

Sadece SignalITF boş_değer döndürür.


Doğru yoldasınız :) Açılış ve kapanış eşiklerinin tüm yönetimi, MQL5 Sihirbazı tarafından oluşturulan Expert Advisor'ın giriş parametreleri aracılığıyla yapılır.

Neden: