Özel semboller. Hatalar, hatalar, sorular, öneriler. - sayfa 2

 
fxsaber :
Gerçek hayatta özel semboller ticaret değil, yalnızca bilgi amaçlıdır. Bunlar üzerinde yalnızca Test Cihazında işlem yapabilirsiniz.

Gerçekte özel semboller , gerçek enstrümanları açmak veya kapatmak için bir gösterge olarak kullanılabilir.

 
Aidas Geguzis :

Gerçekte özel semboller, gerçek enstrümanları açmak veya kapatmak için bir gösterge olarak kullanılabilir.

Size ve fxsaber'a : teşekkürler ve belgelerde bununla ilgili bir kelime yok. Her zaman olduğu gibi, bilgilerin forumdan ve ağızdan ağıza alınması gerektiği varsayılmaktadır. Terminali kullanarak çift veya n-enstrüman ticareti gibi bir şey uyguladıklarını düşündüm ve ayrıca oradaki çokluğu nasıl yönettiklerini düşündüm. Şimdi açık, benim için çip muhtemelen işe yaramaz.

 

Hata 05.

CustomTicksHata ekle

 template < typename T>
T MyPrint( const T Value, const string Str, const bool DebugFlag = false ) { Print (Str + " = " + ( string )Value); return (Value); }
#define _P(A) MyPrint(A, __FUNCSIG__ ", Line = " + ( string ) __LINE__ + ": " + #A)                     // Макрос для удобного и наглядного вывода значений

void OnStart ()
{
   const string Name = "TEMP9" ;                                                                       // Имя кастомного символа
   const string SymbOrig = "EURUSD" ;                                                                 // Имя оригинального символа

   MqlTick Ticks[];
   const int Size = _P( CopyTicksRange (SymbOrig, Ticks, COPY_TICKS_ALL , ( long ) D'2019.01.01' * 1000 )); // Считали EURUSD-тики за 2019 год.
    
   if ((Size > 0 ) && _P( CustomSymbolCreate (Name, NULL , SymbOrig)) && _P( SymbolSelect (Name, true )))   // Создали символ на основе EURUSD.
  {            
    _P( CustomTicksAdd (Name, Ticks));                                                                 // Поместили в него историю EURUSD через CustomTicksAdd
  
     MqlTick AddTicks[ 1 ];
    AddTicks[ 0 ] = Ticks[Size - 1 ];                                                                   // Взяли последний тик
       
    AddTicks[ 0 ].time += 3600 ;                                                                       // И к его времени добавили час
    AddTicks[ 0 ].time_msc = ( long )AddTicks[ 0 ].time * 1000 ;                                           
    
    _P( CustomTicksDelete (Name, ( ulong ) D'2019.02.01 00:00' * 1000 , LONG_MAX ));                       // Удалили все тики, оставив только данные за январь 2019.
    _P( CopyTicksRange (Name, Ticks));                                                                 // Посмотрели, сколько тиков осталось.
    
    _P( CustomTicksAdd (Name, AddTicks));                                                             // Пробросили один тик.
    
    _P( CopyTicksRange (Name, Ticks));                                                                 // Увидели, что добавился не один тик, а 129.
    _P( CustomTicksDelete (Name, ( ulong ) D'2019.02.01 00:00' * 1000 , LONG_MAX ));                       // Делаем повторное удаление - да, 129!

    _P( SymbolSelect (Name, false ));                                                                   // Удалили символ из Обзора рынка.
    _P( CustomSymbolDelete (Name));                                                                   // Удалили символ.         
  }
}


Sonuç

 void OnStart (), Line = 11 : CopyTicksRange (SymbOrig,Ticks, COPY_TICKS_ALL ,( long ) D'2019.01.01' * 1000 ) = 3316638
void OnStart (), Line = 13 : CustomSymbolCreate (Name, NULL ,SymbOrig) = true
void OnStart (), Line = 13 : SymbolSelect (Name, true ) = true
void OnStart (), Line = 15 : CustomTicksAdd (Name,Ticks) = 3316638
void OnStart (), Line = 23 : CustomTicksDelete (Name,( ulong ) D'2019.02.01 00:00' * 1000 , LONG_MAX ) = 1158959
void OnStart (), Line = 24 : CopyTicksRange (Name,Ticks) = 2157552
void OnStart (), Line = 26 : CustomTicksAdd (Name,AddTicks) = 1
void OnStart (), Line = 28 : CopyTicksRange (Name,Ticks) = 2157681
void OnStart (), Line = 29 : CustomTicksDelete (Name,( ulong ) D'2019.02.01 00:00' * 1000 , LONG_MAX ) = 129
void OnStart (), Line = 31 : SymbolSelect (Name, false ) = true
void OnStart (), Line = 32 : CustomSymbolDelete (Name) = true


Belirtilenden daha fazla kene ekleniyor.

 

Sentetik bir şey hafızayı güçlü bir şekilde yer ve terminalin başlatılmasını yavaşlatır. Dün iki sentetik yaptım, her biri için bir tablo açtım. Bugün terminal üç dakikadır çalışıyor(!!), Görev Yöneticisine göre RAM tüketimi 1,88 GB idi. Bu çizelgeleri sildim, sentetikleri sakladım, daha önce olduğu gibi 20 saniye başlat, RAM 490 MB. Yapı 2006, Pencere başına maksimum çubuk - Sınırsız

İlk sentetikte, Yardım'dan bir formül vardı:

1

İkincisi, basit bir formül:

0,5 * (sor(EURUSD) + sor(USDCAD))

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 
Alexey Volchanskiy :

Sentetik bir şey hafızayı güçlü bir şekilde yer ve terminalin başlatılmasını yavaşlatır. Dün iki sentetik yaptım, her biri için bir tablo açtım. Bugün terminal üç dakikadır çalışıyor(!!), Görev Yöneticisine göre RAM tüketimi 1,88 GB idi. Bu çizelgeleri sildim, sentetikleri sakladım, daha önce olduğu gibi 20 saniye başlat, RAM 490 MB. Yapı 2006, Pencere başına maksimum çubuk - Sınırsız

İlk sentetikte, Yardım'dan bir formül vardı:

İkincisi, basit bir formül:

0,5 * (sor(EURUSD) + sor(USDCAD))

Terminalin başlangıcındaki sentetikler, çok sayıda SSD disk kaynağı tüketir. SSD sürücüsü yavaşsa, birkaç sentetik çalışıyorsa terminalin başlangıcı 10 dakika olabilir.

Terminali sentetiklerle başlatmak için HDD'yi kullanmaktan bahsetmiyorum.

Hızlı bir disk taktığımda (Samsung 970 Pro), terminali başlatma ve sentetiklerle ilgili tüm sorunlar sona erdi.

Terminalin başlangıcında RAM yaklaşık 12 Gb kullanılır. İşlemci i7-6700K.

 
fxsaber :

Hata 05.

CustomTicksHata ekle

Belirtilenden daha fazla kene ekleniyor.

2007 - daha da kötüleşti. CustomTicksAdd , bir yerine 63969 onay ekler.

 void OnStart (), Line = 24 : CopyTicksRange (Name,Ticks) = 2157552
void OnStart (), Line = 26 : CustomTicksAdd (Name,AddTicks) = 1
void OnStart (), Line = 28 : CopyTicksRange (Name,Ticks) = 2221521
void OnStart (), Line = 29 : CustomTicksDelete (Name,( ulong ) D'2019.02.01 00:00' * 1000 , LONG_MAX ) = 63969


Tehdit 2007 - tüm hatalar alakalı.

 
fxsaber :

Hata 02.

ChartRedraw bile görsel bir efekt vermiyor.

Sadece fare ile grafiği kaydırırsanız normale döner. Görselleştirmeyi ChartRedraw ile düzeltebilir misiniz?

Grafiği CustomRatesUpdate 'den sonra güncellemenin bir yolunu önerin, böylece güncellenen çubukları çizilmeye zorlar ve yalnızca bunu yapmaya karar verdiğinde değil.

 
Bazı nedenlerden dolayı, özel bir sembol , grafiği açık olsa bile Market Watch'tan kaldırılabilir.
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni sürümü build 2007: Ekonomik takvim, hizmetler olarak MQL5 programları ve R dili için API

fxsaber , 2019.02.22 12:40

OnCalculate'deki RatesUpdate'den sonra her zaman prev_calculated'ın sıfırlanması doğru mu?

Sonuçta, örneğin yeni bir çubuğu güncellersem, tüm göstergeyi yeniden hesaplamaya gerek yoktur.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MetaTrader 5 platformunun yeni sürümü build 2007: Ekonomik takvim, hizmetler olarak MQL5 programları ve R dili için API

fxsaber , 2019.02.22 12:14

Büyük bir istek, sembol yoksa tkc dosyaları varsa silin.

Terminalin anormal bir şekilde çöktüğü durumlarla karşı karşıya kaldı.

İçeri giriyorum ve sembolümün orada olmadığını görüyorum. Sadece aynı isimde bir sembol yaratıyorum ve bunun tkc'den bir geçmişi olduğu ortaya çıkıyor. Bu bir hata gibi görünüyor.