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

 
Snajper007 # :

Bu kod, 10. mumda bir sinyal gösterir. Ve 1'den Nyu'ya kadar her mumdaki sinyali kontrol etmem gerekiyor.

yineleme sırasını değiştirin.

hala zamanın derinliklerinden şimdiki zamana ayrılıyorsunuz ve bu nedenle "en eski sinyali" buluyorsunuz.

iCustom'a göre - 4 ve resp'niz var. numaralama.

döngü 0'dan (hatta 1-2) ve N'ye kadar olmalıdır

for(int i=0;i<n;i++)

 
Snajper007 #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
 
Hatırladığım kadarıyla bu FL11 göstergesi çarpık ve üzerinde normal çalışmayacak. Yeniden çizim.. Döngü 0'dan sola çekilmeli ve bir sinyal bulunursa kesintiye uğramalıdır. Veya döngü gövdesindeki sinyal süresini sıfırlayın ve her çubuğun sonucunu yazdırın. Ancak bu gösterge ile hiçbir şey öğrenmeyeceksiniz, normal bir tane alın.
 
MakarFX # :
 int n= 10 ;
   datetime bar_sig_buy, bar_sig_sell;

   for ( int i=n;i>= 0 ;i--)
     {
     // для покупок
   double a1 = iCustom ( NULL , 0 , "FL11" , 4 , i);
   // для продаж 
   double a2 = iCustom ( NULL , 0 , "FL11" , 5 , i);


       if (a1 > 0 )
         bar_sig_buy=Time[i];
         
       if (a2 > 0 )
        bar_sig_sell = Time[i];
     Comment ( "bar_sig_sell = " + DoubleToString (bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString (bar_sig_buy));

     }
Hiçbirşey değişmedi. Sinyal ayrıca 10. mumda da gösterilir
 
Snajper007 # :
Hiçbirşey değişmedi. Sinyal ayrıca 10. mumda da gösterilir
 2021.11 . 08 18 : 44 : 44.620 2021.10 . 15 17 : 10 : 00   BAG GBPUSD,H1: 0 /sell: 2021.10 . 15 17 : 00 : 00
2021.11 . 08 18 : 44 : 44.571 2021.10 . 15 17 : 07 : 30   BAG GBPUSD,H1: 0 /sell: 2021.10 . 15 17 : 00 : 00
2021.11 . 08 18 : 44 : 44.530 2021.10 . 15 17 : 05 : 00   BAG GBPUSD,H1: 3 /sell: 2021.10 . 15 14 : 00 : 00
2021.11 . 08 18 : 44 : 44.480 2021.10 . 15 17 : 02 : 30   BAG GBPUSD,H1: 3 /sell: 2021.10 . 15 14 : 00 : 00
2021.11 . 08 18 : 44 : 44.432 2021.10 . 15 17 : 00 : 00   BAG GBPUSD,H1: 3 /sell: 2021.10 . 15 14 : 00 : 00
2021.11 . 08 18 : 44 : 44.385 2021.10 . 15 16 : 59 : 59   BAG GBPUSD,H1: 2 /sell: 2021.10 . 15 14 : 00 : 00
2021.11 . 08 18 : 44 : 44.339 2021.10 . 15 16 : 57 : 30   BAG GBPUSD,H1: 2 /sell: 2021.10 . 15 14 : 00 : 00
 
Snajper007 # :
Hiçbirşey değişmedi. Sinyal ayrıca 10. mumda da gösterilir

İşte eski arşivimden bu göstergenin bu sinyalini analiz etme işlevi, ihtiyaçlarınıza göre kendiniz ayarlayabilirsiniz..

Son sinyali döndürür. 1 üstteki güneş, 0 alttaki güneştir. -1 - sinyal/hata yok

 int gsun( ENUM_TIMEFRAMES tf)
{
double up= 0.0 ,dw= 0.0 ;
for ( int i= 1 ;i< iBars ( Symbol (),tf);i++)
  {
  up= iCustom ( Symbol (),tf, "FL11" ,Period1,Period2,Period3,Deviat1,Deviat2,Deviat3, 5 ,i);
  dw= iCustom ( Symbol (),tf, "FL11" ,Period1,Period2,Period3,Deviat1,Deviat2,Deviat3, 4 ,i);
   if (up!= 0.0 &&up!= EMPTY_VALUE ) return ( 1 );
   if (dw!= 0.0 &&dw!= EMPTY_VALUE ) return ( 0 );
  }
return (- 1 );
}
//---
 

MakarFX

Teşekkür ederim! Kazanıldı!

 
Nikolay Ivanov # :
Hatırladığım kadarıyla bu FL11 göstergesi çarpık ve üzerinde normal çalışmayacak. Yeniden çizim.. Döngü 0'dan sola çekilmeli ve bir sinyal bulunursa kesintiye uğramalıdır. Veya döngü gövdesindeki sinyal süresini sıfırlayın ve her çubuğun sonucunu yazdırın. Ancak bu gösterge ile hiçbir şey öğrenmeyeceksiniz, normal bir tane alın.
Normal gösterge nedir?
 
Snajper007 # :


Resim, düğme kullanılarak yerleştirilmelidir. resim veya bir düğme ile ekleyin Dosya eki

 
Snajper007 # :
Normal gösterge nedir?

2. fraktallar için mantıktan daha fazlasını yeniden çizmeyen, genellikle 0 bar.

Doğru işlem açısından karar veririm.