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

 
beyler lütfen bana test cihazına ne olduğunu söyleyin. mum yerine sadece "Tüm işaretler, en doğru yöntem" modunda ve diğer modlarda sadece açık fiyatları gösterir.
MT4 Better Volume, test cihazında da yetersiz
Dosyalar:
 

Lütfen bana neden her tikte açıldığını söyler misiniz?

void OnTick ()
  {
   Alert (Sborinfo(Magic));
   if (Sborinfo(Magic)<= 0 )
     {
      MassivPrice(step); 
      tiket= OrderSend ( Symbol (), OP_BUY , 0.01 , Ask , 0 , 0 , 0 , NULL , 0 , 0 ,Blue);
       if (tiket>= 0
         LastPrice= Ask
       else LastPrice=- 1
     }
   MassivPrice(step);
   tiket= OrderSend ( Symbol (), OP_SELL , 0.01 , Bid , 0 , 0 , 0 , NULL , 0 , 0 ,Red);
   if (tiket>= 0 )
      LastPrice= Bid ;
   else LastPrice=- 1 ;
  }
//+------------------------------------------------------------------+
int Sborinfo( int magic)
  {
   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
       Print ( "колличество ордеров " ,kol);
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==magic)
         kol++;
     }
   Print ( "новые ордера " ,kol);
   return (kol);
  }
 
Ibragim Dzhanaev :

Lütfen bana neden her tikte açıldığını söyler misiniz?

çünkü her zaman bu modda test ettim

void OnTick ()
  {
   Alert (Sborinfo(Magic));
   if (Sborinfo(Magic)<= 0 )
     {
      MassivPrice(step); 
      tiket= OrderSend ( Symbol (), OP_BUY , 0.01 , Ask , 0 , 0 , 0 , NULL , 0 , 0 ,Blue);
       if (tiket>= 0
         LastPrice= Ask
       else LastPrice=- 1
     }
   MassivPrice(step);
   tiket= OrderSend ( Symbol (), OP_SELL , 0.01 , Bid , 0 , 0 , 0 , NULL , 0 , 0 ,Red);
   if (tiket>= 0 )
      LastPrice= Bid ;
   else LastPrice=- 1 ;
  }
//+------------------------------------------------------------------+
int Sborinfo( int magic)
  {
   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
       Print ( "колличество ордеров " ,kol);
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES ) && OrderMagicNumber ()==magic)
         kol++;
     }
   Print ( "новые ордера " ,kol);
   return (kol);
  }
Dosyalar:
 
Ibragim Dzhanaev :

Lütfen bana neden her tikte açıldığını söyler misiniz?

Çünkü kod bu şekilde yazılmıştır.

Basitleştirilmiş, algoritmanız şöyle görünür: emir yoksa, bir Al açın ve her onay işareti için bir Satış açın.

 
Vitalie Postolache :

Çünkü kod bu şekilde yazılmıştır.

Basitleştirilmiş, algoritmanız şöyle görünür: emir yoksa, bir Al açın ve her onay işareti için bir Satış açın.

Ek koşullar olmadan çalışması için kod nasıl değiştirilir?
Alert (Sborinfo(Magic));
   // Closse(Magic);
   if (Sborinfo(Magic)== 0 )
     {
     Print ( "количество ордеров " ,Sborinfo(Magic));
      MassivPrice(step);
       if ( OrdersTotal ()< 2 ) // без таких условий
         tiket= OrderSend ( Symbol (), OP_BUY , 0.01 , Ask ,slippage, 0 , 0 , NULL , 0 , 0 ,Green);
       if (tiket>= 0 )
         LastPrice= Ask ;  
     }

   MassivPrice(step);
   if ( OrdersTotal ()< 2 ) // без таких условий
      tiket= OrderSend ( Symbol (), OP_SELL , 0.01 , Bid ,slippage, 0 , 0 , NULL , 0 , 0 ,Red);
   if (tiket>= 0 )
      LastPrice= Bid ;
  
  }
//+------------------------------------------------------------------+
int Sborinfo( int magic)
  {
  kol= 0 ;
   for ( int i= 0 ; i< OrdersTotal (); i++)
     {
     Print ( " чему ровно кол " , kol );
       if ( OrderSelect (i, SELECT_BY_POS ) && OrderMagicNumber ()==magic)
      {
       Print ( " ордера после " , kol );
      
         // kol++;
         }
     }
   return (kol);
  }
 
Ibragim Dzhanaev :
Ek koşullar olmadan çalışması için kod nasıl değiştirilir?

Ancak hiçbir şekilde, satın almanız ve satmanız ve hatta sayılarını sınırlamanız gerekiyorsa. Ama OrdersTotal'a () bakmazdım, ancak şu anda piyasada kaç alım ve kaç satış olduğunu hesaplardım.

Ve yine, OrdersTotal () kullanıyorsanız, neden buna ihtiyacınız var " if (Sborinfo(Magic)== 0 )" ?

 
Vitalie Postolache :

Ama hiçbir şekilde, satın almanız ve satmanız ve hatta sayılarını sınırlamanız gerekiyorsa. Ama OrdersTotal'a () bakmazdım, ancak şu anda piyasada kaç alım ve kaç satış olduğunu hesaplardım.

Ve yine, OrdersTotal () kullanıyorsanız, neden buna ihtiyacınız var " if (Sborinfo(Magic)== 0 )" ?

Böyle mi demek istiyorsun? Başka daha kolay seçenekler var mı?
{
  CloseFirst(Magic);
   int b= 0 ;
   int s= 0 ;
   for ( int i= 0 ; i<= OrdersTotal (); i++)
       if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )== true && OrderMagicNumber ()==Magic && OrderSymbol ()== _Symbol )
        {
         if ( OrderType ()== OP_BUY )
            b++;
         if ( OrderType ()== OP_SELL )
            s++;
        }
   if (b== 0 )
      tiket= OrderSend ( Symbol (), OP_BUY , 0.01 , Ask ,slippage, 0 , 0 , NULL ,Magic, 0 ,Green);
   if (s== 0 )
      tiket= OrderSend ( Symbol (), OP_SELL , 0.01 , Bid ,slippage, 0 , 0 , NULL ,Magic, 0 ,Red);
      }
 

Yoldaşlar! Sana bir sorum var.
Expert Advisor, bir önceki günün aşırılıklarına göre gün başından itibaren 00:00'da gecikmeleri açar.

Hafta içi her şey yolunda gidiyor, ancak Pazartesi'nin açılmasıyla gecikmeler Cuma günkü aşırı uçlarda değil, nedense Perşembe günkü seviyelerde oluyor. Nasıl yani?

OpenTime= "00:00" ;
currtime= TimeToStr ( TimeCurrent (), TIME_MINUTES );
Format= Digits ();
DH= NormalizeDouble ( iHigh ( NULL , PERIOD_D1 , 1 ),Format) ;
DL= NormalizeDouble ( iLow ( NULL , PERIOD_D1 , 1 ),Format);
if (currtime==OpenTime)
{
отложки
}
 
Ibragim Dzhanaev :
Böyle mi demek istiyorsun? Başka daha kolay seçenekler var mı?

Evet böyle bir şey. Nerede daha kolay?

 
Vitalie Postolache :

Evet böyle bir şey. Nerede daha kolay?

Diziler hakkında dersler biliyor musunuz? Biliyorsanız lütfen link atın.
Neden: