Hatalar, hatalar, sorular - sayfa 2958

 
Mikhail Mishanin :

https://www.mql5.com/en/search#!author=Vladimir%20Karputov&module=mql5_module_codebase


İsteğiniz için hiçbir şey bulunamadı

Neden bahsediyorsun?
 
Vladimir Karputov :
Neden bahsediyorsun?

Arama çarpık, CodeBase'deki göstergelerinizi yayın tarihine göre filtrelemek istedim

https://www.mql5.com/en/search#!keyword=Vladimir%20Karputov&module=mql5_module_codebase&method=2

https://www.mql5.com/ru/search#!keyword=%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE% D1%80&module=mql5_module_codebase&method=2&author=Vladimir%20Karputov

sonuncusu istediğinize en yakın olanıdır.

 

İşte çalışan iki bağlantı. Belki de eski bağlantı biçimi, site veritabanlarının bir güncellemesiydi veya vardı.

 
Vladimir Karputov :

İşte çalışan iki bağlantı. Belki de eski bağlantı biçimi, site veritabanlarının bir güncellemesiydi veya vardı.

Tabii ki çalışıyorlar, sadece veriyorlar, bence, beklediğim gibi değil.

ilkinde tarihe göre ilk gören ben olacağımı düşündüm https://www.mql5.com/ru/code/33553

ikincisinde, diğer yazarlar yollarını ayırdı.

Küçük şeyler tabii.

 

basit istiyorum. Grafikte "Piyasa İzleme" den yeni bir sembol atarken (yani sembol değiştirirken) bunu fark etmek ve harekete geçmek gerekir.

 #property indicator_chart_window

int OnInit ()
  {
   return ( INIT_SUCCEEDED );
  }

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[])
  {
   return (rates_total);
  }

void OnDeinit ( const int reason)
  {
   string old_symbol= _Symbol ;
   string new_symbol;

   Print ( "The current symbol is " ,old_symbol, "." );

   if ( _UninitReason == REASON_CHARTCHANGE )
   {
      new_symbol= _Symbol ;
       Print ( "Was: " ,old_symbol, ", now: " ,new_symbol, "." );
   }

   return ;
  }

USDCHF'ye bir çift EURUSD atıyorum, şöyle yazıyor:

 2021.02 . 14 17 : 56 : 26.700 test (USDCHF,M20)       The current symbol is USDCHF.
2021.02 . 14 17 : 56 : 26.700 test (USDCHF,M20)       Was: USDCHF, now: USDCHF.

Aynı zamanda, grafikte parite elbette EURUSD'ye dönüşüyor. Göstergeyi grafikten çıkarırken ( ki bu zaten çok geç) diyor:

 2021.02 . 14 18 : 02 : 54.006 test (EURUSD,M20)       The current symbol is EURUSD.

Ve hemen bekleniyor:

 2021.02 . 14 18 : 00 : 44.660 test (USDCHF,M20)       The current symbol is USDCHF.
2021.02 . 14 18 : 00 : 44.660 test (USDCHF,M20)       Was: USDCHF, now: EURUSD.

Neyi yanlış yapıyorum?

EURUSD - Euro vs US Dollar - Курс валют сегодня — Форекс курсы валют
EURUSD - Euro vs US Dollar - Курс валют сегодня — Форекс курсы валют
  • www.mql5.com
EURUSD - Euro vs US Dollar - Графики с курсом по самым популярным валютным парам. Используйте фильтр снизу, чтобы отбирать нужные вам курсы валют. Внутри каждого графика показываются цены спроса и предложения, а также прирост за день.
 
x572intraday :

basit istiyorum. Grafikteki "Piyasa İzleme" den yeni bir sembol atarken (yani sembol değiştirirken) bunu fark etmek ve harekete geçmek gerekir.

USDCHF'ye bir çift EURUSD atıyorum, şöyle yazıyor:

Aynı zamanda, grafikte parite elbette EURUSD'ye dönüşüyor. Göstergeyi grafikten çıkarırken ( ki bu zaten çok geç) diyor:

Ve bekleniyor:

Neyi yanlış yapıyorum?

İçindeki nedir

 OnDeinit (

OnInit'e koyun ve her şey netleşecek.

 
x572intraday :

basit istiyorum. Grafikteki "Piyasa İzleme" den yeni bir sembol atarken (yani sembol değiştirirken) bunu fark etmek ve harekete geçmek gerekir.

Göstergede, sembolü OnDeinit'e kaydetmeniz gerekir (örneğin, global olanlarda). OnInit'te, önceki göstergenin OnDeinit'inin yürütülmesini BEKLEYİN ve kaydedilen karakteri okuyun.
 #property indicator_chart_window
#property indicator_plots    0

#include <Init_Sync.mqh> // https://www.mql5.com/ru/code/18138

int OnInit ()
{  
   // https://www.mql5.com/ru/forum/189649#comment_4854618
   if ( GlobalVariableCheck (( string ) ChartID ()))
  {
     const string PrevSymb = _GlobalVariableGet< string >(( string ) ChartID ());
    
     if (PrevSymb != _Symbol )
       Alert (PrevSymb + " -> " + _Symbol );
    
    _GlobalVariableDel(( string ) ChartID ());  
  }
    
   return ( INIT_SUCCEEDED );
}

void OnDeinit ( const int Reason )
{
   if (Reason == REASON_CHARTCHANGE )
    _GlobalVariableSet(( string ) ChartID (), _Symbol + "" );
}

void OnChartEvent ( const int id,
                   const long & lparam,
                   const double & dparam,
                   const string & sparam )
{
}

void OnTimer ()
{
}

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[] )
{
   return (rates_total);
}
Bu örnek, (string)ChartID() adıyla global bir tane oluşturur. Grafikte birkaç gösterge varsa, mantık biraz daha karmaşık olmalıdır.
 
fxsaber :
Göstergede, sembolü OnDeinit'e kaydetmeniz gerekir (örneğin, global olanlarda). OnInit'te, önceki göstergenin OnDeinit'inin yürütülmesini BEKLEYİN ve kaydedilen karakteri okuyun. Bu örnek, (string)ChartID() adıyla global bir tane oluşturur. Grafikte birkaç gösterge varsa, mantık biraz daha karmaşık olmalıdır.

TypeToBytes.mqh ve crc64.mqh başarıyla derlendi, ancak Init_Sync.mqh derlenirken bir yığın hata verdi. Yani örneğin derlenmesine bile ulaşamadı. Evet ve dehşetle böyle önemsiz bir görevin, bazıları derlemek istemeyen birkaç dolgun kitaplık gerektirdiğini düşünüyorum. Kendi özel göstergem dışında daha önce hiçbir şeyi üçüncü bir tarafa bağlamadım.

 
x572intraday :

TypeToBytes.mqh ve crc64.mqh başarıyla derlendi, ancak Init_Sync.mqh derlenirken bir yığın hata verdi.

derliyorum.

Dosyalar:
 
fxsaber :

derliyorum.

Bu işe yaradı.