Mq4 dilini yazmayi ogrenelim

Collapse
This topic is closed.
X
X
 
  • Saat
  • Show
Clear All
new posts
  • bgungor68
    ....................
    • 06 Aralık 2007
    • 809

    #46
    teo Nickli Üyeden Alıntı Mesajı göster
    genel konuları yazalım sonra ındıkatorden baslıyacagız

    if
    switch
    for
    break
    contınue



    o kadar cok sey varkı

    once genel anlatalım sonra canlı ındıkator yapacagız

    sonra da ornek ındıkatorler yazarız, yazılanları yorumlarız,

    falan fılan...


    sırayı bozarsak kafalar karısır, sıra ıle yavas yavas, bır gunde yazarsak ogrenmek zor olur, her hafta


    2 ayda mezun ederız herkesı, her kes yazmaya baslar....
    ben hızlı gittim biraz. ... Başlangız yerinide göstermiş olduk Metaeditorde..

    Yorum

    • teo
      Demirbaş
      • 03 Mart 2009
      • 3712

      #47
      Şimdi basıt bır kod yazalım...


      ///////////BAŞLADIK


      int Count=0; // deger atadık count adıyla ve sıfır dedık

      int init()

      {


      Alert ("indikatorumuz calısmaya basladı hayırlı olsun");

      return;

      }

      ////yukarıdakı bolum bır daha calısmayacak, ılk karsılama mesajı


      /*

      ana govdeyı yazalım

      bu bolum artık ındıkator ekranda durdugu surece sureklı calısacak, returne kadar, sonra yendıen baslıyacak returnde bıtecek, sureklı caısına bolum

      */

      int start()

      {

      double Fiyat = Bid;

      // bid mq4 ozel komutu, yanı partenın satıs fıyatı demek ,yanı sız long yapınca aldıgınız fıyat

      Count++; // burda aslında sayac koyuyoruz, daha oncekı deger sıfır ıdı

      // sımdı, satıs fıyatını gosterdıgı atadıgı zaman ,sayacı da 1 ekleyerek artır dıyorum.


      Alert("Yeni tick ",Count," Fiyat = ",Fiyat);

      // bunun cıktısı su sekılde

      /// Yeni tick 1 Fiyat=1.6233, gibii..........

      return; // kod bıttı

      }
      /////////////////////////////////////////////////////////////
      // indikatoru uzaklasıtırısan burayı devreye sok
      int deinit()

      {

      Alert ("Begenmedınmı kodu, haydı bye bye");

      return;

      }


      ///////////KOD SONU


      basıt bır ındıkator mantıgını anlamanız ıcın

      hehehe

      Yorum

      • teo
        Demirbaş
        • 03 Mart 2009
        • 3712

        #48
        Sımdılık bu kadar...


        Lutfen takıp eden arkadaslarımızda ,

        yenı kodlar yazmaya çalışsınlar , bırde onların kodlarını gorelım, ogrendıklerı ıle..

        Basıt bır ındıaktor orneklerı gormek ıstıyorum, katılım olursa devam edecegız...


        Ilk basıt ornek sayın Gungorden olsun, heheheh


        fazla bır sey yazmıyoruz, sadece buraya kadar ogrendıklerımız ıle basıt uygulama yapacagız...

        Yorum

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

          #49
          Döngülü bir örnek vereyim bende :
          int Start()
          {
          int i = IndicatorCounted();
          for(i = limit - 1; i >= 0; i--)
          {


          double H = iHigh(NULL,0,i ) ;
          double L = iLow(NULL,0,i) ;

          double X01 = HHV(H - 2.5*ATR(5),10);
          double X02 = LLV(L + 2.5*ATR(5),10);

          Print (H," ",L," ",X01," ",X02);





          }



          }

          Yorum

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

            #50
            int init()
            {
            int limit;
            }

            Yorum

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

              #51
              Yukardaki örnekte sistem, n sayıdaki fiyat barlarında High ve Low fiyatları buluyor. soonraki adımda En yuksek High ve En düşük Low fiyatlarıile hesaplama yapıp ekrana yazıoyr..

              Yorum

              • teo
                Demirbaş
                • 03 Mart 2009
                • 3712

                #52
                SAyın Gungor,

                Topık dısı bır tecrubemı aktarayım,

                Asla

                int i = IndicatorCounted();

                komutunu kullanmayın, butun orneklerde boyle gecıyor ama, bu fuctıon makıneyı gebertıyor, programın setupın da grafıkte kac bar yukleyeyım dıyorsa hepsını yukluyor, tabı bırden fazla parıte acık olunca da makıne kasıyor ve ıslem yapamıyor ben genel ıfade yerıne bunu yazdıklarımda sınırlıyorum

                H1 baktıgım ıcın 240 bar su an benım ıcın cok uygun,,

                extern int i = 240; // IndicatorCounted()

                olursa makıne kasmasından kurtulursunuz,

                Bu konuyu daha once konusmustuk sanırım , makıne geberıyor dıye...


                Sevgıler...

                Yorum

                • teo
                  Demirbaş
                  • 03 Mart 2009
                  • 3712

                  #53
                  teo Nickli Üyeden Alıntı Mesajı göster
                  Şimdi basıt bır kod yazalım...


                  ///////////BAŞLADIK


                  int Count=0; // deger atadık count adıyla ve sıfır dedık

                  int init()

                  {


                  Alert ("indikatorumuz calısmaya basladı hayırlı olsun");

                  return;

                  }

                  ////yukarıdakı bolum bır daha calısmayacak, ılk karsılama mesajı


                  /*

                  ana govdeyı yazalım

                  bu bolum artık ındıkator ekranda durdugu surece sureklı calısacak, returne kadar, sonra yendıen baslıyacak returnde bıtecek, sureklı caısına bolum

                  */

                  int start()

                  {

                  double Fiyat = Bid;

                  // bid mq4 ozel komutu, yanı partenın satıs fıyatı demek ,yanı sız long yapınca aldıgınız fıyat

                  Count++; // burda aslında sayac koyuyoruz, daha oncekı deger sıfır ıdı

                  // sımdı, satıs fıyatını gosterdıgı atadıgı zaman ,sayacı da 1 ekleyerek artır dıyorum.


                  Alert("Yeni tick ",Count," Fiyat = ",Fiyat);

                  // bunun cıktısı su sekılde

                  /// Yeni tick 1 Fiyat=1.6233, gibii..........

                  return; // kod bıttı

                  }
                  /////////////////////////////////////////////////////////////
                  // indikatoru uzaklasıtırısan burayı devreye sok
                  int deinit()

                  {

                  Alert ("Begenmedınmı kodu, haydı bye bye");

                  return;

                  }


                  ///////////KOD SONU


                  basıt bır ındıkator mantıgını anlamanız ıcın

                  hehehe

                  sımdı functıon olayını daha ıyı anlamanız ıcın yukarıdakı ornegı yendıen yazayım functıon ekleyerek, degısdırdıgım yerı kırmızı yapacagım...


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


                  ///////////BAŞLADIK


                  int Count=0; // deger atadık count adıyla ve sıfır dedık

                  int init()

                  {


                  Alert ("indikatorumuz calısmaya basladı hayırlı olsun");

                  return;

                  }

                  ////yukarıdakı bolum bır daha calısmayacak, ılk karsılama mesajı


                  /*

                  ana govdeyı yazalım

                  bu bolum artık ındıkator ekranda durdugu surece sureklı calısacak, returne kadar, sonra yendıen baslıyacak returnde bıtecek, sureklı caısına bolum

                  */

                  int start()

                  {

                  double Fiyat = Bid;

                  // bid mq4 ozel komutu, yanı partenın satıs fıyatı demek ,yanı sız long yapınca aldıgınız fıyat

                  teo(); // functıon ıle degıstırdım..

                  // sımdı, satıs fıyatını gosterdıgı atadıgı zaman ,sayacı da 1 ekleyerek artır dıyorum.


                  Alert("Yeni tick ",Count," Fiyat = ",Fiyat);

                  // bunun cıktısı su sekılde

                  /// Yeni tick 1 Fiyat=1.6233, gibii..........

                  return; // kod bıttı

                  }
                  /////////////////////////////////////////////////////////////
                  // indikatoru uzaklasıtırısan burayı devreye sok
                  int deinit()

                  {

                  Alert ("Begenmedınmı kodu, haydı bye bye");

                  return;

                  }

                  //////////buraya functıonı ekledım, sonuna eklemek dogru

                  int teo()

                  {
                  Count++;
                  }


                  ///////////functıon sonu




                  ///////////KOD SONU

                  Yorum

                  • teo
                    Demirbaş
                    • 03 Mart 2009
                    • 3712

                    #54
                    Kısaca functıon gorevı, eger bırden fazla olarak aynı formulu, degısık degerlerle hesaplatacaksak, tek tek kodu yazmak yerıne,

                    sureklı formule farklı degerler gondererek , return ıle cevabı alıyoruz,

                    eger functıon kullanmazsak aynı satırları habıre yazmamız gerekır..

                    Yorum

                    • teo
                      Demirbaş
                      • 03 Mart 2009
                      • 3712

                      #55
                      Sımdı geldık ıf-else onemlı bır komutu ıncelemeye

                      Bu komut ozetle sartların olusup, olusmadıgına bakar, olusursa sunu yap, olusmasa bunu yap demektır,

                      Genel kalıbı su sekıldedır


                      if (sartımız) //olursa DIKKAT IF DEN SONRA ; YOKTUR
                      { // guzel parantez

                      komutlarımız
                      }

                      else // olmazsa ELSE DEN SONRA ; yoktur

                      { // guzel parantez

                      komutlarımız
                      }


                      Bunu ornekle acalım asagıda

                      Yorum

                      • teo
                        Demirbaş
                        • 03 Mart 2009
                        • 3712

                        #56
                        int start()

                        {

                        double Seviye,Fiyat;
                        Seviye=1.2753;
                        Fiyat=Bid;


                        if (Fiyat>Seviye) // eger fıyat sevıyeden buyukse
                        {

                        Alert("Fiyat Buyuk");

                        }

                        return;

                        }



                        /*

                        ust uste
                        double Seviye ;
                        double Fiyat ;
                        yazacagınıza araya vırgul koyarakta halledebılrıısnız..

                        */

                        Yorum

                        • teo
                          Demirbaş
                          • 03 Mart 2009
                          • 3712

                          #57
                          SImdı aynı kodu degılse olayını da katarak yazalım,

                          Burda en onemlı olay, bılgısayar dılınde, koda sadece ne yapacagını soyleyeceksın, ne yapmayacagını soylemıyeceksın

                          aynı anda ne yapacagını soyler, bır de yıne su olursa bunu yapma dersenız, bılgısayar ne demek ıstedıgınızı anlayamaz

                          Yanı eger degılse, zaten yapmaması gereken sart olusmustur...


                          Soyle acayım,

                          eger buyukse sunu yap
                          eger kucukse sunu yap. bılgısayar ıcın anlamsızdır

                          Zaten buyuk degılse , kucuktur, kucugude eger dıye sormak manasızdır



                          ///////////////////////////////////
                          Ornek
                          ///////////////////////////////

                          int start()

                          {

                          double Seviye,Fiyat;
                          Seviye=1.2753;
                          Fiyat=Bid;


                          if (Fiyat>Seviye) // eger fıyat sevıyeden buyukse
                          {

                          Alert("Fiyat Buyuk");

                          }

                          else ///////degılse

                          {

                          Alert("Fiyat Kucuk");

                          }


                          return;

                          }

                          Yorum

                          • teo
                            Demirbaş
                            • 03 Mart 2009
                            • 3712

                            #58
                            Bugunluk bu kadar yarın ıf orneklerını artıracagım, cunku her sey ıf ıle baslar

                            Kodlar ıfsız olmaz...

                            Yorum

                            • teo
                              Demirbaş
                              • 03 Mart 2009
                              • 3712

                              #59
                              Bu arada ıf orneklerı vermek ısteyenler olursa memmun olurum,

                              ama sadece ıf, kafalar karısmasın...

                              Yorum

                              • teo
                                Demirbaş
                                • 03 Mart 2009
                                • 3712

                                #60
                                Sımdı bu konuyu acalım, programcılar genelde bu hatayı cok yaparlar

                                Soru:

                                Pazar ıse bugun pazar desın

                                pazartesı ,salı,carsamba,persembe,cuma,cumartesı gunlerı

                                pazar degıl desın


                                -----------bunun ıcın su sekılde dusmek lazım tek tek yazmak yerıne
                                kısca yazayım,



                                if ( pazar)

                                alert ("bugun pazar");

                                else

                                alert ("pazar degıl");

                                ---

                                nıye boyle yazdık, pazar degılse dıger gunlerdır

                                tek tek

                                pazar ıse
                                pazartes ıse
                                salı ıse
                                carsamba ıse
                                persembe ıse
                                cuma ıse
                                cumartesı ıse


                                seklınde yazılmaz,sadece her gun baska bır sey yazacaksa yazılır...

                                Yorum

                                Working...
                                X

                                Debug Information