Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 924

 

Merhaba, söyle bana.

Tarihte ilk çubuğun yüksekliğine eşit bir yüksek arıyorum, High_i değişkeninde bulunan çubuğun dizinini hatırlıyorum

Bunun gibi :

 highr=High[i];
      High_i= 0 ;
       for (j=i+ 3 ;j<=i+m;j++)
         {
         if (j> Bars - 1 ) break ;
         
         if (!ok1)
            {
             if ( MathAbs (High[j]-highr)  <= n* Point )
               {
               
               High_i = j;


Şimdi, önceki ve sonraki üç çubuğun yüksekliklerinin, bulunan çubuğun yüksekliğinden daha az olup olmadığını kontrol ediyorum.

Bunu bir döngüde yazmanız gerekir:

 if (High[High_i]>High[High_i- 3 ]&&High[High_i]>High[High_i- 2 ]&&High[High_i]>High[High_i- 1 ]
   && High[High_i]>High[High_i+ 3 ]&&High[High_i]>High[High_i+ 2 ]&&High[High_i]>High[High_i+ 1 ])

bir yandan, böyle kontrol etmeye çalışıyorum

 for (jl=High_i;jl<=High_i+ 3 ;jl++) 
    {
     // if (High_i!=0 );
       
      if ( High[High_i]>High[jl])
          {
               cnt1++;
               if (cnt1>= 3 )
                  {
                  ok1= true ;
                 BuyBuffer[i]=highr+ 5 * Point ;
                  }
               }
            }

Bana yardım et lütfen.




	          
 
tatianati :
Şimdi, önceki ve sonraki üç çubuğun yüksekliklerinin, bulunan çubuğun yüksekliğinden daha az olup olmadığını kontrol ediyorum.

Muhtemelen şöyle:

 bool Status_Successful = true ;

for ( int x=(High_i- 3 ); x<=(High_i+ 3 ); x++) {
   if (x==High_i) {
       continue ;
   }
   if (High[x]>=High[High_i]) {
      Status_Successful = false ;
       break ;
   }
}


if (Status_Successful== true ) {
   ....
}
 
atztek :
Muhtemelen şöyle:



Teşekkürler, işe yarıyor.

Ancak çubuk sayısını artırdıktan sonra, şöyle:

 for ( int x=(High_i- 7 ); x<=(High_i+ 7 ); x++)

doğar

dizi 'ta_v1_05.mq4' (174,11) içinde aralık dışında

satır 174, bu :

   if (High [x ]>=High[High_i])

lütfen bana nasıl düzelteceğimi söyle.

 
x'in bir doğal sayı veya 0 olduğundan emin misin? yüksek_i = örneğin 6 ise, x = -1 ve Yüksek[-1] zaten bir sorundur. belki 173 satırına (x < 0) devam edip etmediğini kontrol edin;
 
tatianati

danik : x'in bir doğal sayı veya 0 olduğundan emin misin? yüksek_i = örneğin 6 ise, x = -1 ve Yüksek[-1] zaten bir sorundur. belki 173 satırına (x < 0) devam edip etmediğini kontrol edin;
Üç çubuk için böyle bir "kontrol" şuydu:
       for (j=i+ 3 ;j<=i+m;j++)

Diğer değerler için bunları her yerde değiştirmeniz gerekir.
Bununla başlayabilirsin ve sonra bak bu sorunu çözecek mi yoksa düzeltilmesi gereken başka bir şey mi var.
 
Merhaba canım, söyle lütfen, emirleri kapatmak için bir fonksiyon var, sadece emirler nedense kapatılmıyor, cant'ın ne olduğunu anlayamıyorum
 void CloseOrders( int otype)
    {
       int ClosePrice;
      
       if (otype == OP_BUY) ClosePrice=Bid;
       if (otype == OP_SELL) ClosePrice=Ask;
    
       
       int total = OrdersTotal ();
       for ( int i = total- 1 ; i >= 0 ; i--)
      {    
         if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES))
         { 
           if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic && OrderType() == otype)
           OrderClose(OrderTicket(),OrderLots(),ClosePrice,Slippage,Yellow);
         }
      }
 
lufer :
Merhaba canım, söyle lütfen, emirleri kapatmak için bir fonksiyon var, sadece emirler nedense kapatılmıyor, cant'ın ne olduğunu anlayamıyorum

Fiyat int olamaz!

 int ClosePrice;
 
TarasBY :

Fiyat int olamaz!

ah doğru!! Teşekkürler!!!
 
Forumun sevgili üyeleri, kodda bir hata bulmama yardım edin, EUR\USD ve GBP\USD için ZeroLag MACD göstergelerinden gelen verilere dayanarak iki çizgi çiziyor gibi görünüyor, ancak hiçbir şey olmuyor. İşte kod
 #property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 DarkBlue
#property indicator_width1 1
#property indicator_width2 1
//+------------------------------------------------------------------+

extern string ExtParam1= "EURUSD" ;
extern string ExtParam2= "GBPUSD" ;
extern int FastEMA= 12 ;
extern int SlowEMA= 24 ;
extern int SignalEMA= 9 ;

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle( 0 , DRAW_LINE );
SetIndexBuffer ( 0 ,ExtMapBuffer1);
SetIndexLabel( 0 ,ExtParam1); 

SetIndexStyle( 1 , DRAW_LINE );
SetIndexBuffer ( 1 ,ExtMapBuffer2);
SetIndexLabel( 1 ,ExtParam2); 
//----
return ( 0 );
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars = IndicatorCounted();
if (counted_bars< 0 ) return (- 1 );
if (counted_bars> 0 ) counted_bars --; 
int limit= Bars -IndicatorCounted();
int bar;
for (bar= 0 ; bar<limit; bar++)
ExtMapBuffer1[bar]= iCustom (ExtParam1, Period (), "ZeroLag MACD" ,FastEMA,SlowEMA,SignalEMA,iBarShift(ExtParam1, 0 ,Time[bar], false ));
ExtMapBuffer2[bar]= iCustom (ExtParam2, Period (), "ZeroLag MACD" ,FastEMA,SlowEMA,SignalEMA,iBarShift(ExtParam2, 0 ,Time[bar], false ));
return ( 0 );
}  
 
ASZmyrov :
Forumun sevgili üyeleri, kodda bir hata bulmama yardım edin, EUR\USD ve GBP\USD için ZeroLag MACD göstergelerinden alınan verilere dayanarak iki çizgi çiziyor gibi görünüyor, ancak hiçbir şey olmuyor. İşte kod

IndicatorCounted()'in çalışmadığına dair söylentiler var, geçmişten günümüze göstergeyi hesaplamak daha da doğru ve kodda birkaç hata daha var.

Not: ZeroLag MACD'nin kendisinin de yeni sanal makineye "hizalanması" gerekir.

Dosyalar: