Benim yaklaşımım. Çekirdek - Motor. - sayfa 90

 
fxsaber :

Sevgili fxsaber.

Herhangi bir verinin kaynaklar aracılığıyla değiş tokuş edilebileceğini biliyorum.

Ancak önce, dizeye dönüştürülmeleri ve ardından StringToChar() aracılığıyla uint'e dönüştürülmeleri ve kaynakta saklanması gerekir. Ve bunun kodu çok daha basit.

AMA, bu yöntemin aynı dizeyi nesne açıklamaları aracılığıyla iletmekten daha yavaş olduğunu kanıtladım .


Rakiplerim dize türünü hor görüyor ve tüm verileri bir birleşim yoluyla bir kerede bir uint'e dönüştürmenin efsanevi yöntemini kullanmaktan bahsediyorlar.

Ayrıca, dizelerin de birlik aracılığıyla uint'e dönüştürülmesi gerekir.


Ve StringToChar() varsa, uint'te birleşim yoluyla satırları aktarmak için ne var?

 
Maxim Kuznetsov :

Normalde, danışmanlar, göstergeler, komut dosyaları arasında veri alışverişi için yalnızca ve yalnızca GlobalVariables ve dosyalar vardır.

yukarıdaki 4 noktanın tümü, balık eksikliğinden kaynaklanan yerel "kesmelerdir". Yukarıdaki 4 noktanın tümü, keyfi veri alışverişi için amaçlanmayan mekanizmalar kullanır ve hatta veri dizileri için daha da fazlası.

p1. %100, arayüz iş parçacığının geçici olarak kilitlenmesine yol açar (oh, nesneler orada yaşar ve "açıklamaları" da vardır) ve optimize edicide çalışmaz. Nesne açıklamaları, nesnelerin insan tarafından okunabilir açıklamaları içindir,

p2. test edicide ve optimize edicide çalışmaz ve olaylar hakkında bilgi vermek için kullanılır

p3. s4. kaynaklar (adıyla bile) "hızlı takas" değil, uzun vadeli depolama için tasarlanmıştır. Test / optimize edicide performans hakkında bir şey söylemeyeceğim :-) Kaynakları salt okunur olarak kullanıyorum

kavisli çözümlerin performansı hakkında konuşmanın bir anlamı yok.

ps/ bu arada, dosyaları veya daha çok boruları kullanabilirsiniz

Her şeyi doğru yazmışsın.

Ama "haki" bizim her şeyimiz.))

Test cihazında optimizasyon modunda , EA ile motor arasındaki bağlantı çalışmayacaktır. Bu gerekli değil.


Olaylarla ilgili tam teşekküllü parametre değerleri değişimi için, danışman ve motor, 2000 karaktere kadar verileri birbirine aktarmalıdır. Bu çok değil. Ama ve çok.


En uygun hack 1 numaradır.

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow :

Rakiplerim dize türünü hor görüyor ve tüm verileri bir birleşim yoluyla bir kerede bir uint'e dönüştürmenin efsanevi yöntemini kullanmaktan bahsediyorlar.

Ayrıca, dizelerin de bir birlik aracılığıyla uint'e dönüştürülmesi gerekir.

Yukarıda, birkaç türü aynı anda (yalnızca dizeler değil, bir dizi dize de dahil olmak üzere) uint ve geri dönüştüren koddur .

Ancak bu konuşmada bunun faydalı olacağını düşünmüyorum.


PS Eğer gerçekten satırlardan geçmek istiyorsanız

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

Kitaplıklar: GeçmişTicks

fxsaber , 2018.12.04 09:11

 // Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart ()
{
   int ArrayIn[] = { 0 , 1 , 2 , 3 , 4 , 5 };  
   ChartSetString ( 0 , CHART_COMMENT , DATA_STRING::ToString(ArrayIn));     // Записали данные в комментарий чарта

   int ArrayOut[];    
  DATA_STRING::FromString( ChartGetString ( 0 , CHART_COMMENT ), ArrayOut); // Прочли данные из комментария чарта
  
   ArrayPrint (ArrayOut);
}
 

Yani, bir dizi diziyi union aracılığıyla uint'e dönüştürebilir misiniz?

Ve StringToChar() kullanmaktan daha mı hızlı?

Mümkünse küçük ve basit bir örnek verin. Kodunuzu anlayamıyorum.

 
Реter Konow :

Yani, bir dizi diziyi union aracılığıyla uint'e dönüştürebilir misiniz?

Ve StringToChar() kullanmaktan daha mı hızlı?

Mümkünse küçük ve basit bir örnek verin. Kodunuzu anlayamıyorum.

Bu başlıkta bir örnek vardı burada .

Çoğaltmak için, bağlantısı örnek kodda yazılı olan kitaplığı bağlamanız gerekir.

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber :

...

PS Eğer gerçekten satırlardan geçmek istiyorsanız

Maksimum yorum boyutu nedir?

 
Реter Konow :

Her şeyi doğru yazmışsın.

Ama "haki" bizim her şeyimiz.))

Test cihazında optimizasyon modunda , EA ile motor arasındaki bağlantı çalışmayacaktır. Bu gerekli değil.


Olaylarda tam teşekküllü parametre değerleri değişimi için, danışman ve motor, 2000 karaktere kadar veriyi birbirine aktarmalıdır. Bu çok değil. Ama ve biraz değil.


En uygun hack 1 numaradır.

Bu "en uygun hack" ile "çocuk tırmıkları", yani kullanıcılar tarafından çok sevilen ve yeniden başlatmalar sırasında kullanılan şablonlar üzerine basamazsınız.
 
fxsaber :
...


PS Eğer gerçekten satırlardan geçmek istiyorsanız

Grafik yorumu sınırlı bir boyuta sahiptir. Ya da değil? Bir şekilde tökezledim.

 

Başka bir ciddi soru.

Kendim denemedim, ancak kaynaklar aracılığıyla hızlı bir alışverişin etkinliği konusunda şüpheler var.

Hızlı değişim, - Sürekli olarak 16 milisaniye ileri geri.

Disk yüklenmiyor mu?

 
Maxim Kuznetsov :
Bu "en uygun hack" ile "çocuk tırmıklarına", yani kullanıcılar tarafından çok sevilen ve yeniden başlatmalar sırasında kullanılan şablonlara basamazsınız.

Lütfen açıklayın.

not. İletişim için özel nesneler kullanılacaktır. isimler. Polzov ile tesadüflerin olmadığını. nesneler.