dengesiz parantezler - sayfa 2

 

liana, biçimlendirme öğeleriyle satırın başından sonuna kadar herhangi bir ifadede herhangi bir işlevde kendiniz için bir kural yapın ve ancak bundan sonra gövdeye girin.

Diyelim ki if deyimini kullanıyorsunuz, hemen açılış parantezine ek olarak bir de kapanış parantezini koyun. Açılan küme ayracı koyarsanız, hemen aşağıdaki satıra kapatan küme parantezi koyun. Bir fonksiyon yazın, diyelim ki NormalizeDouble , hemen (,Digits) koyun; ve ardından virgülden önce yuvarlamak istediğinizi girin. Yani yanılmış olmayacaksın. Ve zamanla göz alışacak ve bu küçük şeyleri hemen göreceksiniz. Hatayı hemen bulamazsam, kodun bağımsız kısımlarını kesip derlerim, hata korunur - muhtemelen kodun bu bölümünde değil (iki yerde ise), sonra bu parçayı yapıştırırım yer. Bir işlev kullanılıyorsa ve kontrol edilmesi gerekiyorsa, içeriğini ve ayrıca kesin.

 
liana :
Teşekkürler (Kim'in işlevini yanlış kopyaladı).
Şimdi düzeltildi - tekrar "bitiş freni bekleniyor" yazıyor

dönüşten sonraki son işlevde(Yanlış); bir parantez daha olmalı
 

Başlangıçta yeni bir satırdan bir parantez seti koymaya çalışın, ardından ihtiyacınız olanı onlara girin. Ve eğer birkaç fonksiyon bir "matryoshka" ile iç içe geçmişse, o zaman her bir dahili fonksiyon için birkaç boşluk girintisi yapmak için tembel olmayın ve o zaman artık "eksik" parantez olmayacak :)

Function1()
{
  action1;
   Function2()
   {
     action2;
     action3;
   }
}
 

Düzeltildi - hala bir şeyler yanlış.
Ve birisi bana Kim'in bu iki fonksiyonunu çağırmanın nasıl doğru olacağını yazabilir mi ve emir yoksa emir açın.

 int pending;
int positions;
int ticket;
int magic= 576 ;

int start() { 
//----
   pending = ExistOrders( NULL );
   if (pending > 0 ) return ( 0 ); // ???? ???????? ????????? ???????? ?????? ????? ?? ???????
   positions = ExistPositions( NULL );
   if (positions > 0 ) {
       return ( 0 );     // ???? ?? ???????? ???? ?????????
   }
   else { // else ????????? ? ?????????? if
      ticket= OrderSend ( Symbol (),OP_SELL, 0 , 1 ,Bid, 3 ,Bid+ 20 * Point ,Bid- 40 * Point , "" ,magic, 0 , Red );
     
   }
//----
   return ( 0 );
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//|  Exist pending. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+

bool ExistOrders( string sy= "" , int op=- 1 , int mn=- 1 , datetime ot= 0 ) {
   int i, k= OrdersTotal (), ty;
 
   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
      ty= OrderType ();
       if (ty> 1 && ty< 6 ) {
         if (( OrderSymbol ()==sy || sy== "" ) && (op< 0 || ty==op)) {
           if (mn< 0 || OrderMagicNumber ()==mn) {
             if (ot<= OrderOpenTime ()) return (True);
          }
        }
      }
    }
  }
   return (False);
}

//+----------------------------------------------------------------------------+
//|  Exist open positions. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+

bool ExistPositions( string sy= "" , int op=- 1 , int mn=- 1 , datetime ot= 0 ) {
   int i, k= OrdersTotal ();
 
   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if ( OrderSymbol ()==sy || sy== "" ) {
         if ( OrderType ()==OP_BUY || OrderType ()==OP_SELL) {
           if (op< 0 || OrderType ()==op) {
             if (mn< 0 || OrderMagicNumber ()==mn) {
               if (ot<= OrderOpenTime ()) return (True);
            }
          }
        }
      }
    }
  }
   return (False);
  }
 
liana :

Düzeltildi - hala bir şeyler yanlış.
Ve birisi bana Kim'in bu iki fonksiyonunu çağırmanın nasıl doğru olacağını yazabilir mi ve emir yoksa emir açın.


parametreler fonksiyona iletilmelidir, bunlar fonksiyon açıklamasında açıklanmıştır

ExistOrders( string sy= "" , int op=- 1 , int mn=- 1 , datetime ot= 0 )

start() işlevinden çağrıldığında bu parametreleri kullanıcı tanımlı işleve iletmelisiniz.

 
valenok2003 :


parametreler fonksiyona iletilmelidir, bunlar fonksiyon açıklamasında açıklanmıştır

start() işlevinden çağrıldığında bu parametreleri kullanıcı tanımlı işleve iletmelisiniz.


Bu seçeneklere ihtiyacım yok. sadece ihtiyacım var
2. Mevcut tablonun enstrümanında herhangi bir pozisyonun varlığını kontrol edin
ExistPositions(NULL);
Ancak bu parametreyi çağırmanın doğru yolu nedir?

 
liana :


Bu seçeneklere ihtiyacım yok. sadece ihtiyacım var
2. Mevcut tablonun enstrümanında herhangi bir pozisyonun varlığını kontrol edin
ExistPositions(NULL);
Ancak bu parametreyi çağırmanın doğru yolu nedir?

Açık pozisyon olup olmadığını kontrol etmeniz gerekiyor mu?
 
liana :


Bu seçeneklere ihtiyacım yok. sadece ihtiyacım var
2. Mevcut tablonun enstrümanında herhangi bir pozisyonun varlığını kontrol edin
ExistPositions(NULL);
Ancak bu parametreyi çağırmanın doğru yolu nedir?


Parametresiz arama:

if(! ExistPositions ()){//açık pozisyon yok

if(! ExistOrders ()){// bekleyen yok

 

Okuyamıyorum, MetaEditor'um Rusça kodlamayı desteklemiyor

 
liana :

Yapamam, MetaEditor Rusça kodlamayı desteklemiyor


Şubede arayın: https://www.mql5.com/en/forum/107476 , her şey orada. bence 10'dan itibaren sayfalar