EA birden çok çift için nasıl çalıştırılır?

 
Merhaba
Forex ve MetaTrader'da yeniyim ve bazı temel bilgileri bulmaya çalışıyorum.
EURUSD grafiğine eklenmiş bir EA'ya sahip olduğunu varsayarsak, AMA bu EA'dan birden fazla çiftte kurulum bulmak istiyorum. Ancak EA, yalnızca EURUSD için yeni onay geldiğinde çalışır. Doğru? Şimdi bunu MT'nin sınırlayıcı özelliği olarak görüyorum çünkü EA'm birçok çift için işleyebilir, ancak yalnızca eklenen çiftin yeni işaretiyle başlar (bu durumda EURUSD). Bu muhtemelen, eklenmemiş çiftlerin kaçırılmış keneleriyle sonuçlanır. Dolayısıyla aşağıdaki soru--

EA, bir tabloya eklemeden birden fazla çift için çalışabilir mi? Değilse, yukarıdaki sorun için geçici çözüm nedir? Tavsiye lütfen.

teşekkürler
Pankaj
 

Bu sadece mt4'ün çalışma şeklidir. Bunun için bir çalışma olmadığını düşünüyorum. Ama şu an aklıma şu geldi. Yeni mumdan en az 1-2 dakika önce EURUSD işareti alırsanız (diyelim ki H1 mumu), diğer çiftlerde yeni mumlar aramak için while döngüsüne girebilirsiniz. Bu durumda, EURUSD için yeni kene 5 dakika veya daha fazla bir süre için bile gelmezse, while döngüsü zaten çalışıyor ve diğer çiftlerde tüm yeni mumları alırsınız. Umarım bunu anlarsın.

Ama soru şu ki, buna neden ihtiyacınız var? EURUSD üzerinde çalışan EA başka bir çift üzerinde işlem gerçekleştiremeyeceğinden, EA'yı farklı grafiklerde çalıştırmak daha iyidir.

 

Merhaba,

Hala gerçek zamanlı işlemede çalıştığımızı aklımda tutmayı tercih ediyorum, bu yüzden eli iletişimde tutmak için while döngüsü veya bekleme işlevini kullanmayı unutuyorum!

EA'nızı EURUSD gibi bir çifte eklemek, size diğer tüm çiftleri yönetmek için yeterli sinyal sağlar, keneler çok sık görülür. Bu bir dakika değil, saniye meselesi (2 dakika boyunca bir döngü çalıştırmak bana gerçekten çılgınca geliyor). Bu bir saniye meselesi değilse, sadece nedenini düşünün veya başka bir komisyoncu ile görün.

EA'nızı eurusd'a eklerken elde edebileceğinizden daha fazlasına gerçekten ihtiyacınız varsa, EA'nızın her bir para birimine eklenmiş ayrı bir örneğini çalıştırmayı düşünün. Üzgünüm ama "veya sisteminizi yeniden düşünme" eğilimindeyim.

Bu yazının biraz ani olduğunu düşünüyorsanız özür dilerim. Sizlerle benim bakış açımı paylaşmak istedim.

İyi şanlar.

 
wrm :

EURUSD üzerinde çalışan EA başka bir çift üzerinde işlem gerçekleştiremeyeceğinden, EA'yı farklı grafiklerde çalıştırmak daha iyidir.

Bu doğru değil. OrderSend() fonksiyonu , çizelgeden bağımsız olarak ilk parametre olarak belirttiğiniz herhangi bir sembol için çalıştırılabilir.

Ayrıca MarketInfo() işlevini kullanarak mevcut grafiğin dışındaki semboller için en son talep ve teklif fiyatlarını alabilirsiniz.

Yani aşağıdaki gibi seçenekleriniz var.

- Aynı EA'nın birçok çizelgeye eklenmesini ve her grafiğin yerel sembolü için çalışmasını sağlayın (yerleşik Ask ve Bid değişkenlerini kullanarak)

- Seçilen tüm semboller için (yerel olmayan semboller için MarketInfo() işleviyle) çalışan belirli bir çizelgeye bir EA iliştirin - yalnızca yerel sembol işaretlerini bir tetikleme cihazı olarak kullanın

- Birinin diğeri tarafından tetiklendiği farklı çizelgelere eklenmiş ana ve bağımlı EA'lara sahip olun (örn. biri bir dosyaya bir değer yazar, diğeri bu verileri bulana kadar dosyayı sürekli okur ve ardından işlem yapar)

 
cloudbreaker :

Bu doğru değil. OrderSend() fonksiyonu, çizelgeden bağımsız olarak ilk parametre olarak belirttiğiniz herhangi bir sembol için çalıştırılabilir.

Ayrıca MarketInfo() işlevini kullanarak mevcut grafiğin dışındaki semboller için en son talep ve teklif fiyatlarını alabilirsiniz.

Yani aşağıdaki gibi seçenekleriniz var.

- Aynı EA'nın birçok çizelgeye eklenmesini ve her grafiğin yerel sembolü için çalışmasını sağlayın (yerleşik Ask ve Bid değişkenlerini kullanarak)

- Seçilen tüm semboller için (yerel olmayan semboller için MarketInfo() işleviyle) çalışan belirli bir çizelgeye bir EA iliştirin - yalnızca yerel sembol işaretlerini bir tetikleme cihazı olarak kullanın

- Birinin diğeri tarafından tetiklendiği farklı çizelgelere eklenmiş ana ve bağımlı EA'lara sahip olun (örn. biri bir dosyaya bir değer yazar, diğeri bu verileri bulana kadar dosyayı sürekli okur ve ardından işlem yapar)


Çok anlayışlı. Herkese teşekkürler. Daha önce düşündüğümle örtüştüğü için 2. seçeneğe gideceğim.


wrm: İşleri olabildiğince az tutmak istiyorum. Teknik olarak mümkünse, o zaman sadece bir EA tutacağım. EA'yı ayrı tutmanın tek nedeni, ihtiyacım olmayan grafiği çizmem gerekmesidir.


Tabii ki, EA geldiğinde test edeceğim. İstediğim gibi çalışmıyorsa değiştireceğim.

 
//+------------------------------------------------------------------+
//|                                                          jkh.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

bool wannaBuy = true ;
bool wannaBuy1 = true ;
extern double LotSize = 0.01 ;
extern string symbol1 = "EURUSD" ;
extern string symbol2 = "USDCHF" ;
extern int MaxDifference = 6 ;
extern int Slippage = 3 ;
extern int Magicnumber1 = 786 ;
extern int Magicnumber2 = 123 ;
int sendticket = 3 ;
string pairs [ 18 ] ;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init ( )
  {
//----
pairs [ 0 ] = symbol1 ;
pairs [ 1 ] = symbol2 ;
wannaBuy = true ;
wannaBuy1 = true ;

//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit ( )
  {
//----
   
//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start ( )
  {
//----
   // Send order for EURUSD & USDCHF
   if ( wannaBuy ) {   
   int ticket1 ;
   RefreshRates ( ) ;
   ticket1 = OrderSend ( symbol1 , OP_BUY , LotSize , MarketInfo ( symbol1 , MODE_ASK ) , Slippage , 0 , 0 , 0 , 0 , Magicnumber1 , 0 ) & OrderSend ( symbol2 , OP_BUY , LotSize , MarketInfo ( symbol2 , MODE_ASK ) , Slippage , 0 , 0 , 0 , 0 , Magicnumber2 , 0 ) ;
   if ( ticket1 < 0 )
   {
   Print ( "OrderSend failed with error #" , GetLastError ( ) ) ;
   return ( 0 ) ;
   }
   wannaBuy = false ;
   }

//----
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
İşte EURUSD ve USDCHF'yi tek bir grafikte açmak için basit bir kod. Ea bile başka bir grafiğe eklenir, böylece EURUSD ve USDCHF açılır.
 
tigersoft :
İşte EURUSD ve USDCHF'yi tek bir grafikte açmak için basit bir kod. Ea bile başka bir grafiğe eklenir, böylece EURUSD ve USDCHF açılır.

Oldukça temiz. Teşekkürler Tigersoft

 
cloudbreaker :

Bu doğru değil. OrderSend() fonksiyonu, çizelgeden bağımsız olarak ilk parametre olarak belirttiğiniz herhangi bir sembol için çalıştırılabilir.

Ayrıca MarketInfo() işlevini kullanarak mevcut grafiğin dışındaki semboller için en son talep ve teklif fiyatlarını alabilirsiniz.

Yani aşağıdaki gibi seçenekleriniz var.

- Aynı EA'nın birçok çizelgeye eklenmesini ve her grafiğin yerel sembolü için çalışmasını sağlayın (yerleşik Ask ve Bid değişkenlerini kullanarak)

- Seçilen tüm semboller için (yerel olmayan semboller için MarketInfo() işleviyle) çalışan belirli bir çizelgeye bir EA iliştirin - yalnızca yerel sembol işaretlerini bir tetikleme cihazı olarak kullanın

- Birinin diğeri tarafından tetiklendiği farklı çizelgelere eklenmiş ana ve bağımlı EA'lara sahip olun (örn. biri bir dosyaya bir değer yazar, diğeri bu verileri bulana kadar dosyayı sürekli okur ve ardından işlem yapar)


Merhaba, 3. seçeneği detaylandırır mısınız?


Ayrıca, 2 numaralı seçeneği kullanarak yerel olmayan sembollerle fiyat/gösterge hesaplamaları nasıl çalışır? Yerel olmayan sembollere sipariş göndermeyi anlıyorum, ancak yerel olmayan sembollerde giriş koşullarını nasıl kontrol edeceğimi bilmiyorum.

 
skyhr :

Merhaba, 3. seçeneği detaylandırır mısınız?


Ayrıca, 2 numaralı seçeneği kullanarak yerel olmayan sembollerle fiyat/gösterge hesaplamaları nasıl çalışır? Yerel olmayan sembollere sipariş göndermeyi anlıyorum, ancak yerel olmayan sembollerde giriş koşullarını nasıl kontrol edeceğimi bilmiyorum.

Yerel olmayan semboller için MarketInfo() işlevini kullanın. bu bir arkadaş :)

 
skyhr :

Merhaba, 3. seçeneği detaylandırabilir misiniz?


Ayrıca, 2 numaralı seçeneği kullanarak yerel olmayan sembollerle fiyat/gösterge hesaplamaları nasıl çalışır? Yerel olmayan sembollere sipariş göndermeyi anlıyorum, ancak yerel olmayan sembollerde giriş koşullarını nasıl kontrol edeceğimi bilmiyorum.

Seçenek 3 - belirli bir sembolü izleyen bir EA'dan bir dosyaya basitçe bir değer yazın. Başka bir EA'nın bu dosyayı izlemesini ve bu değer mevcut olduğunda belirli bir mantık parçasını yürütmesini sağlayın.

Seçenek 2 - Yalnızca yerel sembol için iyi olan Ask ve Bid değişkenlerini kullanmak yerine, yerel olmayan semboller için satış ve teklif fiyatlarını almak için MarketInfo() işlevini kullanın.

 
cloudbreaker :

Seçenek 3 - belirli bir sembolü izleyen bir EA'dan bir dosyaya basitçe bir değer yazın. Başka bir EA'nın bu dosyayı izlemesini ve bu değer mevcut olduğunda belirli bir mantık parçasını yürütmesini sağlayın.

Seçenek 2 - Yalnızca yerel sembol için iyi olan Ask ve Bid değişkenlerini kullanmak yerine, yerel olmayan semboller için satış ve teklif fiyatlarını almak için MarketInfo() işlevini kullanın.

Bence her iki yaklaşım da iyi.

Eklemek istediğim tek şey, 2. seçeneğin daha az ek yük nedeniyle performans değerine sahip olmasıdır. Her şey, açıkça dosya işleminden daha hızlı olan bellekte olacaktır.

Seçenek #3'ün bir avantajı, dosya verilerini MT4'ün yapamayacağı bir şey için kullanmak istemenizdir.

Neden: