Hatalar, hatalar, sorular - sayfa 525

 

İyi günler, standart grafik aracını bir şekilde değiştirmek mümkün mü? Daha spesifik olarak: 1,3 faktörü ile oluşturulmuş fibo ızgaraya dikey bir çizgi ekleyin

 

göstergeler hakkında soru Daha spesifik olarak, fraktallar. test kodu yazdı

 int Fractals;
double bar_val[];
bool start;
int OnInit ()
{
   Fractals = iFractals ( _Symbol , _Period );
   if (Fractals == INVALID_HANDLE ) return ( 1 );
   if (! ArrayResize (bar_val, 2 )) return ( 1 );
   if (! ArraySetAsSeries (bar_val, true )) return ( 1 );
   start = false ;
   return ( 0 );
}

void OnTick ()
{
   if (start) return ; else start = true ;
   for ( int i = 0 ; i < 10 ; i++)
   {
       CopyBuffer (Fractals, UPPER_LINE , i, 2 , bar_val);
       if ( EMPTY_VALUE != bar_val[ 0 ])
         Print ( "1. i = " + string (i) + ", bar_val = " + string (bar_val[ 0 ]));
       CopyBuffer (Fractals, LOWER_LINE , i, 2 , bar_val);
       if ( EMPTY_VALUE != bar_val[ 0 ])
         Print ( "2. i = " + string (i) + ", bar_val = " + string (bar_val[ 0 ]));
   }
}

Ekranda olmamasına rağmen periyodik olarak i = 2'de bir fraktal görüntüler (standart göstergeden Fraktallar )

Bana neyin yanlış olduğunu söyle

 
Uzman Danışmanlar nedense 2001 ve 2006 yılları arasında test edilmemektedir. Euro ve pound'a baktım. Terminali kapattı, geçmişi sildi. Yeniden yüklendi. Önemli değil. 2001 anlaşmaları açılmadan önce. Ve 2001'den 2006'ya kadar, sinyaller varsa, bir geçiş. Niye ya?
 

Terminal panelindeki zaman çerçevesi düğmeleri sıkışmış. Bazen, TF'den TF'ye sık sık çoklu geçiş ile aynı anda birkaç. Belki de bu, çok sayıda pencere, gösterge, şablon nedeniyledir ... ancak daha önce bunlardan daha azı yoktu, ancak böyle bir etki gözlenmedi. Ekran görüntüsü, basılan zaman dilimi düğmesinin grafiğin sol üst köşesinde belirtilen gerçek değere karşılık gelmemesine bir örnek gösterir. Er ya da geç yine de ortaya çıkmasına rağmen, daha uzun vadeli bir etkiye çekilir.

Bazen hiçbirine hiç basılmadığı olur.

 

Pencere boyutlarını mql5 kullanarak yönetebilir miyim?

 
ilunga :

göstergeler hakkında soru Daha spesifik olarak, fraktallar. test kodu yazdı

Ekranda olmamasına rağmen periyodik olarak i = 2'de bir fraktal görüntüler (standart Fraktallar göstergesinden)

Bana neyin yanlış olduğunu söyle

önceden söylememek için danışman koduyla uğraşmanız gerekir
 
tol64 :
Uzman Danışmanlar nedense 2001 ve 2006 yılları arasında test edilmemektedir. Euro ve pound'a baktım. Terminali kapattı, geçmişi sildi. Yeniden yüklendi. Önemli değil. 2001 anlaşmaları açılmadan önce. Ve 2001'den 2006'ya kadar, sinyaller varsa, bir geçiş. Niye ya?
Ek bilgi. Bu, yalnızca test cihazı ayarlarında D1 zaman çerçevesi seçildiğinde gerçekleşir. Uzman ayarlarında D1 zaman çerçevesini seçerseniz ve test cihazının daha küçük bir TF'si varsa, boşluk olmaz. Bu bir bug mı yoksa bunun bir açıklaması var mı?
 

Görünüşte basit bir gösterge yaptım, neden çalışmak istemiyor - anlamıyorum;(

 //+------------------------------------------------------------------+
//|                                                      testind.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link       "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot Vol
#property indicator_label1   "UniPrice"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLightSlateGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1   1
#include <MovingAverages.mqh>
//--- input parameters
input int       Smooth= 50 ;
//--- indicator buffers
double          SmoothSpreadBuffer[];
double          SpreadBuffer[];
double          UniPriceBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,UniPriceBuffer, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,SpreadBuffer, INDICATOR_CALCULATIONS );
   SetIndexBuffer ( 2 ,SmoothSpreadBuffer, INDICATOR_CALCULATIONS );
   
//---
   return ( 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[])
  {
//---
   int i;
   for (i= 1 ;i<rates_total;i++)
     {
      SpreadBuffer[i]=(high[i]-low[i]);
     }  
     
   SmoothedMAOnBuffer(rates_total,prev_calculated,
                         1 ,   // с какого индекса есть значения в массиве для сглаживания 
                         Smooth,   // период экспроненциальной средней
                         SpreadBuffer,       // буфер для взятия средней
                         SmoothSpreadBuffer);   // в этот буфер помещаем значения средней      
   for (i= 1 ;i<rates_total;i++)
     {
      UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i]; //не показывает
       //UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[rates_total-1];//показывает
       //UniPriceBuffer[i]=close[i];//показывает
       //UniPriceBuffer[i]=SmoothSpreadBuffer[i];//показывает
     }  
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

close[i] yerine koyarken veriyor, SmoothSpreadBuffer[i] de değiştirirken veriyor, neden birini diğerine bölüp sonucu göstermek istemiyor?

ancak sonuç bazen verir, ancak gerçeğe karşılık gelmez, örneğin, saat üzerindeki EURUSD çiftinde 300-400 aralığında bir değer olmalıdır...

 
Olegts :

Görünüşte basit bir gösterge yaptım, neden çalışmak istemiyor - anlamıyorum;(

close[i] yerine koyarken veriyor, SmoothSpreadBuffer[i] de değiştirirken veriyor, neden birini diğerine bölüp sonucu göstermek istemiyor?

ancak sonuç bazen verir, ancak gerçeğe karşılık gelmez, örneğin, saat üzerindeki EURUSD çiftinde 300-400 aralığında bir değer olmalıdır...

UniPriceBuffer[i]=close[i]/SmoothSpreadBuffer[i];

Güncel için burada EURUSD değerlerini değiştirin. zaman ve alacaksınız:

Örneğin kapanış fiyatlarında ortalama 16 olan Ma

UniPriceBuffer[i] = 1,33846 / 1.33932 = 0,99935

kullanmak daha iyi değil

 handle= iMA (name,period,ma_period,ma_shift,ma_method,applied_price);
и т.д
 

Son derlemeden sonra, yükleme sırasında terminal donuyor. Buhar danışmanının pencerelerinde - işe başlamak için zamanı yok. Menülere veya içerik menülerine erişim yoktur. Win7. Sembol genel bakış penceresi boş. Bağlantı simgesi kırmızıdır. İşlemci yükü yok. Ne yapmalı ve istikrar ne zaman olacak?

Описание:
  Ошибка привела к остановке взаимодействия программы с Windows.

Сигнатура проблемы:
  Имя события проблемы:    AppHangB1
  Имя приложения:    terminal.exe
  Версия приложения:    5.0.0.514
  Отметка времени приложения:    00343800
  Сигнатура зависания:    86b5
  Тип зависания:    1
  Версия ОС:    6.1.7601.2.1.0.256.1
  Код языка:    1049
  Доп. сигнатура зависания 1:    86b56845a796dcc49c1ed94bca152915
  Доп. сигнатура зависания 2:    4dea
  Доп. сигнатура зависания 3:    4dea45bbcdd37e9fd7bef8af1f8c0d94
  Доп. сигнатура зависания 4:    1df5
  Доп. сигнатура зависания 5:    1df5990b738955081f33bb6a466caece
  Доп. сигнатура зависания 6:    b4e6
  Доп. сигнатура зависания 7:    b4e6e85bfba9e3852328760498392cb4