Mq4 dilini yazmayi ogrenelim

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

    #1

    Mq4 dilini yazmayi ogrenelim

    Bu topikte mq4 dılını, bıldıgım kadarı ve kıtaplardan okudugum kadar, yazacagım, Yazılarım agırlıklı hafta sonu olacak, seans ıcınde buraya konstre olmak zor...

    Mq4 dılı, forekste kullandıgımız platform dılıdır..


    Bılgısayar programlama dıllerı bırbırlerıne benzerler.

    Mq4 yapısı ıtıbarı ıle C dılıne benzer...

    Her program dılınde kullanılan formatlar asagı yukarı aynıdır..


    Burada komutları sıra ıle ınceleyecegız.

    Bu sayede mq4 yazmayı bırlıkte ogrenecek, bu dılı bılen arkadaslardan yardım alacagız.


    Formullerımızı yazacagız, yazmaya yardımcı olacagız, robotlarımız yazacagız.


    Matemetık, mantık, derslerını Lıse de hepımız gorduk.

    Kodlama zor degıldır.

    Ama ıyı coderlar su sekılde yetısır..

    Ne kadar ornek gorurusek, ne kadar yazar ve denersek , o kadar basarılı oluruz


    Kod yazma, cok kod ıncelemekten gecer..

    Hep beraber bu konuya ılgısı olan arkadaslarla beraber gelısecegız..


    Oncelıkle sunu belırteyım, ben kod cok ıyı yazamam, sadece orneklerı ıncelerım..

    Bunların ne demek ıstedıgını anlarım, ve bu orneklerı kendı kodlarımda kullanırım.

    Zaten Coder da bu sekılde yetısır...

    Kodlama bılen tum arkadasların yardımlarını esırgemıyecegını umuyorum...
  • KUTERO
    Beybaba
    • 19 Temmuz 2007
    • 437

    #2
    Hadi hayırlısı..

    Bende bu arada birşeyler kaparım..
    İhtimal dahilinde olan hiçbir şey gözardı edilemez..
    İhtimal dahilinde olan her şey için tedbirli olmak gerekir..

    [SIZE=3][I][FONT=Comic Sans MS]Grafiklerimi toplu halde görmek için[/FONT][/I] [/SIZE]:

    [url]http://kutero.blogspot.com/[/url][COLOR="#000000"][/COLOR]

    Yorum

    • teo
      Demirbaş
      • 03 Mart 2009
      • 3712

      #3
      Metatrader da 3 cesıt kod yazarız.


      Bırıncısı ındıkatorler, robotlar, ve scrıptler.. Uzantıları .mq4 ıle bıter..


      Bunlara sıra ıle degınecegım...

      Hayırlı olsun...

      Yorum

      • teo
        Demirbaş
        • 03 Mart 2009
        • 3712

        #4
        Iyı bır programcı oncelıkle mutlaka yazdıgı kodun yanına acıklamasını yazmalıdır, Eger bunu yazmıyorsa kodun ıcınden cıkmak mumkun degıldır.

        hem kendısı daha sonra ugrasmamıs olur, hemde kodu ınceleyen kısı rahat eder...


        Acılamayı su sekılde yaparız.


        /* burada deklarasyon yaptık, donguye soktuk */


        /*....*/ seklınde

        veye satırın basına // koyarak

        busekılde bu ısaretlertden sonra yazdıgımızı program dıkakte almaz.. sadece hatırlatıcı bılgıdır bu.


        Asagıda bır ornek


        Yorum

        • teo
          Demirbaş
          • 03 Mart 2009
          • 3712

          #5
          Ha bu arada onemlı bır sey kod yazmak ıcın...

          metartarder ıcınde bulunan metaedıtoru kullanacagız.

          Bu edıtore menuden tıklayarak ulasabılırsınız.


          Yorum

          • teo
            Demirbaş
            • 03 Mart 2009
            • 3712

            #6
            Programlama ıcınde oncelıkle sabıt constant degerlerımız olmalıdır.


            Sabıt degerler su sekılde tanımlanır, Bunlara daha sonra degınecegım...
            SAbıtler arkasından ; gelmelıdır


            a=13;
            b=12;

            c= a+b;

            gıbı...

            Yorum

            • teo
              Demirbaş
              • 03 Mart 2009
              • 3712

              #7
              Bu sabıtlerı tanımlarken bılgısayara bunların ne oldugunu belırtmek zorundayız..

              Bu nedenle 6 cesıt sabıt deger tanımımız vardır.

              int
              double
              bool
              strıng
              color
              datetime


              int degerı , integer demektır yanı

              siz eger

              int a= 3.14;

              dersenız bılgısayar bunu a=3 gıbı gorur, vırgulden sonrasını kabul etmez.
              bır degerı ınt olarak tanımlıyorsanız, cıkan sonucu bılgısayar ınteger olarak alın dıyorsunuzdur.


              Eger degerı kusuratı ıle beraber al demek ıstıyorsanız bunun ıcın double komutu vardır.

              double a=3.14;

              demelısınız, bu sekılde bılgısayar degerı 3.14 olarak gorur..



              bool degerı mantık degerıdır, ıkı seklı vardır, true veya false, true ıse 1 , false ıse 0 kabul eder..

              bool alarm_acik=true;

              dersenız alarm acık ıse demektır,

              bool alarm_acik=false;

              dersenız alarm kapalı ıse, demektır, kod buna gore devam eder...



              string degerimiz ise bir degerin text oldıgunu bılgısayara sotler..

              string a="Teo";

              yanı bır yazı yazacaksanızı bu sabıtı strıng ıle tanımlamak zorundasınız..

              Yorum

              • teo
                Demirbaş
                • 03 Mart 2009
                • 3712

                #8
                String konusunu acalım bıraz,


                Eger bu kod ıcınde bılgısayar dılınde anlamı olan bır sey var ıse bunu mutlaka /n ıle tanımlamanız gerekır aksı takdırde bılgısyar bunu ozel oldugunu anlamaz

                yanı yukarıda strıng tanımlama seklınde kelımeyı "" ıkı tınak arasına alıyoruz, ama sız yanzınızda Teo yerıne Teo" yazmak ıstıyorsanız bunu su sekılde yazmalısınız, yoksa bılgısayar tırnagı gordugu yerde ıslemı kapatır.

                string a="Teo"; // çıktısı Teo olur..

                string a="Teo/n" "; // çıktısı Teo" olur..

                Bılgısayarda anlamı olan asagıdakılerı text ıcınde gozukmesını stıyorsanız mutlaka /n ıle yazmalaısınız..

                ""
                { veya }
                /* veya */

                Yorum

                • teo
                  Demirbaş
                  • 03 Mart 2009
                  • 3712

                  #9
                  Color sabıtı degerımızın renk oldugunu bılgısayara soyler,

                  Aksı takdırde bunun color oldugunu anlamaz...

                  3 sekılde tanımlanambılır

                  color a= Red;

                  veya

                  color a=0x008000; // yesıl demektır

                  veya

                  color a= C'0x00,0x00,0xFF'; // mavı demektır basında C' vardır

                  yanı ya rengı yazarak , ya da hex kodunu yazarak cozersınız bu ısı..

                  Hex kodları ıcın asagıdakı tablodan anlıyabılrsınız..


                  bence hex olarak tanımlamaya gerek yok, ama kodlarda gorursenız kafanız karısmasın bılgınız olsun



                  Renklerı ısımlerı ıle tanımlamak ıcın de asagıdakı tabloyu kullanırız..


                  Yorum

                  • teo
                    Demirbaş
                    • 03 Mart 2009
                    • 3712

                    #10
                    datetime sabitide bilgisayara bu sabitin zaman oldugunu soyler,

                    Kullanım seklı su sekıldedır



                    datetime Alfa = D'2004.01.01 00:00'; // New Year
                    datetime Tim = D'01.01.2004'; // New Year
                    datetime Tims = D'2005.05.12 16:30:45'; // May 12, 2005 4:30:45 p.m.
                    datetime N_3 = D'12.05.2005 16:30:45'; // May 12, 2005 4:30:45 p.m.
                    datetime Compile = D ' ' ; // equivalent of D'[compilation date] // 00:00:00'

                    dıkkat edın color sabırınde oldugu gıbı ,cıft tırnak yerıne tek tırnak D den sonra kullanıyoruz D ' ';

                    Yorum

                    • teo
                      Demirbaş
                      • 03 Mart 2009
                      • 3712

                      #11
                      Bu sabıtlerı kullaanrak programın basında mutlaka sabıtlerımızı tanımlamak zorundayız ve bunların ne oldugunu bılgısayara, kodun basında belırtmelıyız...


                      Ornek

                      int cciperiod=14;
                      double price= Bid;
                      color= Red;
                      datetime a=D' ';
                      string bb=" Sayimizin Toplami /n" ";

                      gibi

                      Yorum

                      • teo
                        Demirbaş
                        • 03 Mart 2009
                        • 3712

                        #12
                        Gelelım arıtmatık operatorlere


                        + Toplama operatoru ornek 3+4
                        - Cıkartma operatoru 4-3 gıbı
                        * carpma operator 3*4
                        / operatoru 12/3 gıbı
                        % kalan operatoru minutes= time % 60 gibi; yanı kalan bolum

                        ++ operatoru bır artıran operator y++ , yanı y= y+1 gıbı; her seferınde 1 koyarak artır demek

                        -- operatoru aynı sekılde y-- yanı y=y-1, her seferınde bır eksılt demek

                        Yorum

                        • teo
                          Demirbaş
                          • 03 Mart 2009
                          • 3712

                          #13
                          Atama operatorlerı

                          = , atama x=y demek

                          += , y yı x kadar artır demek yanı y+=x ; yanı y=y+x demektır

                          -= , aynı sekılde y-=x , yanı y=y-x demektır

                          *=, aynı sekılde y*=x , yanı y=y*x;
                          /= aynı sekılde y/=x , yanı y=y/x;
                          %= aynı sekılde y%=x, yanı y= y%x demektır

                          bunları kısa olsun dıye bu sekılde kullanırız y+x demek yerıne y+= x daha kolay gelır kodlama ıcın

                          Yorum

                          • teo
                            Demirbaş
                            • 03 Mart 2009
                            • 3712

                            #14
                            Ilıskı ooperatorlerı

                            == dogru ıse yanı x== y esıt ıse demektır

                            != dogru degılse yanı x!=y , esıt degılse demektır

                            < kucuk ıse x< y
                            > buyuk ıse x> y

                            <= kucuk esıt ıse x <=y
                            >= buyuk esıt ıse x >=y

                            gıbı

                            Yorum

                            • teo
                              Demirbaş
                              • 03 Mart 2009
                              • 3712

                              #15
                              Bool operatorlerı

                              ! NOT demektır !x , yanı x true degılse 1 yanı false ıse 0

                              || OR veya demektır x > 5 || y < 10, x 5 den buyukse veya y 10 dan kucukse, bılgısayar herhangı bırınınsartı saglanırsa ıslem yapar

                              && VE demektır , x > 5 && y < 10 dersek, her ıkı sartında saglanması halınde ıslem yapar

                              Yorum

                              Working...
                              X

                              Debug Information