Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1129

 
Alexey Viktorov :

Neden kendinle böyle alay ediyorsun? Önce ekran arabelleklerini, sonra da yardımcı olanları atamanın sorunu nedir?

Algoritmanın bir özelliği, her zaman sabit sayıda yardımcı arabellek ve farklı sayıda görüntülenen arabellek olmasıdır. Lütfen, tüm bunların ne kadar doğru belirtildiğiyle ilgili önceki mesajdaki soruyu yanıtlayın?


Alexey Viktorov :

DRAW_HISTOGRAM2'ye 3 arabellek ve zorunlu bir sıra, ilk 2 değer arabelleği ve ardından bir renk arabelleği verilir. Ancak DRAW_HISTOGRAM ve DRAW_HISTOGRAM2 arasında öyle bir fark vardır ki, DRAW_HISTOGRAM sıfırdan arabellekteki değere, DRAW_HISTOGRAM2 bir değerinden çizilir. arabellek başka bir arabelleğin değerine.

https://www.mql5.com/en/docs/customind/indicators_examples/draw_histogram2 adresindeki DRAW_HISTOGRAM2 açıklamasından:

" DRAW_HISTOGRAM2 oluşturmak için gereken arabellek sayısı 2'dir. "

O zaman üçüncü tamponu nereye götürmeli? Ve aynı bağlantıdaki örnekte, yalnızca iki arabellek vardır, ancak renkleri normal bir DRAW_HISTOGRAM ile aynı şekilde değiştirmenin mümkün olup olmadığı belirtilmemiştir?
 
The_Sheikh :

Algoritmanın bir özelliği, her zaman sabit sayıda yardımcı arabellek ve farklı sayıda görüntülenen arabellek olmasıdır. Lütfen, tüm bunların ne kadar doğru belirtildiğiyle ilgili önceki mesajdaki soruyu yanıtlayın?


https://www.mql5.com/en/docs/customind/indicators_examples/draw_histogram2 adresindeki DRAW_HISTOGRAM2 açıklamasından:

" DRAW_HISTOGRAM2 oluşturmak için gereken arabellek sayısı 2'dir. "

O zaman üçüncü tamponu nereye götürmeli? Ve aynı bağlantıdaki örnekte, yalnızca iki arabellek vardır, ancak renkleri normal bir DRAW_HISTOGRAM ile aynı şekilde değiştirmenin mümkün olup olmadığı belirtilmemiştir?

Evet, bakım eksikliği için üzgünüm. DRAW_COLOR_HISTOGRAM2 ve DRAW_COLOR_HISTOGRAM demek istedim

 
The_Sheikh :

Algoritmanın bir özelliği, her zaman sabit sayıda yardımcı arabellek ve farklı sayıda görüntülenen arabellek olmasıdır. Lütfen tüm bunların ne kadar doğru belirtildiğiyle ilgili önceki mesajdaki soruyu yanıtlayın?

Kendimi hiç böyle kandırmadım. İstersen deney yap.

 
Bu konuyla ilgili olmayan yorumlar " MQL4 MT4 MetaTrader 4 Yeni Başlayanlardan Sorular " bölümüne taşındı.
 

PlotIndexSetInteger() işleviyle renkler nasıl doğru şekilde ayarlanır?

işaret ettiğimde

#özellik göstergesi_renk3 clrKırmızı,clrYeşil

sonra renkler normal olarak ayarlanır ve fonksiyon aracılığıyla ayarladığımda

PlotIndexSetInteger(2,PLOT_LINE_COLOR,0,clrRed);

PlotIndexSetInteger(2,PLOT_LINE_COLOR,1,clrGreen);

o zaman çizginin ilk rengi kırmızıdır ve ikincisi (ve sonraki) nedense yeşil yerine siyahtır (varsayılan olarak).

 
The_Sheikh :

PlotIndexSetInteger() işleviyle renkler nasıl doğru şekilde ayarlanır?

işaret ettiğimde

#özellik göstergesi_renk3 clrKırmızı,clrYeşil

sonra renkler normal olarak ayarlanır ve fonksiyon aracılığıyla ayarladığımda

PlotIndexSetInteger(2,PLOT_LINE_COLOR,0,clrRed);

PlotIndexSetInteger(2,PLOT_LINE_COLOR,1,clrGreen);

o zaman çizginin ilk rengi kırmızıdır ve ikincisi bir nedenden dolayı yeşil yerine siyahtır (varsayılan olarak).

Neden orada bir değiştirici var?

 
Alexey Viktorov :

Neden orada bir değiştirici var?

Hangisi, nerede? MQL5 belgelerindeki örneğe baktım ve aynısını yaptım. Doğru yaz?

 
The_Sheikh :

Hangisi, nerede? MQL5 belgelerindeki örneğe baktım ve aynısını yaptım. Doğru yaz?

Gösterge arabelleklerini başlatmak için tüm kodu gösterin.
 
The_Sheikh :

Hangisi, nerede? MQL5 belgelerindeki örneğe baktım ve aynısını yaptım. Doğru yaz?

baktım

 bool    PlotIndexSetInteger ( 
   int   plot_index,         // индекс графического стиля 
   int   prop_id,           // идентификатор свойства 
   int   prop_value         // устанавливаемое значение 
   );

öyle yaptı

 bool    PlotIndexSetInteger ( 
   int   2,                 // индекс графического стиля 
   int   PLOT_LINE_COLOR,   // идентификатор свойства 
   int   0,                 // модификатор свойства 
   int   clrGreen           // устанавливаемое значение 
   )

Ve orada, belgelerde diyor ki

[içinde] Belirtilen özelliğin değiştiricisi. Yalnızca renk dizini özellikleri bir değiştirici gerektirir.


Bu, bodrum gösterge seviyelerinin farklı renkleri, fibo seviyeleri ve benzer bir şey atanırsa değiştiricinin olması gerektiği anlamına gelir.
 
Artyom Trishkin :
Gösterge arabelleklerini başlatmak için tüm kodu gösterin.

Bunun gibi bir şey

 #property indicator_chart_window
//#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots 2

#define GreenC 0x00FF00
#define RedC 0x0000FF
#property indicator_type1 DRAW_NONE
#property indicator_type2 DRAW_COLOR_HISTOGRAM2
//#property indicator_color2 GreenC,RedC

double
Arr11[],
Arr21[],
Arr22[],
Arr23[];

void OnInit ()
{
SetIndexBuffer ( 0 ,Arr11, INDICATOR_CALCULATIONS );
SetIndexBuffer ( 1 ,Arr21, INDICATOR_DATA );
SetIndexBuffer ( 2 ,Arr22, INDICATOR_DATA );
SetIndexBuffer ( 3 ,Arr23, INDICATOR_COLOR_INDEX );
IndicatorSetInteger ( INDICATOR_DIGITS , Digits ());
PlotIndexSetInteger ( 1 , PLOT_LINE_WIDTH , 4 );
PlotIndexSetInteger ( 1 , PLOT_LINE_COLOR , 0 ,GreenC);
PlotIndexSetInteger ( 1 , PLOT_LINE_COLOR , 1 ,RedC);
//PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);
}

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[]
)
{
ArraySetAsSeries (open, 0 );
ArraySetAsSeries (close, 0 );
ArraySetAsSeries (low, 0 );
ArraySetAsSeries (high, 0 );
ArrayInitialize (Arr11, 0.0 );
ArrayInitialize (Arr21, 0.0 );
ArrayInitialize (Arr22, 0.0 );
ArrayInitialize (Arr23, 0.0 );

for ( int I= 0 ;I<rates_total;I++)
{
Arr22[I]=low[I];
Arr23[I]= 0.0 ;
//Arr23[I]=1.0;
}

return (rates_total);
}

Alexey Viktorov :

baktım

öyle yaptı

Ve orada, belgelerde diyor ki

Bu, bodrum gösterge seviyelerinin farklı renkleri, fibo seviyeleri ve benzer bir şey atanırsa değiştiricinin olması gerektiği anlamına gelir.

Sadece benim durumum.

Referanstaki DRAW_COLOR_HISTOGRAM2 örneğinden bir pasaj:

/--- для каждого цветового индекса зададим новый цвет случайным образом
   for ( int plot_color_ind= 0 ;plot_color_ind<plot_colors;plot_color_ind++)
     {
       //--- получим случайное число
       int number= MathRand ();
       //--- получим индекс в массиве col[] как остаток от целочисленного деления
       int i=number%size;
       //--- установим цвет для каждого индекса как свойство PLOT_LINE_COLOR
       PlotIndexSetInteger ( 0 ,                     //  номер графического стиля
                           PLOT_LINE_COLOR ,       //  идентификатор свойства
                          plot_color_ind,       //  индекс цвета, куда запишем цвет
                          cols[i]);             //  новый цвет

Burada plot_colors = 8, cols[] farklı renklere sahip bir dizidir. Ancak terminal, birincisi dışında herhangi bir renk algılamaz.