Hatalar, hatalar, sorular - sayfa 1393

 
galustyan10 :

MERHABA, SÖYLEYİN MT5 ÜZERİNDEN CANLI HESAP AÇARSANIZ, ŞİRKET ÇALIŞANI NE ZAMAN ARAYABİLİR VE HESAP AÇMA İŞLEMİNİ TAMAMLAMALIDIR?

Neden çığlık? Kimse kimseyi aramaz ve bir hesap açarken bir kullanıcı adı ve şifre alırsınız. Kural olarak, bu, komisyoncunun web sitesindeki kişisel bir hesaptır.

 
Derleme hatası: 'a' - statik üye değil
 class A     { int a; };
class B : A { void a(); };
void B::a() {}
ve bu yüzden
 class A     { int a; };
class B : A { void a() {} };
iyi. Fark ne?
 

MT5 1159. "Kişiselleştirme" orta veya büyük yazı tipine ayarlandığında yatay ölçek uyuşmazlığı. Win7, 32b

 

Göstergelerin ayrı bir pencerede otomatik ölçeklendirilmesi MT5'te nasıl çalışır?

Ayrı bir pencerede gösterge

Terminal, maksimum 0,5603 yapar , tüm geçmişteki herhangi bir gösterge arabelleğinin gerçek maksimum değeri 0,0605'tir. Söylemeye gerek yok, MT4'te böyle bir sorun yok.

 
Ilya Malev :

Göstergelerin ayrı bir pencerede otomatik ölçeklendirilmesi MT5'te nasıl çalışır?


Terminal, maksimum 0,5603 yapar , tüm geçmişteki herhangi bir gösterge arabelleğinin gerçek maksimum değeri 0,0605'tir. Söylemeye gerek yok, MT4'te böyle bir sorun yok.

Gösterge arabelleğinde sahip olduğunuz değerleri kontrol edin. "Crosshair" yardımı ile manuel olarak yapılabilir, MQL5 yardımı ile yapılabilir.
 
Karputov Vladimir :
Gösterge arabelleğinde sahip olduğunuz değerleri kontrol edin. "Crosshair" yardımı ile manuel olarak yapılabilir, MQL5 yardımı ile yapılabilir.

Tüm tarihteki maksimum değerin 0.0605 olduğunu söyledim. Her çubuktaki her arabelleğin maksimum değerini karşılaştırarak OnCalculate'de kontrol edildi.

not Aslında, neler olduğunu zaten anlıyorum. MT4 ve MT5'te maksimumu hesaplamak için farklı algoritma. Bu algoritmayı değiştirmenin yararının ne olduğunu anlamak isterdim, ancak bu retorik bir soru.

Sorun MT4'teydi - veri penceresinde görüntülenen gösterge arabellek değerleri, grafikte görüntülenmeleri devre dışı bırakılmış olsa bile (DRAW_NONE stili) ayrı bir gösterge penceresinin ölçeğini etkiler. Onları negatif hale getirerek ve minimumu 0'a sabitleyerek sorunu çözdüm. Ölçek hesaplamasında sadece sabit minimumun (0) üzerindeki gösterge değerleri yer aldığı için her şey yolunda gitti. Sabit minimumun altındaki değerler artık ölçek hesaplamasına dahil edilmiştir. Yani, ölçek hesaplamasından arabellek değerlerini kaldırma özelliğini eklemediler (veya henüz nasıl olduğunu anlamadım), ancak aynı zamanda minimumun altında sürerek ölçeklendirmeden hariç tutma özelliğini de kaldırdılar. veya maksimum. (bunların tümü eşlenmemiş DRAW_NONE arabellekleri için geçerlidir)

 
Ilya Malev :

Tüm tarihteki maksimum değerin 0.0605 olduğunu söyledim. Her çubuktaki her arabelleğin maksimum değerini karşılaştırarak OnCalculate'de kontrol edildi.

not Aslında, sorunun ne olduğunu zaten anladım. MT4 ve MT5'te maksimumu hesaplamak için farklı algoritma. Bu algoritmayı değiştirmenin yararının ne olduğunu anlamak isterdim, ancak bu retorik bir soru.

Gösterge arabelleğine hangi değerleri iletirseniz, bunlar böyle olacaktır. Başka bir seçenek: Başlamanın başında, gösterge arabelleğinin her bir öğesini hesaplamazsınız ve sonuç olarak arabellekte rastgele değerler alırsınız.

Genel olarak, koda bakmadan yapamazsınız.

 
Karputov Vladimir :

Başka bir seçenek: Başlamanın başında, gösterge arabelleğinin her bir öğesini hesaplamazsınız ve sonuç olarak arabellekte rastgele değerler alırsınız.

Bununla zaten ilgilendim. Bu arada bu da MT5 için beklenmedik bir sürpriz oldu :)
 
Karputov Vladimir :

Genel olarak, koda bakmadan yapamazsınız.

tamam kod burada

 #property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_minimum 0
#property indicator_color1 clrRed
#property indicator_type1 DRAW_LINE
#property indicator_label1 "Стд.Откл."

double buffer1[], buffer2[];

int i_std= INVALID_HANDLE ;

void OnInit (){
   SetIndexBuffer ( 0 , buffer1);
   SetIndexBuffer ( 1 , buffer2);
   PlotIndexSetInteger ( 1 , PLOT_DRAW_TYPE , DRAW_NONE );
   PlotIndexSetInteger ( 1 , PLOT_SHOW_DATA , true );
   ArraySetAsSeries (buffer1, true );
   ArraySetAsSeries (buffer2, true );
   i_std= iStdDev ( Symbol (), Period (), 20 , 0 , MODE_SMA , PRICE_CLOSE );
}

void OnDeinit ( const int reason){
   if (i_std!= INVALID_HANDLE )   IndicatorRelease (i_std);
}

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[]){

   for ( int i=rates_total- MathMax ( 1 , prev_calculated); i>= 0 ; i--){
      buffer1[i]=_ind(i_std, 0 , i);
      buffer2[i]=- MathRand ()% 5 ;
   }
   return (rates_total);
}

double _ind( int hnd, int buf, int index){
   if (index < 0 ) return ( EMPTY_VALUE );
   double Arr[];
   return ( CopyBuffer (hnd, buf, index, 1 , Arr)== 1 ?Arr[ 0 ]: EMPTY_VALUE );
}
 

Bunun bir hata mı yoksa garip bir davranış mı olduğunu bilmiyorum, ancak MT4 strateji test cihazı tamponlarında göstergeler için yaklaşık 1000 +/- 3 hücre boyutu var.

Başka bir demo veya gerçek test türünde, arabellekteki hücre sayısı , terminal ayarlarında izin verilen çubuk sayısına yaklaşık olarak eşittir.

Bunun bir hata olup olmadığını veya olması gerektiğini bilmek istiyorum, ayrıca test sırasında test cihazını durdurmadan göstergelerin düzenlenebileceğini de fark ettim. Danışmanlar hakkında hiçbir yerde bilgi okumadım, henüz kontrol etmedim, ama bunun için teşekkürler!

Neden: