Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 71

 

fxsaber :

"MetaTrader 5'te bir ticaret stratejisinin optimizasyonunu görselleştirme" makalesinin tartışılması

fxsaber , 2018.02.22 08:39

Çerçeve modunda OnInit, OnDeinit, OnTick, OnTrade, OnTradeTransaction ve OnTimer yok sayılır. Yalnızca OnChartEvent saban sürer.

Tabii ki, OnChartEvent istisnası nedeniyle, içinde çerçeve modu bayrağının varlığı için zorunlu bir kontrol yapılması gerekir.

Bu kadar kesin bir kesinlik nereden geliyor? :-)

 
Dennis Kiriçenko :

Bu kadar kesin bir kesinlik nereden geliyor? :-)

Tabii ki pratikten.

 

Sonra bir soru. Çerçeve modu, genellikle Test'e atıfta bulunan veya olmayan bir moddur?

 
Dennis Kiriçenko :

Sonra bir soru. Çerçeve modu, genellikle Test'e atıfta bulunan veya olmayan bir moddur?

Dolaylı olarak öyle. Sadece bu modda Expert Advisor, Terminal'de yalnızca Test Edicinin kendisi tarafından başlatılabilir.

 

İyi. Ve Expert Advisor'ın bir OnTick() işleyicisi varsa, o zaman ne olur, çerçeve modunda çalışmaz mı?

IMHO, burada çerçeve işleyicilerinin Terminal'in kendisi tarafından yürütüldüğünü ve test için olağan olan her şeyin (OnTick(), OnTrade(), vb.) Testing Agents'a aktarıldığını açıklığa kavuşturmak gerekir. Bu nedenle çerçeve modu, Aracıların Terminal ile etkileşimli olarak etkileşime girdiği özel bir bileşik test modudur.

Bunun gibi bir şey...


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

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2018.02.22 09:22

Dolaylı olarak öyle. Sadece bu modda Expert Advisor, Terminal'de yalnızca Test Edicinin kendisi tarafından başlatılabilir.


Neden dolaylı olarak? Örneğin, normal optimizasyon yalnızca Test Cihazında da çalıştırılabilir.

 
Dennis Kiriçenko :

İyi. Ve Expert Advisor'ın bir OnTick() işleyicisi varsa, o zaman ne olur, çerçeve modunda çalışmaz mı?

IMHO, burada çerçeve işleyicilerinin Terminal'in kendisi tarafından yürütüldüğünü ve test için olağan olan her şeyin (OnTick(), OnTrade(), vb.) Testing Agents'a aktarıldığını açıklığa kavuşturmak gerekir. Bu nedenle çerçeve modu, Aracıların Terminal ile etkileşimli olarak etkileşime girdiği özel bir bileşik test modudur.

Bunun gibi bir şey...



Neden dolaylı olarak? Örneğin, normal optimizasyon yalnızca Test Cihazında da çalıştırılabilir.

Çünkü çerçeve modunda bile bir savaş danışmanıdır. Bu nedenle OnChartEvent'te çerçeve bayrağını kontrol etmeniz gerekiyor, aksi takdirde bu tür bir sorun olabilir.

 sinput uint Range = 100 ;

#define SETRANGE(A, START, STEP, END) ParameterSetRange ( #A, true , A, START, STEP, END)

void OnTesterInit () { SETRANGE(Range, 0 , 1 , Range); }

void OnTesterDeinit () {}

void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam)
{
   static const bool IsFrame = MQLInfoInteger ( MQL_FRAME_MODE );
  
//  if (!IsFrame) // без этой проверки Терминал (не только Агент) начнет выставлять ордера на реальном счете во время запуска Оптимизации
     OrderSend ( _Symbol , OP_BUY , 1 , Ask , 100 , 0 , 0 );
}


Görünüşe göre bu ilk kez duyurulmuştu. Demek ki Market ürünleri hoş olmayan bir zafiyet yaratıyor... Üstelik bu zafiyeti atlatmak çok zor. Tespit aynı.

 
fxsaber :

Çünkü çerçeve modunda bile bir savaş danışmanıdır. Bu nedenle OnChartEvent'te çerçeve bayrağını kontrol etmeniz gerekiyor, aksi takdirde bu tür bir sorun olabilir.

Görünüşe göre bu ilk kez duyurulmuştu. Demek ki Market ürünleri hoş olmayan bir zafiyet yaratıyor... Üstelik bu zafiyeti atlatmak çok zor. Tespit aynı.

Yine de! Öyleyse, IMHO, bu, Test modunda Uzman Danışmanın yanlış bir çalışmasıdır ...

Sen fark etmek için harika bir adamsın!

 

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

Hatalar, hatalar, sorular

fxsaber , 2018.02.27 08:01

OBJ_CHART'ta Uzman Danışmanlar hakkında sonuç

  • OnInit, OnDeinit, global yapıcı/yıkıcı ve OnChartEvent çalışması.
  • OnTimer, OnTick ve OnBookEvent çalışmıyor.
  • Olaylardan yalnızca CHARTEVENT_CHART_CHANGE ve özel olanları yakalar.
  • Uzman Danışmanın OnChartEvent+EventChartCustom aracılığıyla OnTimer ve OnTick için "olaylar" oluşturulabilir , ancak OnBookEvent oluşturulamaz.

Bu nedenle, herhangi bir grafik türünde (OnTimer + OnTick) çalışması için uygun içermeyi ( örnek ) bağlayarak herhangi bir ticaret danışmanını tam teşekküllü bir danışman yapmak mümkündür.

ZY OBJ_CHART, CHART_IS_OBJECT aracılığıyla tanımlanır.

 

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

"Kontrollü optimizasyon: tavlama yöntemi" makalesinin tartışılması

fxsaber , 2018.02.28 08:45

tester_file, yalnızca derleme zamanında mevcutsa (içerik önemli değil) okunur.

Karşılık gelen bir dosya olmadığında mq5 derlendiyse, EX5'te daha fazla varlığı bile algılanmayacaktır.

Bu nedenle, OnTesterInit'te tester_file için bir dosya oluşturursanız, en azından boş bir aktarılmış dosyanız varsa Expert Advisor'ı derlediğinizden emin olun.

tester_file yönergesi varsa, Optimize Edici önbellekleri çalışmaz.

 
Ve Files_Common klasöründeki dosyaları tester_file ile ekleyemezsiniz...