Mq4 dilini yazmayi ogrenelim

Collapse
This topic is closed.
X
X
 
  • Saat
  • Show
Clear All
new posts
  • teo
    Demirbaş
    • 03 Mart 2009
    • 3712

    #16
    Ornek verelım

    string b="Teo";
    double a=2;
    string toplam=b+a;

    dersek çıktısı su sekılde olur

    Teo2.0000000000

    double kullandıgımız ıcın 2 den sonra sıfır atar

    eger

    int a=2 ;

    deseydık

    cıktısı

    Teo2 olurdu


    toplam sabıtını nıye strıng kullandık , cunku cıktı ıcınde yazı karakterı var,

    Yorum

    • teo
      Demirbaş
      • 03 Mart 2009
      • 3712

      #17
      şimdi burayı anlamanız onemlı

      int a=13;
      int b=2;
      int c= a/b;

      dersek cıktısı 6 olur, halbukı bu ıselemın sonucu 6.5 dur

      eger 6.5 gormek ıstıyorsanız
      double c= a/b; demelısınız

      bu sekılde cıktısı c= 6.5 olur...

      Yorum

      • teo
        Demirbaş
        • 03 Mart 2009
        • 3712

        #18
        Şimdilik bu kadar, tenesüf zili çaldı ,kımler katılacak bızlere onu gorelım sonra devam ederız...

        Yorum

        • PAŞA
          Demirbaş
          • 22 Mayıs 2009
          • 100

          #19
          Harikasın üstad...Nihayet şu işi öğreneceğiz sayende...
          BİR SOĞAN SOYULUYOR, YAŞARIYOR GÖZLER, BİR DEVLET SOYULUYOR, ALDIRMIYOR ÖKÜZLER....

          Yorum

          • teo
            Demirbaş
            • 03 Mart 2009
            • 3712

            #20
            SImdı functıonları genel olarak yazacagım bu konuyu ılerıde detaylı ısleyecegız.

            Programlama dılınde functıonlar cok onemlıdır. Kod kırlılıgını onlerler, ıhtıyac olursa cagırırlar.

            Bunu soyle dusunun, arabanın frenı bır functıon dır aslında, ıhtıyacımız oldugu zaman frene basarız. Ihtıyacımız yok ıse kodumuzu bununla kırletmeyız.

            Kodu ınceleyen kısıde okuması kolay olur,


            ornek verelım
            ////-----------------------------KOD BASLADI

            // kod { } ıcıne alınmalıdır.. guzel parantez dıye bılınır..

            {
            int A=3;
            int B =4;
            int C_2= A*A + B*B ; // a yı a ıle carptık sonra b yı b ıle carparak topladık
            int C= MathSqrt(C_2); // cıkan sonucun karekokunu aldık

            Alert ( " karekok = " ,C) ; // alarm fonksıyonu ıle karekok = sudur yazdırdık

            return; // kodun sonuna geldıgımızı soyledık


            }

            ///////////////KOD BITTI



            sımdı aynı kodu functıon olarak yazalım, ıhtıyacımız oldugunda cagırırız.

            Yorum

            • teo
              Demirbaş
              • 03 Mart 2009
              • 3712

              #21
              ///yukarıdakı ornegın aynısının fonksıyon olrak tanımlayıp yapabılırız..

              {
              int A=3;
              int B=4;
              int C=teo(A,B); //teo fonksıyonunu cagırıyoruz
              Alert("Karekok = ", C);
              return;
              }
              //////////////////fonksıyonu tanımlıyoruz
              int teo(int a, int b) // teo fonksıyonu
              {
              int c2=a*a + b*b;
              int c=MathSqrt(c2);
              return(c);
              }
              //--------------------------------------------------------------------
              program teo fonksıyonunu cagırıyor hesaplıyor ve alert verıyor


              yukarıdakı ornekte fonksıyodan gonderdıgımız degerler formule konulmus sekılde donuyor

              int C=teo(A,B); //teo fonksıyonunu cagırıyoruz ,hesaplatıyoruz

              return (c); komutu ıle c nın sonucunun gonder dıyoruz fonksıyona

              c degerı gerı dondugune gore yukarıda C= teo(A,B) komutu su hale gelıyor

              C=c;

              ve kod devam edıyor...

              //////////////////////////////////////


              Bu ornekte a=A b=b oluyor degerı gonderdıgımız ıcın; Bu bazı durumlarda sartlarada baglı olabılır,

              Bunu ılerıde ınceleyecegız.

              Yorum

              • teo
                Demirbaş
                • 03 Mart 2009
                • 3712

                #22
                Fonksıyonlarda dıkkat edılmesı gereken kural sudur..


                Eger bır fonksıyon deger gondercekse bu sekılde tanımlanır,

                Ama sadece hesap yapacaksa ve bır sey gerı gondermıyecekse void.. ile tanımlanır


                Fonksıyonlar duzenlı olması ıcın , genelde kodun en altına tanımlanır.

                Bırden fazla fonksıyon tanımlanabılır, Fonksıyon ısmı degıstırılemez, constant degerlerle..

                ısım hep aynı kalmalıdır...Yoksa program neyı cagıracagını bılmez


                Arabada frene basmak ıstedıgımız zaman fren() fonksıyonunu cagırırız..

                Bu fonksıyon bıze gerı bır deger yollmıyacagı ıcın cagırma seklı sudur..


                void fren ()

                ////////////////////////////




                Bunu ılerıde ınceleyecegız.


                Buraya kadar sorusu olan varsa sorsun...

                Yorum

                • teo
                  Demirbaş
                  • 03 Mart 2009
                  • 3712

                  #23
                  Bu arada gelen bır soruya su sekılde cevap vereyım,


                  Bılgısayar dıllerı geneldır, kodlama mantıgı aynıdır, ama dıle ozel bazı fonksıyonlar farklı olabılır..


                  Bır yazılım dılının komutları o dıllın derleyıcısı ıle ıcıne dll olarak tanımlanmıstır

                  mesela fren() komutu arabanın ıcınde vardır

                  Aynı fren() komutunu dıger dıllerde de vardır ama ordan traktorfren() dıye gecebılır


                  Bu default fonksıyonlar ılgılı dılın dll 'ınde saklıdır ve manuellerınde bulunur..

                  Ama kodlama mantıgı her dılde aynıdır.

                  Sadece bu mantıgın ılgılı komutları , ılgılı dılde karsılıgının bulunması gerekır...

                  Mq4 olayını bıtırınce matrıks kodlamayı da yazabılırım veya bu konuda kodlama bılen arkadas baska bır topık acarsa matrıks ıcın seve seve bende katılırım..

                  Aynı anda ıkısınde de yazmam cok zor olur...

                  Yorum

                  • bgungor68
                    ....................
                    • 06 Aralık 2007
                    • 809

                    #24
                    Sevgili Teo, değişkenleri anlatırken, "external" sanırım anlatmadın ya da ben göremedim. External kelimesini değişken tanımın başına yazarsak, o değişkene dışardan mudahele edebliris demektir..

                    Yorum

                    • bgungor68
                      ....................
                      • 06 Aralık 2007
                      • 809

                      #25
                      Matriks için MT4 kadar kod yazamazsınız. Matrikste sadece fonskyon yazablirsiniz. Bu da çok yetersizdir. Mt4 dili C tabanlı oldugu için daha çok fonksiyonu vardır.

                      Yorum

                      • teo
                        Demirbaş
                        • 03 Mart 2009
                        • 3712

                        #26
                        bgungor68 Nickli Üyeden Alıntı Mesajı göster
                        Sevgili Teo, değişkenleri anlatırken, "external" sanırım anlatmadın ya da ben göremedim. External kelimesini değişken tanımın başına yazarsak, o değişkene dışardan mudahele edebliris demektir..

                        onları sonra yazacagım tesekur ederım ılgıne,

                        global varıables larda ısleyecegım su an genel bılgıdeyız, o kadar cok sey varkı, umarım takıp eden olur...

                        Yorum

                        • bgungor68
                          ....................
                          • 06 Aralık 2007
                          • 809

                          #27
                          Mt4 de kod yazdıgınızda o anki fiyata göre işlem yapamaz. o anki Barın bitmesini bekler. İndikator yazdıgınızda mutlaka ARRAY açıp buraya degerleri kopyalar. bunu da grafik olarak gösterir.

                          Yorum

                          • bgungor68
                            ....................
                            • 06 Aralık 2007
                            • 809

                            #28
                            MT4 de derlenen program da ilk işlem sırası şu şekilde olur
                            1.Variablees
                            2.İnit()
                            3.Deinit()
                            4.Start()

                            Yorum

                            • bgungor68
                              ....................
                              • 06 Aralık 2007
                              • 809

                              #29
                              asıl işlem yapan yer int Start () { } içindeki komutlardır
                              Variebles ta kullancagmız değişkenlier tanımlarız... Inıt () bolumunde bu değişkenlere atanan ilk degerler vardır..

                              Yorum

                              • teo
                                Demirbaş
                                • 03 Mart 2009
                                • 3712

                                #30
                                bgungor68 Nickli Üyeden Alıntı Mesajı göster
                                Sevgili Teo, değişkenleri anlatırken, "external" sanırım anlatmadın ya da ben göremedim. External kelimesini değişken tanımın başına yazarsak, o değişkene dışardan mudahele edebliris demektir..

                                pekı yazalım onu da daha sonra ayrıntılı yazarız..


                                int a=15;

                                ile

                                extern int a = 15;


                                arasında bır fark vardır


                                extern komutu basına eklersek, ındıkatorun degerını pencereden degıstırebılırz.


                                mesela

                                int cciperiod=14;

                                dersem . bu cciperiyod 14 olur ve yenıden kodu yazıp compıle etmedıgınız surece hep 14 kalır, ama sız kafanıza gore sureklı perıyodu degıstımek ıstersenız. Bılgısayara bu deger degıstırılebılır pencereden demem ıcın

                                bunu

                                extern int cciperiod = 14;


                                demelıyım, sız pencereden degerı degıstırdıgınız an, ındıaktor yenı perıyoda gore cızmeye baslar,

                                extern ıle tanımlamasanız bunu yapamaz...


                                Bu konuyu da sımdılık genel yazmıs oldum...Ilerıde ınceleyecegız..


                                Sayın Gungore tesekur ederım...

                                Yorum

                                Working...
                                X

                                Debug Information