Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 141

 
MT4'te piyasadan ve bekleyen emirlerden alım satımların nasıl açılıp kapatılacağını öğretebilir misiniz?
 

Merhaba sevgili programcılar!!
Bir mum için kene sayacı yapıyorum ve bir şeyler ters gitmiş olmalı!!! Fiyat sadece arttığında keneleri sayacak bir şey yapmak istiyorum ve o yükseldiğinde ve düştüğünde sayar (yani, tüm keneler, ancak yalnızca artan keneler gereklidir) Bir göz atın lütfen...

 double CountTickBUY()
{

double old_price;
double delta_cur; 
double price = 0 ;
double old_open_price = 0 ;

for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
   {
         if ( OrderSymbol () == _Symbol && OrderMagicNumber () == Magic && OrderType () == OP_BUY )
           {
           old_price = iClose ( NULL , 0 , i);
           price = iOpen ( NULL , 0 , i);

           delta_cur = old_price > price;
           if (delta_cur > 0 ) 
             {
             count_plusbuy++;
             }
           }
   }
   return (count_plusbuy);
}
 
sviter-pro :

Merhaba sevgili programcılar!!
Bir mum için kene sayacı yapıyorum ve bir şeyler ters gitmiş olmalı!!! Fiyat sadece arttığında keneleri sayacak bir şey yapmak istiyorum ve o yükseldiğinde ve düştüğünde sayar (yani, tüm keneler, ancak yalnızca artan keneler gereklidir) Bir göz atın lütfen...

 int CountTickBUY()
{
   static double     old_price     = Bid ;
   static datetime   time_bar      = Time [ 0 ];
   static int        count_plusbuy = 0 ;
   
   if ( time_bar != Time [ 0 ] )
   {
      count_plusbuy = 0 ;
      time_bar      = Time [ 0 ];
   }
   
   if ( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid ;

   return (count_plusbuy);
}
 
Konstantin Nikitin :

Çok teşekkürler!

 

Konstantin Nikitin : Считает тики на кождой свече хорошо, но по 2 раза! Тоесть если отсчет пошел от 1.00000 и дошел до  1.00100 он 100 пунктов щитает, потом когда спустилась цена до  1.00080 он ждет и не считает, но когда цена опять начинает расти от  1.00080 то опять начинает считать пункты, а надо что бы ждал до  1.00100 и от нее считал дальше!!!

 int CountTickBUY()
{
   static double     old_price     = Bid ;
   static datetime   time_bar      = Time [ 0 ];
   static int        count_plusbuy = 0 ;
   
   if ( time_bar != Time [ 0 ] )
   {
      count_plusbuy = 0 ;
      time_bar      = Time [ 0 ];
   }
   
   if ( Bid - old_price > 0 )
      count_plusbuy++;
   old_price = Bid ;

   return (count_plusbuy);
}



 

Lütfen " IsTradeAllowed " fonksiyonunun ikinci formu çağrıldığında tam olarak neyi kontrol ettiğini açıklayın.

İlk formun otomatik ticaretin etkin olup olmadığını ve ticaret akışının serbest olup olmadığını kontrol ettiğini biliyorum. Peki ya ikinci arama şekli? İkinci form çağrıldığında ne tür kontroller oluyor?

 
Asa saas :

Lütfen " IsTradeAllowed " fonksiyonunun ikinci formu çağrıldığında tam olarak neyi kontrol ettiğini açıklayın.

İlk formun otomatik ticaretin etkin olup olmadığını ve ticaret akışının serbest olup olmadığını kontrol ettiğini biliyorum. Peki ya ikinci arama şekli? İkinci form çağrıldığında ne tür kontroller oluyor?

Çağrının ikinci şekli, belirtilen zamanda verilen sembol için ticaret fırsatı hakkında bilgi verir.


Ticaret akışı serbest mi, IsTradeContextBusy

 
Alekseu Fedotov :

Çağrının ikinci şekli, belirtilen zamanda verilen sembol için ticaret fırsatı hakkında bilgi verir.


Ticaret akışı serbest mi, IsTradeContextBusy

Görünüşe göre "IsTradeAllowed" ilk formu, ticaret akışının serbest olup olmadığını da kontrol ediyor?

Emir ticareti yapmadan önce piyasanın açık olup olmadığını öğrenmek için "IsTradeAllowed" fonksiyonunun ikinci formunu kullanıyorum.

Ancak, "IsTradeContextBusy" gibi ücretsiz bir akışın kullanılabilirliğini kontrol etmek için bir işlevi ayrı ayrı kullanmanın gerekli olup olmadığını veya ikinci "IsTradeAllowed" formunun zaten böyle bir kontrol yapıp yapmadığını tam olarak anlamıyorum.

 
Asa saas :

Görünüşe göre "IsTradeAllowed" ilk formu, ticaret akışının serbest olup olmadığını da kontrol ediyor?

Emir ticareti yapmadan önce piyasanın açık olup olmadığını öğrenmek için "IsTradeAllowed" fonksiyonunun ikinci formunu kullanıyorum.

Ancak, "IsTradeContextBusy" gibi ücretsiz bir akışın kullanılabilirliğini kontrol etmek için bir işlevi ayrı ayrı kullanmanın gerekli olup olmadığını veya ikinci "IsTradeAllowed" formunun zaten böyle bir kontrol yapıp yapmadığını tam olarak anlamıyorum.

1. Hayır

2. Hayır, danışman yardımı ile alım satıma izin vermez , ellerinizi kullanabilirsiniz.

3. İşlem akışını kontrol etmek için başka bir fonksiyon kullanmanız gerekir ( IsTradeContextBusy() )

 
Asa saas :

Görünüşe göre "IsTradeAllowed" ilk formu, ticaret akışının serbest olup olmadığını da kontrol ediyor?

Evet, kontrol eder. En azından belgeler öyle söylüyor. Bunun neden yapıldığını bilmiyorum, ama gerçek şu ki:

Возвращаемое значение

Возвращает true , если эксперту разрешено торговать и поток для выполнения торговых операций свободен , иначе возвращает false .

Emir ticareti yapmadan önce piyasanın açık olup olmadığını öğrenmek için "IsTradeAllowed" fonksiyonunun ikinci formunu kullanıyorum.

Ancak, "IsTradeContextBusy" gibi ücretsiz bir akışın kullanılabilirliğini kontrol etmek için bir işlevi ayrı ayrı kullanmanın gerekli olup olmadığını veya ikinci "IsTradeAllowed" formunun zaten böyle bir kontrol yapıp yapmadığını tam olarak anlamıyorum.

Ancak ikinci form ile bu net değil. Sonuçta, gelecekteki veya geçmişteki zamandan sorumludur.