Kütüphaneler: Uzman - sayfa 8

 
Stanislav Korotky:

Hala anlamıyorum, Expert.mqh.tpl sabit adı neden onları ortaya çıkaran programın adını taşıyan şablonlardan daha "pratik" (pratik?)? Diyelim ki bibla kullanan bir A.mq5 ve B.mq5 programı var. Eğer kendi adlarıyla şablonlar oluştursalardı, ilk olarak, birinin diğerinin üzerine yazılması yerine _her_ programın eylemlerinin son "parmak izine" sahip olmak daha pratik olurdu. İkinci olarak, üretenin kim olduğunu isminden hemen anlayabilirdiniz (özellikle programlar yabancıysa kullanışlıdır). Şimdi Expert.mqh.tpl dosyasının içine girene kadar bunu söyleyemezsiniz. Verdiğim evrensel çözüm, MQL-programı+zaman damgası+rastgele adını almaktır. Ve dosyayı sync=true olarak bırakmaya gerek görmüyorum. Her şeyin uzun zaman önce test edildiğini ve hata ayıklandığını düşünüyorum. Hata olması ve hata ayıklama ihtiyacı olması durumunda sync=false seçeneği vardır. O zaman dosya bırakılmalıdır. Bence her şey mantıklı. Ve düzenlemeler basit.

Birisi bibliyoyu birkaç programda paralel olarak kullanmadığı sürece, pratikte çarpışmanın nadiren meydana gelebileceğine katılıyorum. Bende yok, ancak koda hızlıca bir göz attım ve gözüm Files klasöründeki Expert.mqh.tpl dosyasına takıldı. Her şey tamamen bana göre.

Dosyaları silmek istemedim, bu yüzden pratikte işin güvenilirliğini göz önünde bulundurarak ortak bir adın yeterli olduğunu düşündüm.

Dosyalar klasöründe tpl dosyalarından oluşan bir hayvanat bahçesi görmek istemedim. Bir şeyi bilerek silmek için - benzer şekilde. Sadece burayı sildim.

Возможность вызова DLL в Маркет-продуктах.
Возможность вызова DLL в Маркет-продуктах.
  • 2019.07.20
  • www.mql5.com
Возможно написание EX5 с вызовом DLL, который пройдет все проверки Маркета и будет там опубликован.В прицепе такой EX5-скрипт. Он запускает указанные приложения/документы.В прицепе еще один вариант
 
Vitaly Muzichenko:

Bir Uzman Danışmanı .ex4 formatında farklı bir isme sahip bir Uzman Danışmana bağlayarak çalıştırmak nasıl mümkündür ve giriş parametrelerini görüntülemek, yani onunla tam olarak çalışabilmek gerekir.

"Trade.ex4" adıyla derlenmiş bir Uzman Danışmanımız var.

"Hand.ex4" adıyla yeni bir Uzman Danışman oluşturun.

"Hand.ex4" başlatıldığında, "Trade.ex4" tamamen çalışacak ve "Trade.ex4" "Hand.ex4" içine gömülecek şekilde bunları nasıl birleştirebilirim?

Yani, makinede sadece Hand.ex4 dosyamız var, ancak işte Trade.ex4 kullanıyoruz

Teşekkür ederim!

Bir çözüm buldunuz mu?

 
Vitaly Muzichenko:

"Hand.ex4" başlatıldığında, "Trade.ex4" tamamen işlevsel olacak ve "Trade.ex4" "Hand.ex4" içine gömülecek şekilde nasıl birleştirilir

Yani, makinede sadece Hand.ex4 dosyamız var, ancak işte Trade.ex4 kullanıyoruz

Göstergelerle çalışmalıdır. Uzman Danışmanların diğer Uzman Danışmanlara dikilmediği görülüyor.

 
fxsaber:

Göstergelerle çalışmalıdır. Uzman Danışmanların diğer Uzman Danışmanlara dikilmediği görülüyor.

Evet, Uzman Danışman gömülemedi, çözüm bulunamadı

 
Teşekkürler çocuklar!
 
Vitaly Muzichenko:

Evet, danışman dikilemedi, çözüm bulunamadı

Büyük olasılıkla bir çözüm var ve görünüşe göre burada bir kez varyantlardan birinde kullanmışım. Ama nasıl yaptığımı tamamen unuttum.

Возможность вызова DLL в Маркет-продуктах.
Возможность вызова DLL в Маркет-продуктах.
  • 2019.07.20
  • www.mql5.com
Возможно написание EX5 с вызовом DLL, который пройдет все проверки Маркета и будет там опубликован.В прицепе такой EX5-скрипт. Он запускает указанные приложения/документы.В прицепе еще один вариант
 
fxsaber:

Muhtemelen bir çözümü vardır ve bunu burada bir kez varyantlardan birinde kullanmış gibiyim. Ama dalgınlıkla nasıl yaptığımı unuttum.

İşte ben denediğimde tek bir yol bulamadım. 4 içindi, 5'te denemedim.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi üzerine forum

mql5 dilinin özellikleri, incelikleri ve çalışma teknikleri

fxsaber, 2020.05.21 09:13

#include <fxsaber\Expert.mqh> // https://www.mql5.com/tr/code/19003

// Hesap değişikliğinden sonra sembol yoksa kendini boşaltır.
void OnDeinit( const int Reason )
{
  if (Reason == REASON_ACCOUNT)
  {
    MqlTick Tick;
    
    if (!SymbolInfoInteger(_Symbol, SYMBOL_CUSTOM) && !SymbolInfoTick(_Symbol, Tick))
    {
      Alert("Account is changed!");
      
      if (EXPERT::Remove())
        Alert("Expert is removed!");
      
      // ExpertRemove(); // Bu yardımcı olmayacaktır.
      // ChartClose(); // En iyi çözüm değil.
    }
// else
      // Özel ve diğer durumlar için kodu aşağıdaki çözümle genişletin.
      // https://www.mql5.com/ru/forum/170952/page175#comment_16365819 
  }  
}
 
fxsaber:
Harika kütüphane! EA açılışını böyle bir şekilde uygulamayı düşünmezdim. Bana dll kullanmadan mql kullanarak aktif bir grafiği nasıl tanımlayacağımı söyleyebilir misiniz? Winapi üzerinde biraz çalıştım, ancak çok hantal olduğu ortaya çıktı:
long                          Agent::ChartGetActiveID()
  {
   static long                terminal_wnd = ChartGetInteger(0,CHART_IS_DOCKED) ?
                              GetAncestor(ChartGetInteger(0, CHART_WINDOW_HANDLE), 2) :
                              GetParent(GetAncestor(ChartGetInteger(0, CHART_WINDOW_HANDLE), 2));

   static uint                process_id = 0;
   static uint                thread_id = GetWindowThreadProcessId(terminal_wnd, process_id);
   static long                mdi_wnd = GetDlgItem(terminal_wnd, 0xE900);
   static GUITHREADINFO       thread_info;


   thread_info.cbSize = sizeof(GUITHREADINFO);
   if(!GetGUIThreadInfo(thread_id, thread_info))
      return -1;

   long wnd_on_focus = 0, chart_id = -1;
   if(GetDlgItem(thread_info.hwndActive, 0xE900)== mdi_wnd)
      wnd_on_focus = GetWindow(SendMessageW(mdi_wnd, 0x0229, 0, 0), 5);
   else
      wnd_on_focus = GetWindow(thread_info.hwndActive, 5);

   for(long ch_id = ChartFirst(); ch_id != -1; ch_id = ChartNext(ch_id))
      if(ChartGetInteger(ch_id, CHART_WINDOW_HANDLE)==wnd_on_focus)
        {
         chart_id = ch_id;
         break;
        }
   return chart_id;
  }

Belki bu durumu mql üzerinde veya en azından dll ile nasıl uygulayacağınızı biliyorsunuzdur, ancak daha basit?

 
vek_y4icb:
dll kullanmadan mql araçlarını kullanarak aktif bir grafik nasıl tanımlanır.

Tam olarak hatırlamıyorum. Sanırım bu sorun çözülmüştü. Belki bir arama yardımcı olabilir.