Trend-düz strateji. - sayfa 12

 
JLY :

Ve hat zaten gitmişse simgeler nasıl kaldırılır?

 ObjectDelete ( 0 ,"имя значка"+name);
если у значка нет имени, то в данном случае
 ObjectDelete ( 0 ,name);

Çubuklarda zamanın hesaplanması gereklidir

barlarda yapmak

zamanı biliyorsun, yani Zaman[9] 9 bardı

sadece başlangıcı yazdım

daha fazla lütfen

 
pako :

Çubuklarda zamanın hesaplanması gereklidir

barlarda yapmak

zamanı biliyorsun, yani Zaman[9] 9 bardı

sadece başlangıcı yazdım

daha fazla lütfen

Teşekkürler, sadece orada bir satır oluşturmak gerekli değildi (sadece parametreleri ayarlayın), ancak her şey böyle çalışıyor.

Çubuklarda 4. kez, iBarShift kullanılarak hesaplandı. İşte formül:

 datetime time01=time1NEW; datetime time02=time2NEW;
int shift01=iBarShift( 0 , 0 ,time01); int shift02=iBarShift( 0 , 0 ,time02); //перевод из скунд в бары
int timeCHANGE=shift01-shift02; //разница между 1-й и 2-й точкой линии
int timeBAR=(shift02-timeCHANGE); //прибавить разницу ко 2-й точке
int timeBARc=Time[timeBAR]; //Перевод из баров в секунды

Beşincisi bu işleve sahip değil, ancak Kopyala* işleviyle nasıl olduğunu henüz bilmiyorum ...

 
JLY :

Teşekkürler, sadece orada bir satır oluşturmak gerekli değildi (sadece parametreleri ayarlayın), ancak her şey böyle çalışıyor.

Çubuklarda 4. kez iBarShift kullanılarak hesaplanmıştır. İşte formül:

Beşincisi bu işleve sahip değil, ancak Kopyala* işleviyle nasıl olduğunu henüz bilmiyorum ...

5'e analog iBarShift

 int iBarShift( string symbol,
                   int tf,
                   datetime time,
                   bool exact= false )
  {
   if (time< 0 ) return (- 1 );
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[],time1;
   CopyTime (symbol,timeframe, 0 , 1 ,Arr);
   time1=Arr[ 0 ];
   if ( CopyTime (symbol,timeframe,time,time1,Arr)> 0 )
     {
       if ( ArraySize (Arr)> 2 ) return ( ArraySize (Arr)- 1 );
       if (time<time1) return ( 1 );
       else return ( 0 );
     }
   else return (- 1 );
  }
 
MQL5'te dönem sabitleri değişti (yeni dönemler M2, M3, M4, M6, M10, M12, H2, H3, H6, H8, H12 eklendi), MQL4 dönemlerini dönüştürmek için aşağıdaki işlevi kullanabilirsiniz:
 ENUM_TIMEFRAMES TFMigrate( int tf)
  {
   switch (tf)
     {
       case 0 : return ( PERIOD_CURRENT );
       case 1 : return ( PERIOD_M1 );
       case 5 : return ( PERIOD_M5 );
       case 15 : return ( PERIOD_M15 );
       case 30 : return ( PERIOD_M30 );
       case 60 : return ( PERIOD_H1 );
       case 240 : return ( PERIOD_H4 );
       case 1440 : return ( PERIOD_D1 );
       case 10080 : return ( PERIOD_W1 );
       case 43200 : return ( PERIOD_MN1 );
      
       case 2 : return ( PERIOD_M2 );
       case 3 : return ( PERIOD_M3 );
       case 4 : return ( PERIOD_M4 );      
       case 6 : return ( PERIOD_M6 );
       case 10 : return ( PERIOD_M10 );
       case 12 : return ( PERIOD_M12 );
       case 16385 : return ( PERIOD_H1 );
       case 16386 : return ( PERIOD_H2 );
       case 16387 : return ( PERIOD_H3 );
       case 16388 : return ( PERIOD_H4 );
       case 16390 : return ( PERIOD_H6 );
       case 16392 : return ( PERIOD_H8 );
       case 16396 : return ( PERIOD_H12 );
       case 16408 : return ( PERIOD_D1 );
       case 32769 : return ( PERIOD_W1 );
       case 49153 : return ( PERIOD_MN1 );      
       default : return ( PERIOD_CURRENT );
     }
  }
 
JLY :

Sedelal saniyeler içinde çekiyor, hafta sonları boşluklar var, bu yüzden hala çubuklarla saymanız gerekiyor.

 int    PeriodSeconds (
   ENUM_TIMEFRAMES   period= PERIOD_CURRENT        // период графика
   );
Dönemdeki saniye sayısını döndürür.
 
pako :

Çok teşekkürler. Barshift sayar.

Sadece ortaya çıkan çubuğu saniyelere dönüştürmek için kalır. 4. sırada Zaman[bar] vardı

5'inde, bunu kurala göre yapıyorum, ancak bir şey yolunda gitmiyor:

 datetime Time[];
int count= 1 ; 
ArraySetAsSeries (Time, true );
int timeBARsec= CopyTime ( _Symbol , _Period ,timeBAR,count,Time); //Перевод из баров в секунды
 
JLY :

Çok teşekkürler. Barshift sayar.

Sadece ortaya çıkan çubuğu saniyelere dönüştürmek için kalır. 4. sırada Zaman[bar] vardı

5'inde, bunu kurala göre yapıyorum, ancak bir şey yolunda gitmiyor:

soruyu doğru anladıysam

     datetime Time[]; 
     ArraySetAsSeries (Time, true );
     CopyTime ( Symbol (), PERIOD_CURRENT , 0 , 100 ,Time);
     long timeBARsec = Time[ 2 ]; //Перевод из баров в секунды, в данном случае Time[ бар ] бар = 2

     Comment ( "timeBARsec = " ,StringToTime(Time[ 2 ]));
 
pako :

soruyu doğru anladıysam

Evet, her şey çalışıyor) Çok teşekkür ederim)

"Son" yoksa, sıfıra eşittir ve görünmez.

Dosyalar:
TimeEnd.mq5  5 kb
 

1. Simge açıklamasında gösterge ve saat için saatlik doğruluk yapıldı (açıklamayı grafik özelliklerinde açın ).

2. Simgeleri arabelleğe koymak daha iyi olabilir mi? Ama nasıl yapılır, tek bir tamponda zaman ve fiyat nasıl birleştirilir?

3. Bir çizgi çizilirse ve henüz simge yoksa (çubuk görünmedi), o zaman bir hata verir ("Uzmanlar" sekmesinde) ve diğer simgelerle çalışma durur.

2013.09.22 00:10:36 DüzYürütme (EURUSD,D1) dizi, 'FlatExecution.mq5' içinde (124,30) aralık dışında

Yani dizi aralık dışında... Hata şu satırda görülüyor:

 long timeBARsec=Time[timeBAR];

Bu hata nedeniyle göstergenin felç olmasını nasıl önleyebilirim? Ve simge gelecekte çizilirse daha da iyi olur, çünkü çubuklarla sayılmasına rağmen saniyeler içinde çizilir.

4. Alım satım algoritması: Simge anında giriş yapın, giriş satırında durun, giriş satırının simgesinden çıkın.

5. Çizgi çizme kuralı: Her fraktaldan sonraki tüm fraktallara, yukarıdan yukarıya ve aşağıdan aşağıya. Fiyatın değdiği çizgiler silinmeli ve çizilmemelidir.


Dosyalar:
 

Hata sorunu çözüldü.

Simge şimdi sinyal çubuğunun açılışında çizilir.

Çizgi yürütülürse, farklı bir görünüm alır, hala ona bağlı bir çizgidir ve ışını kaybeder. Satır yürütülmezse, sarıdır.

Durağın geçtiği çizgiler 2. noktadan daha fazla azalacaksa, ikinci noktanın arkasında durabilirsiniz. Prensip olarak, farklı hesaplanırsa, durdurma böyle bir çizgi boyunca hareket ettirilebilir.

Fraktallarla çizim aynı kalır.

algoritma. Bir simge her zaman net bir alım veya satım anlamına gelmez. Bununla birlikte, bunun da haberlerden etkilendiğini düşünüyorum. Sonuçta, test yapılmadı, çünkü. fraktallarla otomatik çizim ve bu çizimin düzeltilmesi (etkilenen çizgilerin kaldırılması) yoktur.

Dosyalar: