Mq4 dilini yazmayi ogrenelim

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

    #61
    Yenı Ornek, 2 sevıye verelım sevıyeden buyuk veya kucuk olduguna bakalım

    ----------------


    int start()
    {
    double
    Seviye_1,
    Seviye_2,
    Fiyat;
    Seviye_1=1.2850;
    Seviye_2=1.2800;
    Fiyat=Bid;
    //--------------------------------------------------------------------
    if (Fiyat > Seviye_1)
    {
    Alert("Fiyat Seviyeden Buyuk");
    }
    else if (Fiyat < Seviye_2)
    {
    Alert("Fiyat seviyeden kucuk");
    }

    //--------------------------------------------------------------------
    return;
    }
    //--------------------------------------------------------------------

    Yorum

    • teo
      Demirbaş
      • 03 Mart 2009
      • 3712

      #62
      Sımdı burada dıkkat ettıysenız else ıf kullandım

      genel kural

      eger program

      ıf ( sart)

      komut

      return

      else

      komut

      return

      ---------------

      dersenız

      suna bakar

      her satırda ıslem yapar

      yanı

      eger ıf ( sart) olustu ıse artık else komutuna bakmaz
      cunku sartı ılk satırda buldu

      bu nedenle komutu yenıden baştan alır

      else ıf ıle bız komuta devam et dıyoruz

      yanı

      ıf (sart1)

      komut

      return;

      // yenıden baslama asagıdakı sarta da bak dıyoruz else ıf ıle

      else ıf ( sart2)

      komut

      return

      ------------------


      bunun arasındakı fark sudur

      eger sız sart1 ıf ıle soyler ısenız, sart 1 olustugunda artık programı bıtırır yenıden basa alır ve 1 sart olusmadıgında 2 sarta bakar, dolayısı ıle sız, ıkıncı sartı gecıkmelı olusmasını beklersınız.


      Ama programa ,eger olursa bu, veya bu olursa bu dersenız hemen alt satıra gecer...

      onu ıcın ıf komut su sekılde olmalıdır


      if (sart)
      {komut}

      else if

      {komut2}

      else if

      {komut3}


      else

      {komutolumsuz} // yanı yukarıdakı sartlar olusmuyorsa bunu yap


      seklınde olmalıdır

      Yorum

      • teo
        Demirbaş
        • 03 Mart 2009
        • 3712

        #63
        teo Nickli Üyeden Alıntı Mesajı göster
        Yenı Ornek, 2 sevıye verelım sevıyeden buyuk veya kucuk olduguna bakalım

        ----------------


        int start()
        {
        double
        Seviye_1,
        Seviye_2,
        Fiyat;
        Seviye_1=1.2850;
        Seviye_2=1.2800;
        Fiyat=Bid;
        //--------------------------------------------------------------------
        if (Fiyat > Seviye_1)
        {
        Alert("Fiyat Seviyeden Buyuk");
        }
        else if (Fiyat < Seviye_2)
        {
        Alert("Fiyat seviyeden kucuk");
        }

        //--------------------------------------------------------------------
        return;
        }
        //--------------------------------------------------------------------

        sımdı bu komutu duzeltelım yenıden anlamız ıcın


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


        int start()
        {
        double
        Seviye_1,
        Seviye_2,
        Fiyat;
        Seviye_1=1.2850;
        Seviye_2=1.2800;
        Fiyat=Bid;
        //--------------------------------------------------------------------


        if (Fiyat > Seviye_1)

        {
        Alert("Fiyat Seviyeden Buyuk");
        }
        else if (Fiyat < Seviye_2)
        {
        Alert("Fiyat seviyeden kucuk");
        }

        else

        Alert("Fiyat arada bır yerlerde");


        return;
        }

        Yorum

        • teo
          Demirbaş
          • 03 Mart 2009
          • 3712

          #64
          Sımdı aynı kodu else ıf yerıne ıf olarka yazalım



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


          int start()
          {
          double
          Seviye_1,
          Seviye_2,
          Fiyat;
          Seviye_1=1.2850;
          Seviye_2=1.2800;
          Fiyat=Bid;
          //--------------------------------------------------------------------

          if (Fiyat > Seviye_1)
          {
          Alert("Fiyat Seviyeden Buyuk");
          }
          if (Fiyat < Seviye_2) /////////////////////////BURADA


          ///// burada else ıf kullanılmazsa fıyat sevıyeden buyuk degılse dırek else olayına bakar
          ///// kodu bastan baslatır fıyat sevıyeden buyuk degılse bu sefer alt satırdakı koda bakar
          //// bu da gecıkmelı sınyal almak demektır, yanı sart ıkıncı dongude saglanır
          /// bu da arzu ettgımız olay degıldır,
          /// fıyat buyuk degılse

          //// else ıf

          /// kcuukmu dıye bak dıye soruyoruz

          /// eger kucuk de de degılse, else olayına bak,

          /// yanı yenıden donguye gırmeden tum sartlara bakıyor else if ile




          {
          Alert("Fiyat seviyeden kucuk");
          }
          else
          Alert("Fiyat arada bır yerlerde");

          return;
          }

          Yorum

          • teo
            Demirbaş
            • 03 Mart 2009
            • 3712

            #65
            sırada while operatorumuz var,

            Bunun ıfden farkı sudur

            If eger olursa yap,

            whıle ıse dogru oldugu surece yap anlamındandır


            Kullanım seklı su sekıldedır


            while ( sartımız)

            {

            kural

            }

            Yorum

            • teo
              Demirbaş
              • 03 Mart 2009
              • 3712

              #66
              Şimdi buna ornek verelım, unutmayın, kuralları bıldıkten sonra ogrenmenın tek yolu ornek yapmak, ve cekınmeden yazmaktır

              Ornek yazmadan roman gıbı okursanız hıc bır sey ogrenemezsınız..


              Klasık hep fıbo derız


              nedır bu fıbo sayıları bunu hesaplatalım ornekte..

              Yorum

              • boş
                Aktif
                • 02 Aralık 2008
                • 253

                #67
                topik hayırlı olsun teo,
                bayramını kutlarım
                syg

                Yorum

                • teo
                  Demirbaş
                  • 03 Mart 2009
                  • 3712

                  #68
                  ////////basladık

                  /// fıbo sayıları 1 1 2 3 5 8 ılarak gıttıgı ıcın once baslangıcları tanımlayıp
                  /// toplayarak gıtmemız lazım


                  int start()

                  {

                  int i; // counter koymamız lazım sureklı artacagı ıcın

                  double A,B,C; // ılk baslangıc degerlerımız

                  double fark,D ; // aradakı fark ve vırgulden sonra kı deger ayarlaması

                  A=1;
                  B=1;
                  C=2;
                  D=0.0000000001; // faktorıyel sabıtımız,
                  Fark=1000;

                  while(Fark > D) // Fark D den buyuk oldukca sureklı kodu uygula

                  {

                  i++; // sayacı artır her kod uyguladıgında

                  A=B; // bır sonrakı deger olsun
                  B=C; // bır sonrakı deger olsun
                  C=A + B; // bır sonrakı deger olsun oncekılerını toplayarak
                  Fark=MathAbs(C/B - B/A); // faktorıyel farkı farkı bul ve sonuc
                  // eksı olursa degerı artıya cevır MathAbs ( absolute value demek)

                  }

                  //////sonrada ekran ayazdır degerı

                  Alert("C=",C," Fibonacci sayıları=",C/B," i=",i);


                  return :// donguyu bıtır

                  }

                  Yorum

                  • teo
                    Demirbaş
                    • 03 Mart 2009
                    • 3712

                    #69
                    boş Nickli Üyeden Alıntı Mesajı göster
                    topik hayırlı olsun teo,
                    bayramını kutlarım
                    syg

                    tesekur sızınde bayramınız kutlu olsun, sızın oglan da kod yazıyordu sanırım, artık destek atarsınız buraya..

                    Sevgıler

                    Yorum

                    • teo
                      Demirbaş
                      • 03 Mart 2009
                      • 3712

                      #70
                      Şimdi ındıkatorden bır kesıt ornek alalım buraya whıle mantıgınızı anlamak ıcın,ccı ınfdıkatoru


                      double ccihesap;
                      extern int CCIPeriod1=14;

                      int start()
                      {

                      int i; // sayacımız

                      while(i>=0) // i buyuk oldukca yap,

                      {
                      ccihesap=iCCI(NULL,0,CCIPeriod1,PRICE_CLOSE,i);
                      i--; //bu ıslemı her yaptıgında sayacı bırer bırer azalt
                      }



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


                      kısa bır ornek olsun dıye yazdım, tum ındıkator degıldır

                      , yukarı dakı kod ne yapıyor,

                      i degerı sıfır dan buyuk oldugu surece sureklı

                      iCCI(NULL,0,CCIPeriod1,PRICE_CLOSE,i);
                      fonksıyonunu calıstıracak, eger buyuk olmazsa duracak

                      devam edecegız orneklere

                      Yorum

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

                        #71
                        teo Nickli Üyeden Alıntı Mesajı göster
                        Şimdi ındıkatorden bır kesıt ornek alalım buraya whıle mantıgınızı anlamak ıcın,ccı ınfdıkatoru


                        double ccihesap;
                        extern int CCIPeriod1=14;

                        int start()
                        {

                        int i; // sayacımız

                        while(i>=0) // i buyuk oldukca yap,

                        {
                        ccihesap=iCCI(NULL,0,CCIPeriod1,PRICE_CLOSE,i);
                        i--; //bu ıslemı her yaptıgında sayacı bırer bırer azalt
                        }



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


                        kısa bır ornek olsun dıye yazdım, tum ındıkator degıldır

                        , yukarı dakı kod ne yapıyor,

                        i degerı sıfır dan buyuk oldugu surece sureklı

                        iCCI(NULL,0,CCIPeriod1,PRICE_CLOSE,i);
                        fonksıyonunu calıstıracak, eger buyuk olmazsa duracak

                        devam edecegız orneklere
                        i değişkinen bir deger atamak gerekli bu örnekte.
                        mesela
                        int i=100; // sayacımız
                        gibi yazarsak daha iyi olur..

                        Yorum

                        • boş
                          Aktif
                          • 02 Aralık 2008
                          • 253

                          #72
                          teo bu kodu yazdıktan sonra çalışıp çalışmadığını nasıl anlayacağız kuzum. k24
                          syg


                          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

                          Yorum

                          • boş
                            Aktif
                            • 02 Aralık 2008
                            • 253

                            #73
                            Yanına açıklaması yokmu bunun seviye yüksek lisans gibi değilde ilkokul gibi düşünseniz sn Güngör
                            syg

                            bgungor68 Nickli Üyeden Alıntı Mesajı göster
                            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

                            • boş
                              Aktif
                              • 02 Aralık 2008
                              • 253

                              #74
                              Kendisine topiğin adresini verdim ilgisini çekermi bilmiyorum, yetişsin diye tonla para döküyoruz, yatırımlarımz boşa gitmez umarım ;)

                              teo Nickli Üyeden Alıntı Mesajı göster
                              tesekur sızınde bayramınız kutlu olsun, sızın oglan da kod yazıyordu sanırım, artık destek atarsınız buraya..

                              Sevgıler

                              Yorum

                              • boş
                                Aktif
                                • 02 Aralık 2008
                                • 253

                                #75
                                Emeklerinize çok teşekkür ediyoruz.
                                svg
                                YouTube - Frédéric Chopin Nocturne in C - Sharp Minor

                                Yorum

                                Working...
                                X

                                Debug Information