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

 
Taras Slobodyanik # :

mesele nasıl değil, mesele tam da bu, operatörlerin fonksiyon kullanmadan, basit işlemci komutlarıyla birleştiriciye çevrilebilmesi - bunlar operatörler.

Ve daha karmaşık olan, karmaşık prosedürleri çağırmayı gerektiren şey zaten bir fonksiyondur.

peki, özü hakkındaysa, o zaman işlev montajcıda CALL'dir ve bu, sekant adresini yığına kaydeden bir donanım uygulamasıdır, o zaman işlev parametreleri programlı olarak yığına aktarılır, işlevin yerel değişkenleri de yığın ....

onlar. işlev çağrısı, dil ve bilgisayar donanımının kurallarına bağlı belirli bir eylemler dizisidir.


ve operatörler ... dürüst olmak gerekirse, Wiki'den şimdi tartışmanın başlangıcından daha fazlasını öğrendim

 
Igor Makanu # :

peki, özü hakkındaysa, o zaman işlev montajcıda CALL'dir ve bu, sekant adresini yığına kaydeden bir donanım uygulamasıdır, o zaman işlev parametreleri programlı olarak yığına aktarılır, işlevin yerel değişkenleri de yığın ....

onlar. işlev çağrısı, dil ve bilgisayar donanımının kurallarına bağlı belirli bir eylemler dizisidir.


ve operatörler ... dürüst olmak gerekirse, Wiki'den şimdi tartışmanın başlangıcından daha fazlasını öğrendim

CALL , bir işlevin kendisi değil, bir çağrıdır (operatör).

onlar. bir fonksiyon çok sayıda operatördür)

 
Taras Slobodyanik # :

CALL , bir işlevin kendisi değil, bir çağrıdır (operatör).

onlar. bir fonksiyon çok sayıda operatördür)

ve eğer bir operatör varsa, bu bir fonksiyon olmadığı anlamına mı geliyor?

 void OnStart ()
{
   int x = 0 ;
   inc(x);
}
//+------------------------------------------------------------------+
void inc( int &v)
{
   v = v + 1 ;
}
 
Igor Makanu # :

ve eğer bir operatör varsa, bu bir fonksiyon olmadığı anlamına mı geliyor?

Soru "eğer" ve "uyarı" ile ilgiliydi.
neden birincisi bir operatör ve ikincisi bir fonksiyondur.

"Uyarı" kelimesinin kendisi de bir operatördür - ancak bu kelime bir fonksiyon çağırır)

ve "if" kelimesi işlevi çağırmaz.

bir fonksiyon bir çok kelimedir (operatörler)

 
Beyler, cevaplarınız için teşekkürler, tartışma açıldı. Maalesef çoğunu anlayamıyorum çünkü henüz ders kitabında görmediğim derin terimler kullanıyorsunuz.

Maxim ve Taras'ın yanıtından, dildeki terminolojik aygıtın katı olmadığı ve bazı operatör işlevlerini çağıran varsayımlar olduğu sonucuna varabilirim. Operatörün bir kelime olduğu ve fonksiyonda birçok kelime olduğu cevabından hareketle, aynı "if" operatöründe düzenli ve küme parantezlerinde birçok kelime / eylem olabileceği de belirsiz hale geliyor.
 
Ivan Butko # :
Beyler, cevaplarınız için teşekkürler, tartışma açıldı. Maalesef çoğunu anlayamıyorum çünkü henüz ders kitabında görmediğim derin terimler kullanıyorsunuz.

Maxim ve Taras'ın yanıtından, dildeki terminolojik aygıtın katı olmadığı ve bazı operatör işlevlerini çağıran varsayımlar olduğu sonucuna varabilirim. Operatörün bir kelime olduğu ve fonksiyonda birçok kelime olduğu cevabından hareketle, aynı "if" operatöründe düzenli ve küme parantezlerinde birçok kelime / eylem olabileceği de belirsiz hale geliyor.

fonksiyon bir alt programdır.
operatör bir program kelimesidir.

İşlev, her seferinde çok sayıda özdeş operatör yazmamak için yapılır ve birçok kez çağrılır.

Tek bir ifadeyi yürütmek için bir işlevi çağırmak, hemen yapılabileceğinden mantıklı değildir.


not. Uyarı, geliştiriciler tarafından herkesin kullanması için yazılmış bir işlevdir (alt program).

 
Taras Slobodyanik # :

fonksiyon bir alt programdır.
operatör bir program kelimesidir.

İşlev, her seferinde çok sayıda özdeş operatör yazmamak için yapılır ve birçok kez çağrılır.

Tek bir ifadeyi yürütmek için bir işlevi çağırmak, hemen yapılabileceğinden mantıklı değildir.


not. Uyarı, geliştiriciler tarafından herkesin kullanması için yazılmış bir işlevdir (alt program).

Alert, tam olarak, bir işlevin işareti olarak gizlenmiş bir açıklamaya sahiptir. Bölümü tekrar okuyun, dikkat edin.

Açıklama için teşekkürler, bu konuda kafamda daha fazla uyumsuzluk yok gibi görünüyor

 
double CalculateProfitHistory() 
{
   double profit = 0 ;
   int cnt = LockTicket, i , ototal = OrdersHistoryTotal();
   for (i = 0 ; i < ototal; i++)
     {
       if ( OrderSelect (cnt, SELECT_BY_TICKET, MODE_HISTORY))
        {
         if (OrderSymbol() == Symbol () && OrderCloseTime() > 0 )
           {
             if (OrderType() == OP_BUY || OrderType() == OP_SELL)
              {
               if (OrderMagicNumber() == Magic )
                 {
                  profit += OrderProfit()+OrderCommission()+OrderSwap();
                                    
                 }
              }
           }
        }
     }
   return (profit);
}
Tünaydın. Söylemek. Neden doğru değil. Daha doğrusu, bir sonraki siparişin karını bir öncekine eklemeden görüntüleyin.
Fikir, belirli bir kar kümesinden sonra, yukarı doğru hareket etmeleri gereken bileti değiştirmektir.
 
i üzerinde yineleyin ve cnt ile değiştirin
 
Aleksei Stepanenko # :
i üzerinde yineleyin ve cnt ile değiştirin

lütfen doğru şekilde yazın.