Kodlama yardımı - sayfa 775

 

Lütfen bu konuda bana yardım edin.

Aşağıda MA çapraz uyarısı var, ancak 1 aynı bildirim için çok fazla mesaj aldım.

Her 2 ardışık çubuk için 1 bildirim almak istiyorum, bu , bir sonraki uyarıdan önce atlanacak çubuk sayısının 2 olduğu anlamına geliyor.

Nasıl yapabilirim lütfen yardım edin. Çok teşekkür ederim



 //+------------------------------------------------------------------+

//|                MA Cross Arrows.mq4                               |

//|                Copyright © 2006  Scorpion@fxfisherman.com        |

//+------------------------------------------------------------------+

#property copyright "FxFisherman.com"

#property link        "http://www.fxfisherman.com"



#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 Blue

#property indicator_color2 White

#property indicator_color3 Red



extern int Crossed_Pips = 0 ;

extern int MA_Period = 21 ;

extern int MA_Type = MODE_SMA ;

extern int Shift_Bars= 0 ;

extern int Bars_Count= 1000 ;

int state;

  

//---- buffers

double v1[];

double v2[];

double v3[];

  





int start()

 {

   double ma;

   int previous;

   int i;

   int shift;

   bool crossed_up, crossed_down;

   int totalBars = Bars - (MA_Period * 2 );

  

   if (Bars_Count > 0 && Bars_Count <= totalBars)

  {

    i = Bars_Count;

  } else if (totalBars <= 0 ) {

     return ( 0 );

  } else {

    i = totalBars;

  }

  

   while (i>= 0 )

   {

    shift = i + Shift_Bars;

    ma = iMA ( Symbol (), Period (), MA_Period, 0 , MA_Type, PRICE_CLOSE , shift);

    crossed_up = High [shift] >= (ma + (Crossed_Pips * Point ));

    crossed_down = Low [shift] <= (ma - (Crossed_Pips * Point ));



    v1[i] = NULL ;

    v2[i] = NULL ;    

    v3[i] = ma;

     if (crossed_up && previous != 1 ) {

      v1[i] = ma + (Crossed_Pips * Point );

      previous = 1 ;

    } else if (crossed_down && previous != 2 ){

      v2[i] = ma - (Crossed_Pips * Point );

      previous = 2 ;

    }

 

    i--;

   }

   

   ma = iMA ( Symbol (), Period (), MA_Period, 0 , MA_Type, PRICE_CLOSE , 0 );

   if ( Close [ 0 ] >= ma + (Crossed_Pips * Point ) && state != 1 ) { 

      state = 1 ;

       SendNotification ( Symbol () + "M" + _Period + " Price crossed UP EMA21." );

   } else if ( Close [ 0 ] <= ma - (Crossed_Pips * Point ) && state != - 1 ) {

      state = - 1 ;

       SendNotification ( Symbol () + "M" + _Period + " Price cross DOWN the EMA21." );

   }



   return ( 0 );

 }
 

Bir harici değişken bildirdiğimde "extern-beklenmeyen belirteç" hata mesajı alıyorum

Lütfen yardım et

Dosyalar:
error1.zip  116 kb
 
Ricardo Schuller :

Bir harici değişken bildirdiğimde "extern-beklenmeyen belirteç" hata mesajı alıyorum

Lütfen yardım et

extern'i bir yöntem veya işlev içinde kullanamazsınız.

 

hata nasıl düzeltilir??

 
Mo3tasemovic :

hata nasıl düzeltilir??

" GBPUSD "

 
Keith Watford :

" GBPUSD "

Teşekkürler

 
pivboll :

Bir göstergeyi değiştirmeye yardım edin

Bir MACD göstergesini, Buff Dormeier'in Hacim analizi ile yatırım yapma kitabında açıklandığı gibi bir Trend İtme Göstergesine dönüştürmek için değiştirmeye çalışıyorum.

Değişkenle ilgili sorunlarım var ve düzgün bir sonuç elde edemiyorum. Çalışan volWMA ve VW MACD'yi ekliyorum

İşte açıklama

Trend itme göstergesi

Hacim ağırlıklı hareketli ortalama yakınsama/uzaklaşma (VW-Macd) göstergesinin geliştirilmiş bir versiyonu olan trend itme göstergesi (Tti), Hacim Analiziyle Yatırım Yapma kitabımda tanıtıldı. Tti, hacmin hacim ağırlıklı hareketli ortalamalar üzerindeki etkisini abartmak için benzersiz şekillerde bir hacim çarpanı kullanır. VW-Macd gibi, Tti de üstel hareketli ortalamaların aksine hacim ağırlıklı hareketli ortalamaları kullanır. Hacim ağırlıklı ortalamalar, kapanış fiyatlarını her zaman periyodunda işlem gören hacimle orantılı olarak tartar, bu nedenle Tti, daha büyük hacimli bu fiyat trendlerine daha fazla ve daha hafif hacimli zaman periyotlarına daha az önem verir. Stocks & Commodities'in Şubat 2001 sayısında, hacim ağırlıklı hareketli ortalamaların (Buff ortalamaları veya Vwmas) basit hareketli ortalamaların güvenilirliğini artırırken yanıt vermeyi iyileştirdiğini gösterdim.

Macd ve VW-Macd gibi, Tti de kısa (hızlı) ortalamayı uzun (yavaş) ortalamadan çıkararak bir yayılmayı hesaplar. Hacim çarpanıyla birleştirilen bu spread, Buff spread'i oluşturur.

Hesaplama aşağıdaki gibidir

hacim çarpanı = hızlı VolWMA / yavaş VolWMA

hacim çarpanı ikinci güce alınır ve daha sonra Hacim artırma hızlı ortalamasını vermek için hızlı VolWMA ile çarpılır

hacim çarpanı ikinci güce alınır ve ardından Hacim artırma yavaş ortalamasını vermek için YAVAŞ VolWMA ile çarpılır

TTi = hızlı ortalamayı geliştir - yavaş ortalamayı geliştir

Yardımın için teşekkürler

gösterge bağlantısı: https://www.sendspace.com/file/rfy2dv

Merhaba arkadaşım. Hiç TTI'yi çözdünüz mü? Burada paylaşabilir misiniz veya PM ile gönderebilir misiniz? teşekkürler

 
Hi
Lütfen bana bu sorunla ilgili yardım eder misiniz?
Kinjun sen'den (ichimoku'da) fiyat teklifi farkı 1 dakikalık zaman diliminde 3 pip'ten (30 puan) büyük olduğunda anında bildirim gönderen bir EA'ya ihtiyacım var
 

selam,


lütfen bu gösterge için sesli uyarı, mesaj uyarısı ve mobil bildirim seçeneği ekleyin.

Teşekkürler

Dosyalar:
 

Merhaba

"iCustom yanlış değerler döndürüyor" gibi konuları buldum ama bu biraz farklı.

Bir dizideki aynı tipteki çubukların (boğa/ayı tipi) boyutunu karşılaştıran bir gösterge oluşturmaya çalışıyorum.

ve histogramda maksimum karşılaştırma değerlerini gösterir.

bunun gibi.

maksimum değer

//--------------------------------

ArrayMaximum ile sonuç daha hızlıdır. ama benim code.example ile ilgili bir sorun var:

iCustom_diff

iCustom değerlerini karşılaştıran ve yanlış değerler döndüren kod şudur:

 #property indicator_separate_window
#property indicator_buffers 4


#property indicator_color1 DeepSkyBlue
#property indicator_width1 10


#property indicator_color2 Red
#property indicator_width2 10



#property indicator_color3 DodgerBlue
#property indicator_width3 4


#property indicator_color4 Crimson
#property indicator_width4 4


#property indicator_level1 0
#property indicator_levelcolor White
#property indicator_levelstyle 0


string LF = "\n" ;   // use this in custom or utility blocks where you need line feeds
int ObjCount = 0 ;   // count of all objects created on the chart, allows creation of objects with unique names
int current = 0 ; // variable points to current bar


double Buffer1[];
double Buffer2[];

double Buffer3[];
double Buffer4[];


double bar_0;
double bar_1;
double bar_2;
double bar_3;
double bar_4;
double bar_5;
double bar_6;
double bar_7;
double bar_8;
double bar_9;
double bar_10;
double bar_11;


//+------------------------------------------------------------------+
int init()
{
     if ( false ) ObjectsDeleteAll ();       // clear the chart

     IndicatorDigits ( Digits - 5 );
     IndicatorBuffers ( 4 );
    
     SetIndexBuffer ( 0 , Buffer1);
     SetIndexStyle ( 0 , DRAW_HISTOGRAM , STYLE_SOLID );
    
     SetIndexBuffer ( 1 , Buffer2);
     SetIndexStyle ( 1 , DRAW_HISTOGRAM , STYLE_SOLID );
    
    
    
    
     SetIndexBuffer ( 2 , Buffer3);
     SetIndexStyle ( 2 , DRAW_HISTOGRAM , STYLE_SOLID );
    
     SetIndexBuffer ( 3 , Buffer4);
     SetIndexStyle ( 3 , DRAW_HISTOGRAM , STYLE_SOLID );
    
    
     return ( 0 );
}


//+------------------------------------------------------------------+
int deinit()
{
if ( false ) ObjectsDeleteAll ();

return ( 0 );
}


//+------------------------------------------------------------------+
int start()
{
OnEveryTick1();

return ( 0 );
}
//+------------------------------------------------------------------+
void OnEveryTick1()
{
    
     int i;
     int counted_bars = IndicatorCounted ();
     if (counted_bars < 0 ) return (- 1 );
     if (counted_bars > 0 ) counted_bars--;
    i = Bars - counted_bars - 1 ;
     // main calculation loop
     while (i >= 0 )
    
{
current = i;
        
//current  >0
//current+1=0
TechnicalAnalysis00();

//current  >0
//current+1>0
//current+2=0
TechnicalAnalysis01();

//current  >0
//current+1>0
//current+2>0
//current+3=0
TechnicalAnalysis02();


i--;
}
}

//-----------------------------------------------------
//---------bar_0-------------------------------
//-----------------------------------------------------
void TechnicalAnalysis00()
{

bar_0 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current);
bar_1 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 1 );

if
(
bar_0 > 0
&&
bar_1 == 0
)

{
Histogram00();
}

}

void Histogram00()
{
Buffer1[current]= bar_0;
}
//-----------------------------------------------------
//---------bar_1-------------------------------
//-----------------------------------------------------
void TechnicalAnalysis01()
{

bar_0 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current);
bar_1 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 1 );
bar_2 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 2 );

if
(
bar_0 > 0
&&
bar_1 > 0
&&
bar_2 == 0
)

{
Histogram01();
}

}

void Histogram01()
{
int x_up_01[] = { 0 , 0 };

x_up_01[ 0 ] = bar_0;
x_up_01[ 1 ] = bar_1;

int maxValue_01 = ArrayMaximum (x_up_01);

Buffer1[current]= x_up_01[maxValue_01];
}
//-----------------------------------------------------
//---------bar_2-------------------------------
//-----------------------------------------------------
void TechnicalAnalysis02()
{

bar_0 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current);
bar_1 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 1 );
bar_2 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 2 );
bar_3 = iCustom ( NULL , NULL , "candles_from_chart-celi_masivi" , 0 ,current+ 3 );

if
(
bar_0 > 0
&&
bar_1 > 0
&&
bar_2 > 0
&&
bar_3 == 0
)

{
Histogram02();
}

}

void Histogram02()
{
int x_up_02[] = { 0 , 0 , 0 };

x_up_02[ 0 ] = bar_0;
x_up_02[ 1 ] = bar_1;
x_up_02[ 2 ] = bar_2;

int maxValue_02 = ArrayMaximum (x_up_02);

Buffer1[current]= x_up_02[maxValue_02];
}
//-----------------------------------------------------
//---------bar_3--------and so on-----------------------
//-----------------------------------------------------

benim hatam nerede? nasıl düzeltebilirim?
Tüm harici parametrelerle iCustom'u aramaya çalıştım. - aynı yanlış sonuç. Harici param olmadan denedim. iCustom - aynı yanlış sonuç.

yardım için teşekkürler

buna göre ana kod (birinci histogram) ve ikinci kod (ikinci histogram):