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

 
Artyom Trishkin :

Sadece anlamıyorum: neyi bulmak ve görüntülemek istiyorsunuz? Sadece kelimeler - kod yok.

Buraya yazıyorsun:

Hemen sorulan soru bu: neden tam olarak onuncu çubuğa bakıyorsunuz?


onuncu çubukta bunu örnek aldım

Aranan göstergenin oku göründükten sonra 10 veya "N" çubukları boyunca tarih boyunca noktalar koymam gerekiyor.

sanki sadece onda gerekliymiş gibi, yapardım

 if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 1 ,i+ 10 ), Digits )!= EMPTY_VALUE
        {
         BufferDN[i+ 1 ]=high[i+ 1 ]+distance*MyPoint;

        }

Artyom Trishkin :

Ve OnCalculate() yerine tüm göstergeyi ekleyin

Bu ilk seçenek.

 #property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot UP
#property indicator_label1    "UP"
#property indicator_type1    DRAW_ARROW
#property indicator_color1    clrLawnGreen
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- plot DN
#property indicator_label2    "DN"
#property indicator_type2    DRAW_ARROW
#property indicator_color2    clrDeepPink
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1

//--- indicator buffers
double          BufferUP[];
double          BufferDN[];

int distance= 5 ;
double MyPoint;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,BufferUP);
   SetIndexBuffer ( 1 ,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow ( 0 , 233 );
   SetIndexArrow ( 1 , 234 );

//---
   if ( Digits ()== 5 || Digits ()== 3 ){MyPoint= Point * 10 ;} else {MyPoint= Point ;}
  
   return ( INIT_SUCCEEDED );
  }
   // int ila;
int     vspread,num_buy= 0 ,num_sell= 0 ;
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if (rates_total< 2 ) return ( 0 );
   int limit=rates_total-prev_calculated;
   if (limit> 1 ) 
     {
      limit=rates_total- 2 ;
       ArrayInitialize (BufferUP, EMPTY_VALUE );
       ArrayInitialize (BufferDN, EMPTY_VALUE );
     }
   for ( int i=limit; i>= 0 ; i--) 
     {
     for ( int il=i+ 1 ;il<=i+ 300 ;il++)
        {
         if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 0 ,il), Digits )!= EMPTY_VALUE
            )
           {
            num_buy=il;
             //Print()
           // break;
           }
        }
//
       if (num_buy== 60 )
        {
         BufferUP[i+ 1 ]=low[i+ 1 ]-distance*MyPoint;
         
        }
    
     for ( int ila=i+ 1 ;ila<=i+ 300 ;ila++)
        {
         if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 1 ,ila), Digits )!= EMPTY_VALUE
            )
           {
            num_sell=ila;
           // break;
           }
        }
       if (num_sell== 10 )
        {
         BufferDN[i+ 1 ]=high[i+ 1 ]+distance*MyPoint;

        }
     
       Comment (num_buy, "num_sell" ,num_sell);
     }
//--- return value of prev_calculated for next call

   return (rates_total);
  }
//
.
 

Genel olarak, ilk çubuğun düşük değerini, çağrılan göstergenin (ilk tampon) ilk okunun arkasındaki “ n ” -inci üst fraktal ile karşılaştırmak istiyorum.

Ve bulunan fraktalın ilk çubuğu ile çubuğu arasındaki maksimum fiyatı bulun.

Tüm koşul şu şekildedir: İlk çubuğun düşük (+-10 puan) değeri, gösterge okunun arkasındaki fraktalın fiyatına (ilk olsun) ve fraktal çubuk ile fraktal çubuk arasındaki maksimum fiyata eşitse. İlk bar eksi bulunan fraktalın fiyatı 50 pp'den fazlaysa, ardından oku ayarlayın.

Aslında, bir fraktal bulmak için okun bulunduğu çubuğun numarasına ihtiyacım var. Bu çubuktan başlayarak fraktalları tekrarlamak istiyorum, hikayenin devamı.

Belki oradan başlamadım ve bunu çözmek için başka bir yol önerebilirsiniz.

 
mila.com :

Genel olarak, ilk çubuğun düşük değerini, çağrılan göstergenin (ilk tampon) ilk okunun arkasındaki “ n ” -inci üst fraktal ile karşılaştırmak istiyorum.

Ve bulunan fraktalın ilk çubuğu ile çubuğu arasındaki maksimum fiyatı bulun.

Tüm koşul şu şekildedir: İlk çubuğun düşük (+-10 puan) değeri, gösterge okunun arkasındaki fraktalın fiyatına (ilk olsun) ve fraktal çubuk ile fraktal çubuk arasındaki maksimum fiyata eşitse. İlk bar eksi bulunan fraktalın fiyatı 50 pp'den fazlaysa, ardından oku ayarlayın.

Aslında, bir fraktal bulmak için okun bulunduğu çubuğun numarasına ihtiyacım var. Bu çubuktan başlayarak fraktalları tekrarlamak istiyorum, hikayenin devamı.

Belki oradan başlamadım ve bunu çözmek için başka bir yol önerebilirsiniz.

Bu, ayarlarda belirlediğiniz çubuklarda tarih boyunca noktalar koymalıdır.

Yani, 10 çubuk ayarlanmışsa, döngü indeksinin 10 çubuk solundaki özel bir göstergeden bir sinyal varsa, döngünün mevcut çubuğuna (indeks i) bir nokta yerleştirilecektir.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2
//--- plot UP
#property indicator_label1    "UP"
#property indicator_type1    DRAW_ARROW
#property indicator_color1    clrLawnGreen
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1
//--- plot DN
#property indicator_label2    "DN"
#property indicator_type2    DRAW_ARROW
#property indicator_color2    clrDeepPink
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1
//--- input parameters
input uint      InpNumberOfBars   =   10 ;   // Количество баров отступа
input int       InpDistance       =   5 ;     // Отступ в пунктах
//--- indicator buffers
double          BufferUP[];
double          BufferDN[];
//---
int             num_bars;
double          distance;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,BufferUP);
   SetIndexBuffer ( 1 ,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow ( 0 , 233 );
   SetIndexArrow ( 1 , 234 );
//--- setting variables
   num_bars=( int )InpNumberOfBars+ 1 ;
   distance=InpDistance* Point ();
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if (rates_total<num_bars) return ( 0 );
   int limit=rates_total-prev_calculated;
   if (limit> 1 )
     {
      limit=rates_total-num_bars- 1 ;
       ArrayInitialize (BufferUP, EMPTY_VALUE );
       ArrayInitialize (BufferDN, EMPTY_VALUE );
     }
   for ( int i=limit; i>= 0 ; i--)   // 1000 - 11 - 1 = 999-11 = 988
     {
       double val_0= iCustom ( NULL , 0 , "Arrow v.3" , 0 ,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
       double val_1= iCustom ( NULL , 0 , "Arrow v.3" , 1 ,i+num_bars);   // rates_total=1000, i=988, val from 988+11=999
       if (val_0> 0 && val_0< EMPTY_VALUE )
         BufferDN[i]=low[i]-distance;   // BufferDN[988]=val
       if (val_1> 0 && val_1< EMPTY_VALUE )
         BufferUP[i]=high[i]+distance;
     }
//--- return value of prev_calculated for next call

   return (rates_total);
  }
//+------------------------------------------------------------------+
Ancak, "gerekir", zorunluluk anlamına gelmez. Aptalca "dizlerimin üstünde" uyandım. Kontrol edemiyorum - özel bir tane yok. Kendin...
 
Selamlar. Gerçekten yardıma ihtiyacım var. Belki birileri bir komut dosyası veya yöntem biliyordur, işlemlerin geçmişinde bir şekilde işlemleri nasıl seçebileceğinizi ve ardından bu seçimler tarihe kaydedilir, örneğin: https://yadi.sk/d/7aHIs_vh3RxLvW veya burada:
https://yadi.sk/i/Ft8yNn1e3RxMEH - şimdiden teşekkürler
Dosyalar:
2.jpg  481 kb
3.jpg  708 kb
 
civic111 :
Selamlar. Gerçekten yardıma ihtiyacım var. Belki birisi bir komut dosyası veya yöntem biliyordur, işlemlerin geçmişinde bir şekilde işlemleri nasıl seçebileceğinizi ve ardından bu seçimlerin geçmişe nasıl kaydedileceğini biliyor olabilir, örneğin: https://yadi.sk/d/7aHIs_vh3RxLvW veya burada:
https://yadi.sk/i/Ft8yNn1e3RxMEH - şimdiden teşekkürler

Ama böyle


Annem fotoğraf atmama izin vermedi mi?

 
civic111 :
Selamlar. Gerçekten yardıma ihtiyacım var. Belki birileri bir komut dosyası veya yöntem biliyordur, işlemlerin geçmişinde bir şekilde işlemleri nasıl seçebileceğinizi ve ardından bu seçimler tarihe kaydedilir, örneğin: https://yadi.sk/d/7aHIs_vh3RxLvW veya burada:
https://yadi.sk/i/Ft8yNn1e3RxMEH - şimdiden teşekkürler

standart panelde - hiçbir şekilde.

Ancak CodeBase veya (belki de) Market, sipariş geçmişiyle çalışmak için araçlara sahip olmalıdır. Veya kendiniz yapmak veya serbest çalışmak için sipariş vermek için bir seçenek olarak "blackjack ve bakireler ile alternatif sipariş geçmişi paneli" :-)

Veya çok, çok basit, CSV'ye aktarın ve ardından Excel'i alın ve içindeki geçmişi analiz edin.

 

lütfen işi kapat

ücretsiz yuvaya ihtiyacım var

 
Geliştirici Hooshang Nosratpanah , "İş Kabulü" adımını onayladı
 
اه مو مشكلة
← yukarı kaydırın
 
انا اعتقد ان كل مسافه معينه افضل
لان ممكن نفتح شرا و السعر ينزل ويجيب اشاره بيع
ويضل علي الل etkileyici