MQL5'te acemi soruları. Profesyoneller geçmez. - sayfa 5

 

Bazı gösterge arabelleklerinin grafikte çizilmediğinden , değerlerinin " Veri Penceresi " gösterge penceresinde görüntülendiğinden nasıl emin olunur?

Bunu beğendim:

 #property indicator_label1    "Buff"
#property indicator_type1    DRAW_NONE

int OnInit ()
{
   PlotIndexSetInteger ( 0 , PLOT_DRAW_TYPE , DRAW_NONE );
}


ama yine de gösterge bir arabellek çizer.

 
_o0O :

Bazı gösterge arabelleklerinin grafikte çizilmediğinden , değerlerinin " Veri Penceresi " gösterge penceresinde görüntülendiğinden nasıl emin olunur?

Bunu beğendim:


ama yine de gösterge bir arabellek çizer.

anladım, bu:

 #property indicator_label1    "Buff"
#property indicator_type1    DRAW_NONE

gerek yok.

ve ilginç bir şekilde, bu arabellek #özellik gösterge_çizgilerinde belirtilmelidir... mantıksal olarak olmamasına rağmen, çünkü #özellik gösterge_tamponlarında belirtilmiş ve çizim gerekli değildir.


PS ama şimdi arabelleğin adı veri penceresinde yanlış görüntüleniyor, adı PlotIndexSetString(0, PLOT_LABEL, "Buff") kullanarak belirtmek yardımcı olmuyor ... Genel olarak, yardım edin, lütfen.

 

Tünaydın.

İlk adımlarımı mql5'te atıyorum. RSI M5 ve RSI M15 göstergelerine dayalı bir Uzman Danışman oluşturuldu . Her iki sinyal de aynı anda tetiklendiğinde anlaşmanın yapılması için nasıl ayarlayacağımı söyle? Her ikisinin de ağırlığı 1'dir. Ağırlığı 0,5 olarak koyarsam hiç işlem yapılmaz. Parametre Açılacak sinyal eşik değeri = 90.

 
_o0O :

anladım, bu:

gerek yok.

ve ilginç bir şekilde, bu arabellek #özellik gösterge_çizgilerinde belirtilmelidir... mantıksal olarak olmamasına rağmen, çünkü #özellik gösterge_tamponlarında belirtilmiş ve çizim gerekli değildir.


PS ama şimdi arabelleğin adı veri penceresinde yanlış görüntüleniyor, adı PlotIndexSetString(0, PLOT_LABEL, "Buff") kullanarak belirtmek yardımcı olmuyor ... Genel olarak, yardım edin, lütfen.

Yardım? nasıl bir yardım?...

kısaca belirtmeniz yeterli

 #property indicator_label1    "Buff"

ve işte bu, arabellek veri penceresinde bir ada sahip olacak , değerleri gösterecek ve buna göre, değerleri çizmeden EA'dan bu değerleri almayı mümkün kılacaktır (ek bilgileri saklamak çok uygundur ve grafiği arabellek çizgileriyle kirletmeyin).

 
_o0O :

anladım, bu:

gerek yok.

ve ilginç bir şekilde, bu arabellek #özellik gösterge_çizgilerinde belirtilmelidir... mantıksal olarak olmamasına rağmen, çünkü #özellik gösterge_tamponlarında belirtilmiş ve çizim gerekli değildir.


PS ama şimdi arabelleğin adı veri penceresinde yanlış görüntüleniyor, adı PlotIndexSetString(0, PLOT_LABEL, "Buff") kullanarak belirtmek yardımcı olmuyor ... Genel olarak, yardım edin, lütfen.

Türü DRAV_NONE olarak değil, rengi clr_NONE olarak ayarlamak gereklidir.

İşte test kodu

 #property indicator_separate_window

#property indicator_buffers 2
#property indicator_plots    2
#property indicator_type1    DRAW_HISTOGRAM
#property indicator_color1    clrRed
#property indicator_width1    2
#property indicator_label1    "clrRed"
#property indicator_type2    DRAW_HISTOGRAM
#property indicator_color2    clrNONE
#property indicator_width2    2
#property indicator_label2    "clrNONE"

/****************indicator buffers****************/
double buf1[], buf2[];
/**************Custom indicator initialization function**************/
int OnInit ()
{
     SetIndexBuffer ( 0 , buf1, INDICATOR_DATA );
     SetIndexBuffer ( 1 , buf2, INDICATOR_DATA );
   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[])
{
 int i, limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!
 for (i = 0 ; i < limit; i++)
  {
   if (i% 2 > 0 )
    buf1[i] = 1 ;
   else
    buf2[i] = 1 ;
  }
 
   return (rates_total);
} /*******************************************************************/
 
Alexey Viktorov :

Türü DRAV_NONE olarak değil, rengi clr_NONE olarak ayarlamak gereklidir.

İşte test kodu

her şey gereksiz, sadece etiketi belirtmek yeterli

 #property indicator_label1    "Buff"
 
_o0O :

her şey gereksiz, sadece etiketi belirtmek yeterli

Madem o kadar zekisin, soruyu neden sordun?

 
Alexey Viktorov :

Madem o kadar zekisin, soruyu neden sordun?

akıllı soru sormayan değildir....

forumun herhangi bir üyesi kendi sorularının cevaplarına ulaşabilir, ama mümkün olduğu kadar çabuk cevap bulamayacaksa bu foruma neden ihtiyaç var?

benim yolum daha basit ve daha özlü, onu kullan.

PS Yabancıları "dürtmek" ile bağlantı kurun, siz bizim akıllımızsınız.

 
_o0O :

akıllı olan soru sormayan değildir....

forumun herhangi bir üyesi kendi sorularının cevaplarına ulaşabilir , ama mümkün olan en kısa sürede cevapları bulmak için değilse neden bu foruma ihtiyaç var?

benim yolum daha basit ve daha özlü, onu kullan.

Ah ne kadar yanılıyorsun. Uzak, herhangi birinden uzak.

 
Alexey Viktorov :

Ah ne kadar yanılıyorsun. Uzak, herhangi birinden uzak.

Ayrıca, hiçbiri değil, bu nedenle herhangi bir soruya açığız.

Kılavuzda bundan bahsedilmiyor. DRAW_NONE, #property veya PlotIndexSetInteger (0,PLOT_DRAW_TYPE,DRAW_NONE), PlotIndexSetString(0, PLOT_LABEL, "Buff") içinde çalışmaz, bu nedenle, clrNONE değerini elde etmek için belirtmeye yol açacak mantık tam olarak nedir? amaçlanan amaç?

Neden: