Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 132

 
uncleVic :

1111 000000000000 11111111 b => 31457535 (ondalık)

00 ila 07 saat arasında ticaret yasağı

08 ila 20 saat arasında işlem yapma izni

21 ila 23 saat arasında ticaret yasağı

teşekkürler
 

Muhtemelen, bu bir çaydanlık sorusu, mql5 sözdiziminde hala yetersiz bilgim var (ancak, diğer her şeyde olduğu gibi). Söyleyin bana, bir işlev birden fazla değer veya bir dizi veya başka bir yapı döndürebilir mi?

Peki gibi bir şey:

int testfunc(int x, int Y)

{

  z = x + y;

  n =  x * y;

  return(z, n);

}

test = testfunc(5,10);

Print(test.x,test.y);

 
Lone_Irbis :

Muhtemelen, bu bir çaydanlık sorusu, mql5 sözdiziminde hala yetersiz bilgim var (ancak, diğer her şeyde olduğu gibi). Söyleyin bana, bir işlev birden fazla değer veya bir dizi veya başka bir yapı döndürebilir mi?

Hayır, bir dizi global olarak tanımlanabilir ve değerleri bir fonksiyonda değiştirilebilir.
 
zfs :
Hayır, bir dizi global olarak tanımlanabilir ve değerleri bir fonksiyonda değiştirilebilir.
Teşekkürler deneyeceğim)
 

Söyleyin lütfen sinyal aboneliğimi iptal ettim ve bir gün sonra bu sinyale tekrar abone oldum, aboneliklerde sinyal aktif ve ayarlarda aboneliğe izin vermek için kutucuğu işaretledikten sonra tamam ve ayarları tekrar açıyorsunuz onay işareti yok Biri bana ne yapacağımı söyleyebilir mi Sinyal sağlayıcı yeni siparişler açar ve sessizliğim olur.

 
Lone_Irbis :

Muhtemelen, bu bir çaydanlık sorusu, mql5 sözdiziminde hala yetersiz bilgim var (ancak, diğer her şeyde olduğu gibi). Söyleyin bana, bir işlev birden fazla değer veya bir dizi veya başka bir yapı döndürebilir mi?

Peki gibi bir şey:

İşlevlerden basit (sınıf nesneleri, dizeler ve dinamik diziler içermeyen) yapılar döndürülebilir.

 

Teşekkürler, fonksiyonları diziler olmadan sıralamayı başardık - sadece önceden bildirilmiş bir değeri olmayan global değişkenler aracılığıyla (her zamanki gibi tabut yeni açıldı).

Ancak yeni, muhtemelen daha az tipik bir soru var: mql5'in strateji test cihazını yönetmek için her türlü yerleşik özelliğe sahip olduğunu biliyorum. Ama hiçbir şekilde bulamıyorum, optimizasyon sonuçlarını önceden hazırlanmış bir şekilde işlemek için teknik yetenek veren var mı? Diyelim ki filanca aralığında olan X hariç tüm parametre değerleri ortak olan tüm sonuçlar arasında ortalama kâr değerini buluyoruz.

Yoksa sadece Excel'de kalemlerle mi mümkün? Excel'de tüm bunlar nasıl yapılır, eğer öyleyse biliyorum. Sadece küçük bir çalışma için bir fikir var (tamamen kendim için, ilgi dışı), bunun için bütün bir masa dağını çok rutin ve aynı şekilde küreklemeniz gerekecek, ancak bir şekilde otomatikleştirmek istiyorsunuz ...

 
Lone_Irbis :

Teşekkürler, fonksiyonları diziler olmadan sıralamayı başardık - sadece önceden bildirilmiş bir değeri olmayan global değişkenler aracılığıyla (her zamanki gibi tabut yeni açıldı).

Ancak yeni, muhtemelen daha az tipik bir soru var: mql5'in strateji test cihazını yönetmek için her türlü yerleşik özelliğe sahip olduğunu biliyorum. Ama hiçbir şekilde bulamıyorum, optimizasyon sonuçlarını önceden hazırlanmış bir şekilde işlemek için teknik yetenek veren var mı? Diyelim ki filanca aralığında olan X hariç tüm parametre değerleri ortak olan tüm sonuçlar arasında ortalama kâr değerini buluyoruz.

Yoksa sadece Excel'de mi mümkün? Excel'de tüm bunlar nasıl yapılır, eğer öyleyse biliyorum. Sadece küçük bir çalışma için bir fikir var (tamamen kendim için, ilgi dışı), bunun için bütün bir masa dağını çok rutin ve aynı şekilde küreklemeniz gerekecek, ancak bir şekilde otomatikleştirmek istiyorsunuz ...

Burayı okuyun: https://www.mql5.com/ru/docs/optimization_frames


Ve sonra kullanım örnekleri için forumda arama yapın.

Документация по MQL5: Работа с результатами оптимизации
Документация по MQL5: Работа с результатами оптимизации
  • www.mql5.com
Работа с результатами оптимизации - Документация по MQL5
 
MetaDriver :

Burayı okuyun: https://www.mql5.com/ru/docs/optimization_frames


Ve sonra kullanım örnekleri için forumda arama yapın.

Evet, buna birkaç kez rastladım ve bunun gibi örnekler. Ama nedense tam olarak aradığım şey bu değilmiş gibi görünüyordu. Ama belki henüz onları nasıl pişireceğimi bilmiyorum :)

Her durumda, talihsiz baykuş olması gerektiği gibi çalıştırılana kadar bu geçerli değildir ...

Bu bağlamda, yakın gelecek sorusu için sonuncusu (en azından umuyorum): Bir pozisyonun son emrinin açılış fiyatı nasıl doğru bir şekilde alınır?

Deneysel baykuşum - aslında, başlangıçta benim değil, ancak bilinmeyen bir yazar tarafından açıkça nemli bulundu. Başlangıçta çok garip bir hataya sahipti: test cihazında olması gerektiği gibi çalışıyor, ancak demoda son sipariş fiyatının değerini almıyor.

 double FindLastPrice( long PositionID, bool IsSell) {

   int   i = 0 , Total;
   long Ticket, OldTicket = 0 , PosID, Magic, Type;
   double OrderPrice = 0 ;

   HistorySelect ( 0 , TimeCurrent ());
   Total = HistoryOrdersTotal ();  

   for (i = 0 ; i < Total; i++) {
      Ticket = ( int ) HistoryOrderGetTicket (i);
      PosID  = HistoryOrderGetInteger (Ticket, ORDER_POSITION_ID );
      Magic  = HistoryOrderGetInteger (Ticket, ORDER_MAGIC );
      Type   = HistoryOrderGetInteger (Ticket, ORDER_TYPE );
      

       if (IsSell) {
         if ((PosID == PositionID) && (Magic == MagicNumber) && (Type == ORDER_TYPE_SELL )) {
             if (Ticket > OldTicket) {
                OrderPrice = HistoryOrderGetDouble (Ticket, ORDER_PRICE_OPEN );
                OldTicket = Ticket;
            }
         }
      }

       else {
         if ((PosID == PositionID) && (Magic == MagicNumber) && (Type == ORDER_TYPE_BUY )) {
             if (Ticket > OldTicket) {
                OrderPrice = HistoryOrderGetDouble (Ticket, ORDER_PRICE_OPEN );
                OldTicket = Ticket;
            }
         }
      }
   }

   if (!OrderPrice) {
         Print ( "Ошибка " , GetLastError ());
         Sleep ( 5000 );
   }
   return (OrderPrice);
}

4753 hatası verir (sipariş bulunamadı) ve demoda sıfır döndürür (test cihazında beklendiği gibi her şeyi döndürür). Ve bu, yerleştirilen test Baskılarının, HistoryOrderGetDouble işlemesine ulaştığını ve hatta boş olmayan bir Bileti olduğunu öne sürmesine rağmen ...

 

Diyelim ki, her hafta 50 puan 1 dolar mı?, kimin 5000'i var ve haftada 100 dolar alıyor?