1 EA, birden fazla döviz çiftini tek bir grafikten izleyebilir ve takas edebilir mi? - sayfa 2

 
angevoyageur :

Sorusuna cevap vermek istemiyorsan cevap verme, bu basit. İnsanları rencide etmeye gerek yok.

Ve inan bana, benim için de mevcut, eğer göndermek istediğim her şeyi yayınladıysam , en azından 1000 puan daha var .



biraz araştırma yapmış ve Kod Tabanına bakmış olsaydı, örneğin https://www.mql5.com/en/code/11176 bulmuştu.

ve bunun gibi daha fazla örnek bulabilirsiniz, şimdi sorduğu şekilde bana bakıyor ve sanırım başkalarına

kodlamayı öğrenmek için yeterince çalışmadığını ve bir EA farklı sembolün nasıl takas edileceğine dair örnekler almak için başkalarından kod almak istediğini söyledi.

kendisi hiçbir girişimde bulunmadan...

CodeMonkey'in xennon'a yazdığı gibi

'Buradaki sorun, bunun yapılamaması değil, denemeye ve yapmaya zahmet etmemiş olmanızdır. '

.

xennon sevmediği bu cevapları veriyorsa, o zaman bu onun da yanlış tepki verme şeklidir.

durumu anladığınızı düşünüyorum, benim gördüğüm gibi...

 
deVries :


biraz araştırma yapmış ve Kod Tabanına bakmış olsaydı, örneğin https://www.mql5.com/en/code/11176 bulmuştu.

ve bunun gibi daha fazla örnek bulabilirsiniz, şimdi sorduğu şekilde bana bakıyor ve sanırım başkalarına

kodlamayı öğrenmek için yeterince çalışmadığını ve bir EA farklı sembolün nasıl takas edileceğine dair örnekler almak için başkalarından kod almak istediğini söyledi.

kendisi hiçbir girişimde bulunmadan...

CodeMonkey'in xennon'a yazdığı gibi

'Buradaki sorun, bunun yapılamaması değil, denemeye ve yapmaya zahmet etmemiş olmanızdır. '

.

xennon sevmediği bu cevapları veriyorsa, o zaman bu onun da yanlış tepki verme şeklidir.

Durumu anladığınızı düşünüyorum, benim gördüğüm gibi...

Tabii ki katılıyorum.

Ancak, birisi yanıt verirse, OP'yi (veya başka herhangi bir kullanıcıyı) rahatsız etmeye gerek olmadığını da kabul ediyorum. Bence bu forumun daha iyi bir atmosfere ihtiyacı var.

 
deVries :

xennon : Ocak 2012'den itibaren kayıtlıdır ve şimdi buraya bu Soruyla mı geliyor?

bana göre okuyarak ve öğrenerek biraz araştırma yapmanın zamanı geldi

eğer o EA'yı yapmak istiyorsa, bunu yaparken sorun yaşarsa, girişimiyle gelmelidir.

mümkün .... 2 yıldan fazla bir süre sonra artık kesin olarak biliyor


Evet 2 yıl ne olmuş?! MQL'de aktif olarak uğraştığım anlamına gelmez, değil mi? - aslında MQL ile olan toplu deneyimim muhtemelen bir aydan az, TOPLAM. Ya olumlu ve faydalı bir şeye katkıda bulunmanızı öneririm ya da xxxx. Ne kadar aptalca ve aptalca bir açıklama yapmak.
 
xennon :

Evet 2 yıl ne olmuş?! MQL'de aktif olarak uğraştığım anlamına gelmez, değil mi? - aslında MQL ile olan toplu deneyimim muhtemelen bir aydan az, TOPLAM. Ya olumlu ve faydalı bir şeye katkıda bulunmanızı öneririm ya da xxx. Ne kadar aptalca ve aptalca bir açıklama yapmak.

Dilinize dikkat etmenizi zaten tavsiye ediyorum. Bu benim son uyarım.

Teşekkür ederim.

 
xennon :

Evet 2 yıl ne olmuş?! MQL'de aktif olarak uğraştığım anlamına gelmez, değil mi? - aslında MQL ile olan toplu deneyimim muhtemelen bir aydan az, TOPLAM. Ya olumlu ve faydalı bir şeye katkıda bulunmanızı ya da xxxx'i öneririm. Ne kadar aptalca ve aptalca bir açıklama yapmak.


işaret ettiğim kod tabanından örnek ???? https://www.mql5.com/en/forum/149766/page2#915892

 
xennon :

Merak ediyorum, herhangi bir döviz çiftinde çalışan tek bir EA'nın mümkün olup olmadığını, ancak birden fazla döviz çiftini izlemesini ve her bir çiftte ortaya çıktıkça tetikleyicilere yanıt vermesini sağlayın.

Esasen, tüm ilgili çiftleri yoklayacak, her biri için önceden yapılandırılmış kriterleri test edecek ve gerektiği gibi satın alma/satma/kapatma/uyarılarla yanıt verecek bir EA istiyorum.

Bunun yapılamayacağından şüpheleniyorum, ancak çok fazla çizelge açmak zorunda kalmadan ve EA'yı her bir çizelgeye ayrı ayrı esas olarak verimlilik adına uygulamak zorunda kalmadan bunu nasıl başaracağına dair herhangi bir fikri olan varsa duymak isterim. Bir düzine yerine 1 kod bloğu?)


Teşekkür.


Param, semboller için bir dizi dizisinde olacak ve daha sonra tüm ilgilenilen semboller için bir döngüye girecekti.

Gibi bir şey

 string nameArray[]={ "EURUSD" , "..." , "USDJPY" };

o zamanlar

 for (x=numberOfSymbols;x>= 0 ;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon :

Merak ediyorum, herhangi bir döviz çiftinde çalışan tek bir EA'nın mümkün olup olmadığını, ancak birden fazla döviz çiftini izlemesini ve her bir çiftte ortaya çıktıkça tetikleyicilere yanıt vermesini sağlayın.

Esasen, tüm ilgili çiftleri yoklayacak, her biri için önceden yapılandırılmış kriterleri test edecek ve gerektiği gibi satın alma/satma/kapatma/uyarılarla yanıt verecek bir EA istiyorum.

Bunun yapılamayacağından şüpheleniyorum, ancak çok fazla çizelge açmak zorunda kalmadan ve EA'yı her bir çizelgeye ayrı ayrı esas olarak verimlilik adına uygulamak zorunda kalmadan bunu nasıl başaracağına dair herhangi bir fikri olan varsa duymak isterim. Bir düzine yerine 1 kod bloğu?)


Teşekkür.

merhaba xennon,

Sorunuzun kısa cevabı evet.

Benzer bir şey yapmayı düşündüm ama henüz herhangi bir şey kodlamaya başlamadım, bu yüzden size kodu nasıl yapılandıracağımın temel taslağını vereceğim, ancak her birinin nasıl kodlanacağını araştırırsanız muhtemelen daha iyi olacağı için ayrıntıları vermeyeceğim. kendinizi ayırın ve kod tabanına ve diğer kaynaklara bir öğrenme alıştırması olarak kodlama örnekleri olarak atıfta bulunun, çünkü bu, gelecekteki kod yazarken, yalnızca örneklerden kod kopyalayıp bir çözümü birbirine yapıştırmaktan daha fazla yardımcı olacaktır, ayrıca neler olduğunu ve nedenini gerçekten anlamadan bir çözüm yapıştırın. kod hatalarının ayıklanmasına yardımcı olacaktır. Bazı terminolojileri takip etmek zor olabileceğinden, kodlamaya aşina değilseniz kod tabanı kafa karıştırıcı olabilir.

Ayrıca, fikrim henüz test edilmediği veya uygulanmadığı için, onu kodlamanın daha iyi yolları veya uzun süredir bir ana kodlayıcı olmadığım ve genel olarak oldukça paslı olduğum için öngörmediğim hatalar olabilir, bu nedenle herhangi birinin herhangi bir önerisi varsa Ben kulaklarım ve eğer hatalar varsa lütfen beni vurmayın.

Genel fikir, OnTick olayı yalnızca eklendiği grafik için çalışacağı için milisaniye zamanlayıcı olayını kullanmaktır, bu nedenle diğer döviz çiftleri için keneler bir onay olayı oluşturmaz ve EA çalışmaz, ancak milisaniye olay zamanlayıcı tetikleyebilir saniyede birden çok kez ve fiyat değişikliklerini izleyin. Ayrıca, biri kullanmak istediğiniz sembollerin dizilerini depolamak için ve diğeri fiyat verilerini depolamak için olmak üzere üç dizi kullanın.

Biraz açıklamaya çalışacağım. nameArray dizisi, her sembolü bir dizi olarak saklar, ancak daha da önemlisi, dizinin öğesi diğer iki dizinin konumunu ayarlamak için kullanılabilir, çünkü dizideki bir konumu bulmak için bir dize kullanamazlar, ancak dizin değeri yapabilir. Her sembol için işaretler farklı zamanlarda alındığından, PriceArray'e yazılan verilerin tümü aynı anda olmayacaktır, çünkü bazı semboller farklı zamanlarda daha aktiftir, bu nedenle ikinci dizi, PriceData dizisi için indeksi depolar, böylece yazılabilir. geçmiş fiyat verilerinin üzerine yazmadan hızlı bir şekilde. Üçüncü dizi, ihtiyacınız olan gerekli fiyat verilerini yazacaktır.

Kod, eklenmesi gerekenlerle birlikte bir kod ve ingilizce birleşimidir. Çok basittir ancak fikriniz için size bir başlangıç noktası sağlamalıdır. Sona ulaştıklarında dizilerle ne zaman başa çıkılacağı gibi sayısız boşluk var ama bunların hepsi öğrenme eğrisinin bir parçası. Kodun herhangi bir hatayı ayıklamanıza ve düzeltmenize izin vermek için kodun bir sembol ve ardından iki ile çalışmasını öneriyorum. Dediğim gibi, bu sadece kaba bir taslak, bu yüzden onu olduğu gibi kullanın ve iyileştirmeler mümkündür, örneğin, kene verilerini depolamak için üç dizi yerine bir Struct veri türü veya bir nesne kullanabilirsiniz, ancak bu tasarım biraz başlamak daha kolaydır ve daha sonraki bir kodlama aşamasında Yapılar ve Nesne Yönelimli programlamaya bakabilirsiniz.

Açık olmaya çalıştım ama bu sizin için çok kafa karıştırıcı olabilir, bu yüzden netlikle ilgili başka sorularınız varsa bana bildirin ve elimden geldiğince yardımcı olacağım ama ne yazık ki böyle bir şeyi kodlamak için zamanım yok.

İşte sözde kod,

 // OnInit ()
    {
     string nameArray[]={ "EURUSD" , "..." , "USDJPY" };                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [ # of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [ # of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x= 0 ; x < # of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][ 0 ][ 0 ] = Ask ;
            PriceData [x][ 0 ][ 0 ] = Bid ;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x= 0 ; x < # of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
             if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                     // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][ 0 ] = Ask ;
                 PriceData [x][TicksRecorded[x]][ 1 ] = Bid ;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

Ben sadece Global Değişkenleri tek bir grafikten takip etmek/işlem yapmak için kullanıyorum.

Her ne kadar ea'nızı biraz daha sağlam hale getirmeniz gerekiyor ve tek bir çizelgeye özgü değil.

 

Aşağıdakiler neden çalışmaz?


Eğer bu doğruysa){

bilet=OrderSend("GBPUSD",OP_SELL,lot,Teklif,0,0,0,"",0,0,Kırmızı);

bilet=OrderSend("GBPJPY",OP_BUY,lot,Sor,0,0,0,"",0,0,Yeşil);

bilet=OrderSend("USDJPY",OP_BUY,lot,Sor,0,0,0,"",0,0,Yeşil);

}


4106 sembolü bilinmiyor

 
Daniel Laverdiere : Aşağıdakiler neden işe yaramaz?

Eğer bu doğruysa){

bilet=OrderSend("GBPUSD",OP_SELL,lot, Bid ,0,0,0,"",0,0,Kırmızı);

bilet=OrderSend("GBPJPY",OP_BUY,lot, Sor ,0,0,0,"",0,0,Yeşil);

bilet=OrderSend(" USDJPY ",OP_BUY,lot, Sor ,0,0,0,"",0,0,Yeşil);

}


4106 sembolü bilinmiyor

  1. Kodu gönderirken lütfen SRC düğmesini kullanın!

  2. Grafiklerinizin adlandırma düzeni tam olarak " BasQuo " değilse, çalışmaz.

  3. Bir EA'da birden fazla para birimi ticareti yapmayın.
Neden: