[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 500

 

Değiştirilmiş dirgen ile ZUP tabanlı EA

Çalışırken, dirgenli bir gösterge kullanır; test cihazında, gösterge dirgen bir nedenden dolayı ters yöne döner (geriye doğru)

Neden bu geri dönüş olabilir?

 
Cmu4 :
Beyler, eğer zorlaştırmıyorsa, eşitliği takip eden işlevi bırakın. hiçbir şey bulamıyorum..

https://www.mql5.com/ru/code/8781

Ve yine de kod tabanı dolu

 
Kaymayı hesaba katan ve 130-134 hatasız sipariş vermek için bir fonksiyon bulmama yardım et.
 
xrust :

https://www.mql5.com/ru/code/8781

Ve yine de kod tabanı dolu

Danışman Igor Kim'i ekleyeceğim.
 
Roman. :


Merhaba Dmitry. Kendi adıma, size aşağıdaki seçeneği sunmaya hazırım. Bir benzetme için, bu makalenin alım satım kriterlerinin tetiklenmesine bakın - ayrıca iki sinyalde bir emrin tetiklenmesi var - yani, ikinci resimden sonra bakın "DeMarker grafiğinde beklemeniz gereken ilk şey, DeMarker'ın 0.7 alanındaki hızlı ve yavaş MA çizgilerini kısa bir pozisyon için geçer.Bu ilk ön sinyaldir.Daha sonra, gerçek MA çizgilerinin kendilerinin kesişmesini bekleriz.Bu sinyal ana sinyaldir, bundan sonra alınabilir Taichi göstergesinin okumaları gibi. MA çizgilerinin kesişimi gerçekleşmediyse, sinyalin yanlış olduğu ve fiyat hareketinin gelişiminin devam edeceği kabul edilir." İşte bunu kod biçiminde nasıl yaptım - ticaret kriterlerini tetiklemekten sorumlu olan baykuşların dahil edilmesinde.

Ana özellik, bir veya başka bir ticaret kriteri tetiklendiğinde bayrakları ayarlayarak ve temizleyerek aşağıda (sonda) listelenen iki dahil etme işlevi üzerinde çalışmamızdır.

Ek olarak gitmeniz gerekecek - ana kriter TimeCurrent aracılığıyla tetiklendiğinde, yani mevcut zamanı hatırlamanız gerekecek. analoji ile, ilk f-ii'de int type_op_DeMarker dönüşten önce belirtin (OP_BUY); veya geri dön (OP_SELL); x = TimeCurrent gibi ifade; burada x, datetime türünde global bir değişkendir. Bundan sonra aynısını ikinci fonksiyon int type_op_MA ... ile yapacaksınız - orada zaten y = TimeCurrent değişkenini hatırlıyorsunuz;

Ardından, ticaret kriterlerini hesaplama bloğunda, bu iki değişkenin artı ve değerini aşağıdaki şekilde karşılaştırın (Taichi değerleriyle çalışmak için bir analoga ihtiyacınız olmadığı ortaya çıktı - bunun yerine zamanı karşılaştırın iki işlem sinyalinizin gelişi):

not Artı olarak, çalışan TF'nin değerini optimize etme olasılığı için size bir f-th gönderiyorum.

P.P.S. Böylece benim için de benzer bir kod kurgusu düzenlendi. Expert Advisor'ın bu tür koşullarını yerine getirmek için çok daha uygun kod seçenekleri olduğunu göz ardı etmiyorum. :-)))

çok teşekkür ederim cevabınız çok yardımcı oldu
 
demlin :
çok teşekkür ederim cevabınız çok yardımcı oldu

:-))) Ve zaten böyle yuttuğunu ve beni bir yere gönderdiğini düşündüm - bu benzetmeler, örnekler vb.... :-)))
 
Roman. :

:-))) Ve zaten böyle yuttuğunu ve beni bir yere gönderdiğini düşündüm - bu benzetmeler, örnekler vb.... :-)))
Bir süredir bilgisayar başında değildim. Çalışan TF'yi optimize etme işlevini tam olarak anlamadım. Bu nedir?
 
demlin :
Bir süredir bilgisayar başında değildim. Çalışan TF'yi optimize etme işlevini tam olarak anlamadım. Bu nedir?

Bu sadece, çalışması için en iyiyi (bir baykuş durumunda, birkaç zaman diliminde) ayarlamak için danışmanın zaman dilimlerini dış değişkenler aracılığıyla optimize etmenize izin veren bir tür "adaptör"... Güzel ve kullanışlı bir özellik. ..
 
Roman. :

Bu sadece, çalışması için en iyiyi (bir baykuş durumunda, birkaç zaman diliminde) ayarlamak için danışmanın zaman dilimlerini dış değişkenler aracılığıyla optimize etmenize izin veren bir tür "adaptör"... Güzel ve kullanışlı bir özellik. ..
Ve nasıl elde edilir?
 
demlin :
Ve nasıl elde edilir?


Cevabımda, koda dikkatlice bakın - orada, harici değişkenler bloğunda Criterion {... return (0)}... öğesinin bitiminden hemen sonra belirtilir:

 extern int t_trend_period = 6 ; // для оптимизации по всем периодам от 0 до 7 шаг 1
                               // на каком ТФ работаем: 1-М1, 2-М5, 3-М15, 4-М30, 5-Н1, 6 - Н4, 7-день

ve gösterge değerlerinin elde edilmesinin bir sonucu olarak kullanım sırası:

 //--------------------------------------------------------------- 3 --
int Criterion()                         // Пользовательская функция
  {
   //--------------------------------------------------------------- 4 --
int trend_period=GetPeriod(t_trend_period); // для выбора оптимального значения рабочего ТФ

   // Параметры технич. индикат:
                 
double Taichi_1 = iCustom ( Symbol (), trend_period, "Cronex Taichi" ,Tenkan, Kijun, Senkou, FlatSE, 0 , 1 );
...
...
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --

//для оптимизации по всем ТФ
int GetPeriod(int period)
{int periodres;
 switch(period)
  {
   case 1: periodres=1;break;
   case 2: periodres=5;break;
   case 3: periodres=15;break;
   case 4: periodres=30;break;
   case 5: periodres=60;break;
   case 6: periodres=240;break;
   case 7: periodres=1440;break;
   case 8: periodres=10080;break;
   default: periodres=1;break;
  }
return(periodres);
}