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

 
Reshetov :

Hayır, kimseye bir şey borçlu değil. Demo-gerçek ve test cihazı arasında bir fark vardır. Örneğin, tüm OrderSend() parametreleri doğruysa test cihazı siparişleri açarken asla hata vermez. Bir ticaret sunucusu kolayca yayınlayabilir.

Bu nedenle, test cihazında olmayan istisnai durumları yeterince ele alabilmeleri için test cihazından sonraki programlar tamamlanmalı ve ardından demoya yönlendirilmelidir.

Teşekkürler!!!
Bu benim için çok yararlı bir bilgi))
 
Reshetov :
Zaman çubuklarını Zaman[x] kullanın.


Bu burada çalışmayacak çünkü. aynı çubukta bir sonraki satırda, bu ilk oluşan şekil ikinci olarak da başlatılacak... Ve onları ayırt etmem gerekiyor...

düşüklerin sonraki karşılaştırması için - eğer uzun ve yüksekse - kısaysa...

......
if (AO3 < 0 && AO3 > AO2 && AO2< 0 && AO2 < AO1 && AO1 < 0 && fl1== false && fl2== false ) {a1 = AO2; fl1= true ;Time_Figure1=TimeCurrent(); Print ( "образование первого пика" ,DoubleToStr(a1, 6 ), "Время: " ,Time_Figure1);} // определение наличия 1-го пика, флаг установлен
 Print ( "Образование первого пика" ,DoubleToStr(a1, 6 ), "Время1: " ,Time_Figure1);
 sleep ( 2000 );
 if (AO3< 0 && AO3>AO2 && AO2< 0 && AO2<AO1 && AO1< 0 && fl1== true && fl2== false && TimeCurrent() > Time_Figure1)   // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1= true ; fl2= true ; Print ( "Образование второго пика" , DoubleToStr (a11, 6 ), "Время2: " ,Time_Figure2);
.....

 
robot :

Bir tür şablon yazmak zor değilse, yoksa aklım aklımı aşıyor)

İlginiz için teşekkür ederim
Kodlama ticaret işlemleri örneklerine aşina olmanızı tavsiye ederim, örneğin burada
 
Roman. :


Bu burada çalışmayacak çünkü. aynı çubukta bir sonraki satırda, bu ilk oluşan şekil ikinci olarak da başlatılacak... Ve onları ayırt etmem gerekiyor...

düşüklerin sonraki karşılaştırması için - eğer uzun ve yüksekse - kısaysa...

Bu taraftan değil. İlk sinyal sütunu AO'ya sahipseniz, gerisini tarihin derinliklerinde ondan arayın. Bir pozisyon açarken açılış barının saatini hatırlayın ve tekrar açmayın. AO'nun bir sonraki sütunu oluşur oluşmaz, şekli aramaya yeniden başlayın.
 
artmedia70 :
Bu taraftan değil. İlk sinyal sütunu AO'ya sahipseniz, gerisini tarihin derinliklerinde ondan arayın. Bir pozisyon açarken açılış barının saatini hatırlayın ve tekrar açmayın. AO'nun bir sonraki sütunu oluşur oluşmaz, şekli aramaya yeniden başlayın.


Detaylandırabilir misiniz - tarihe derinlemesine bakmama gerek yok ...

"Şimdi" de bir zirve geldiyse benim için yeterli - o zaman bunun Şekil 1 olduğunu belirleyin, o zaman birkaç çubuktan sonra, pirinçte olduğu gibi, başka bir zirve geldiyse, onları karşılaştırın ve bir karar verin ...

Soru şu ki, birinci ve ikinci figürlerin zirveleri - şimdide olmanın ilkeleri - aynı ve yapamıyorum (bir figürü diğerinden ayırmak için bayraklar bile kullanıyorum) ... Aptalım .. .

not Zirvelerin birbiri ardına gelmesi gerekmez; birkaç eşit çubuktan vb. geçebilirler, başka bir şey yapabilirler - ana şey, aynı inşaat ilkesine sahip olmalarıdır.

Benim için en önemli şey, sonraki karşılaştırmaları için birini diğerinden ayırmak.

 
Reshetov :
Zaman çubuklarını Zaman[x] kullanın.

Genel olarak, herhangi bir komutun yürütülmesinden sonra bir sonraki çubuğun oluşumundan önce danışmanın çalışmasını kodda belirli bir yerde kesmek mümkündür.
 
Roman. :

Genel olarak, herhangi bir komutun yürütülmesinden sonra bir sonraki çubuğun oluşumundan önce danışmanın çalışmasını kodda belirli bir yerde kesmek mümkündür.
Evet var. Statik bir değişkende Time[0]'ın mevcut değerini hatırlayın ve her yeni tik ile karşılaştırın. Değişmediyse, dönüş (0) ile çıkın. Eğer değiştiyse, o zaman yeni bir çubukla uğraşıyoruz. Yeni çubuğun zamanını hatırlıyoruz, yani. Zaman[0] ve hesaplamalarımızı yapmaya başlayın.
 

eddy :

 for (k= 0 ; k<KPeriod; k++)           // перебрать KPeriod баров
if (Low[k]<minimum) minimum=Low[k]; // найти минимум

bunu iLowest işleviyle değiştirmenin doğru yolu nedir?

minimum= Düşük [ iDüşük (NULL, 0, MODE_LOW, KPerod , 0)] - doğru mu?

Bana öyle söylendi. Basit bir soruyu görmezden geldiğiniz için hepinize teşekkür ederim)
 
Reshetov :
Evet var. Statik bir değişkende Time[0]'ın mevcut değerini hatırlayın ve her yeni tik ile karşılaştırın. Değişmediyse, dönüş (0) ile çıkın. Eğer değiştiyse, o zaman yeni bir çubukla uğraşıyoruz. Yeni çubuğun zamanını hatırlıyoruz, yani. Zaman[0] ve hesaplamalarımızı yapmaya başlayın.


Bunu uzun zamandır biliyordum... :-)) Ders kitabından daha fazlası... Teşekkürler...

Şimdi karşılaştırıyorum, sanırım doğru yoldayım ama şu ana kadar olması gerektiği gibi çalışmıyor...

 double AO1 =   iAO ( Symbol (), signal_period, 1 );
 double AO2 =   iAO ( Symbol (), signal_period, 2 );
 double AO3 =   iAO ( Symbol (), signal_period, 3 );
 
 
 //  Расчет переменных для доливки 2-а пика
  
 if (AO3 < 0 && AO3 > AO2 && AO2< 0 && AO2 < AO1 && AO1 < 0 && fl1==false && fl2==false) {a1 = AO2; fl1=true;Time_Figure1=Time[ 0 ]; Print ( "Oбразование первого пика" ,DoubleToStr(a1, 6 ), "Время: " ,Time_Figure1);} // определение наличия 1-го пика, флаг установлен
 Print ( "Образование первого пика" ,DoubleToStr(a1, 6 ), "Время1: " ,Time_Figure1);
 if (Time_Figure1<Time[ 0 ] && Time_Figure1!= 0 )     // условие наличия первого пика...
   {
     if (AO3< 0 && AO3>AO2 && AO2< 0 && AO2<AO1 && AO1< 0 && fl1==true && fl2==false )   // определение наличия 2-го пика, флаги установлены
      { 
        a11 = AO2; fl1=true; fl2=true; Time_Figure2=Time[ 0 ]; Print ( "Образование второго пика" , DoubleToStr (a11, 6 ), "Время2: " ,Time_Figure2);
         if (a1<a11 && High [ 0 ] > High [ 1 ]) 
           { signal_buy = true; a1=a11; fl1=true;fl2=false; Time_Figure1=Time[ 0 ];}   //  активируем бай и устанавливаем сигнал на бай и записываем параметры как первого пика  
         else { a1=a11; fl1=true;fl2=false;Time_Figure1=Time[ 0 ];}                     //  просто запоминаем новый минимум - "первый" сигнал   
      }                                                       
   }
 
 if (AO2> 0 || High [ 0 ] < High [ 1 ]) {fl1=false; fl2=false; Time_Figure1= 0 ;} // если какой - либо столбец гистограммы  пересекает 0-ю линию между сигналами 2-а пика
                                                               // то сигнал считается недействительным. Cбрасываем флаги 1-го и 2-го пика вниз,
 if (Mas_Tip[ 0 ]!= 0 && signal_buy == true )   return ( 10 );         // при доливке и сигнале к покупке открываемся с рынка 
 signal_buy = false;                                           // сбрасываем сигнал к покупке
Bana Time[x] kullanımını doğru bir şekilde önerdin - uygulamaya çalışıyorum ...
 
Beyler, MT4'te çizelgeye izin günleri eklemek için gerçekten bir komut dosyasına ihtiyacım var, onu nerede bulabilirim