Sayfa 103/1154 İlkİlk ... 353931011021031041051131532036031103 ... SonSon
Arama sonucu : 9231 madde; 817 - 824 arası.

Konu: İDEAL veri terminalinde /Sistem/İndikatör/Robot

  1. #817

    Esas

    Selamlar, aşağıda bulunan bir meta stock kodunu ideal 'e çevirmeye çalışıyorum yardım edebilecek varmı ?

    Kod:
    // MS 'ta indicator builder bölümüne, Variable EMA ismi ile aşağıdaki formülü girin:
    
    // Q1:= 5+6* RSquared(C ,30 ) ;
    // Q2:=2/(Q1+1);
    // Q3:=1-Q2;
    // Q4:=C*Q2 +Q3* PREVIOUS ;
    // Q4
    
    // Aynı yere ,Variable EMA2 ismi ile aşağıdaki formülü girin:
    
    // Q1:= 5+32* RSquared(C ,30 );
    // Q2:=2/(Q1+1);
    // Q3:=1-Q2;
    // Q4:=C*Q2 +Q3* PREVIOUS ;
    // Q4
    
    // İndikatörleri tanımladıktan sonra; expert advisor 'ı açalım ve yeni expert için new 'a tıkayalım, isim olarak VARIABLE EMA yazalım. Symbolse tıklayıp:
    
    // Alım koşulu: Cross(Fml("Variable EMA"),Fml("Variable EMA2"))
    // Satım koşulu: Cross(Fml("Variable EMA2"),Fml("Variable EMA"))
    
    // diyelim ve oklarla ,renkleri istediğimiz gibi seçelim,sistem hazır.
    
    // Optimizasyon yapıldıktan sonra
    // Toplam kar:46775 puan
    // 52 karlı ,84 zararlı ,toplam 136 işlem
    // Optimizasyon değerleri:
    // opt1=25  opt2=5  opt3=17  opt4=2
    // Halbuki biz başta bunları 30-6-32-5 seçmiştik,yukardaki değerler daha uygun...
    Bu şekilde başladım ama henüz çözemedim bu ideal formüllerini

    Kod:
    // kapanış fiyatlarını oku
    var Veriler = Sistem.GrafikFiyatSec("Kapanis");
    
    var rsq = Sistem.RSquared(30);
    
    // VEMA - boş liste oluştur 
    var VEMA1 = Sistem.Liste(0);
    var VEMA2 = Sistem.Liste(0);
    
    // VEMA1 - hesapla
    for (int i = 0; i < Sistem.BarSayisi; i++)
    VEMA1[i] = (((Veriler*(2/((5+6*rsq[i])+1)))+(1-(2/((5+6*rsq[i])+1))))*(Veriler-1));
    
    // VEMA2 - hesapla
    for (int i = 0; i < Sistem.BarSayisi; i++)
    VEMA2[i] = (((Veriler*(2/((5+32*rsq)+1)))+(1-(2/((5+32*rsq)+1))))*(Veriler-1));
    
    
    // strateji
    Sistem.YukariKestiyse(VEMA1, VEMA2);
    Sistem.AsagiKestiyse(VEMA2, VEMA1);
    
    // çizligeri göster
    Sistem.Cizgiler[0].Deger = VEMA1;
    Sistem.Cizgiler[0].Aciklama = "VEMA1 " + VEMA1;
    Sistem.Cizgiler[1].Deger = VEMA2;
    Sistem.Cizgiler[1].Aciklama = "VEMA2 " + VEMA2;
    Sistem.Cizgiler[2].Deger = rsq;
    Sistem.Cizgiler[2].Aciklama = "rsq " + rsq;
    
    var SonYon = "";
    for (int i = 1; i < Veriler.Count; i++)
    {
       if (VEMA1[i] < VEMA2[i])
           if ( SonYon != "A") //-75
       {
          Sistem.Yon[i] = "A";  // Alış
          SonYon = "A";
          // Sistem.Mesaj("Al Sinyali");
       }
       if (VEMA2[i] > VEMA1[i])
    {
            if ( SonYon != "S") //Kırmızı kalınan her bölgede SAT vermemesi için
       {
          Sistem.Yon[i] = "S";  // Satış
          SonYon = "S";
       }    
    }
    }

  2. #818

    Esas

    multi time frame trade denen özelliği kullanabiliyormuyuz. bende benzer bir soru sormak istiyorum.ideal yetkililerine de e-mail yoluyla sordum, henüz bir cevap alamadım.sorum şu;
    örneğin "F_XU0300814S0" piyasasında hem 5 dakkalık hemde 30 dakkalıkta ki zaman dilimindeki aynı indikatörü içeren bir sistem veya robot yazmak istiyoruz. böle bir sistem.fonksiyonu mevcut mu? yazılabilir mi?
    olur mu olmaz mı bari onu söleyin

     Alıntı Originally Posted by couchsurfer Yazıyı Oku
    merhabalar,

    bir süredir bir sistem üzerinde kafa yoruyorum. bu sistemde 2 günlük, 8 günlük ve 34 günlük grafikleri birlikte değerlendirip al sinyali takip ediyorum. sistemin koşulları şu şekilde:


    1) 2 günlük grafikte adx(14)>=25 olmalı
    2) 8 günlük grafikte cci (13) > wma (cci(13),21) olmalı (yani cci(13), kendi 21 periyodluk ağırlıklı hareketli ortalamasının üzerinde olmalı)
    3) 34 günlük grafikte cci(8) > wma (cci(8),13) olmalı ( yani cci(8), kendi 13 periyodluk ağırlıklı hareketli ortalamasının üzerinde olmalı)

    bu koşullar mevcutsa al sinyallerimiz şunlardan birisi olabilir:

    2 günlük grafikte son iki bar içinde (daha eski değil);
    -ya cci (21), kendi 34 periyodluk ağırlıklı hareketli ortalamasını yukarıya kesmeli,
    -ya da cci(21), kendi 34 günlük ağırlıklı hareketli ortalamasının üstündeyken +100 seviyesini yukarıya kesmeli


    ideal'de farklı zaman periyodlarını beraberce formülde değerlendirmek mümkün olur mu? yardımcı olursanız sevinirim...teşekkürler.

    not: bu koşulları neden bu şekilde oluşturmayı tercih ettiğimle ilgili bir süredir başka bir başlıkta yazıp çizmeye çalışıyorum. merak eden dostlar için link şöyle:

    http://www.hisse.net/forum/showthrea...3#post10548073
    Son düzenleme : merce; 19-07-2014 saat: 12:21.

  3. Esas

    İdeal Ekibi yaklaşık 5 aydır foruma yazmamış, sistem ile ilgili kendilerine de mail attım cevap alamadım şimdilik, şansımı bir de buradan deniyim...

    Aşağıda verdiğim kod parçası ile ilgili bir sorum olacak:


    // Saatlik Veriler
    var KapanislarH = Sistem.GrafikVerileriniOku(Sembol, "60");
    var MAH26 = Sistem.MA(KapanislarH, "Simple", 26);
    var MAH9 = Sistem.MA(KapanislarH, "Simple", 9);

    // 5 Dakikalık Veriler

    var Kapanislarm = Sistem.GrafikVerileriniOku(Sembol, "5");
    var MAM26 = Sistem.MA(Kapanislarm, "Simple", 26);
    var MAM9 = Sistem.MA(Kapanislarm, "Simple", 9);



    // alış
    if (Sistem.YukariKestiyse( MAH26 , MAH9) && Sistem.YukariKestiyse( MAM26 , MAM9) )




    Yukarıdaki Kod parçasında 26 ve 9 hareketli ortalamaları hesaplatıyorum (saatlik ve 5 dakikalık için), sonrasında alış koşulu olarak örnekte olduğu gibi "Sistem.YukariKestiyse" sistem fonksiyonunu kullandığımda saatlik ve 5 dakikalık barların aynı zaman diliminde yukarı kesmesi gerekiyor. Yani saatlik hareketli ortalama 15:00 da yukarı kesti ama 5 dakikalık grafik 15:35 de yukarı kestiyse koşul çalışmıyor.

    Benim istediğim herhangi biri yukarı kestikten sonra diğeri de yukarı keserse sistemin alım yapması.

    Söz konusu koşulu aşağıdaki gibi değiştirdim ama yine sonuç alamadım bu sefer çok fazla alım satım yapıyor ( pozisyon şartı koysam bile)

    if (MAH26[MAH26.count-1] > MAH9[MAH9.count-1] && MAM26[MAM26.count-1] > MAM9[MAM9.count-1] )

  4. Esas

    Merhabalar

    iDeal Sistem modülünde farklı periyotlara ait verileri kullanarak sistem kodları yazabiliyorsunuz. Bunun için özel olarak DÖNEM ÇEVİR isimli bir hazır fonksiyonumuz vardır.
    Talep ettiğiniz kodlamayı aşağıda bulabilirsiniz. Aşağıda örnek bir uygulamasının görseli yer almaktadır.
    Biz bu kodlamada küçük periyodu baz aldık.
    Koşulları şöyle kurduk;

    AL KOŞULU: 5 Dakikalık MA yukarı kestiyse VE 60 dakikalık MA(9) MA(26)dan üstteyse (daha önce kesmiş)
    AL KOŞULU: 5 Dakikalık MA aşağı kestiyse VE 60 dakikalık MA(9) MA(26)dan alttaysa (daha önce kesmiş)

    Siz isterseniz kod üzerinde oynama yaparak, kolayca bunun tersi stratejiyi de uygulayabiliriniz.

    Kod:
    var SaatlikVeriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, "60");
    var SaatlikClose = Sistem.GrafikFiyatOku(Sistem.Sembol, "60", "Kapanis");
    var BesDakikaVeriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, "5");
    var BesDakikaClose = Sistem.GrafikFiyatOku(Sistem.Sembol, "5", "Kapanis");
    
    var SaatlikMA26 = Sistem.MA(SaatlikClose, "Simple", 14);
    var SaatlikMA9 = Sistem.MA(SaatlikClose, "Simple", 9);
    var BesDakikaMA26 = Sistem.MA(BesDakikaClose,"Simple",26);
    var BesDakikaMA9 = Sistem.MA(BesDakikaClose,"Simple",9);
    
    SaatlikMA9 = Sistem.DonemCevir(Sistem.GrafikVerileri, SaatlikVeriler, SaatlikMA9);
    SaatlikMA26 = Sistem.DonemCevir(Sistem.GrafikVerileri, SaatlikVeriler, SaatlikMA26);
    
    
    Sistem.Cizgiler[0].Deger = SaatlikMA9;
    Sistem.Cizgiler[0].Aciklama = "Saatlik MA9";
    Sistem.Cizgiler[1].Deger = SaatlikMA26;
    Sistem.Cizgiler[1].Aciklama = "Saatlik MA26";
    Sistem.Cizgiler[2].Deger = BesDakikaMA9;
    Sistem.Cizgiler[2].Aciklama = "5 Dakika MA9";
    Sistem.Cizgiler[3].Deger = BesDakikaMA26;
    Sistem.Cizgiler[3].Aciklama = "5 Dakika MA26";
    
    
    // strateji
    var SonYon = "";
    for (int i = 1; i<Sistem.BarSayisi; i++)
    {
       // alış koşulu
       var MA5Dk_YukariKestiyse = (BesDakikaMA9[i-1] < BesDakikaMA26[i-1] && BesDakikaMA9[i] >= BesDakikaMA26[i]);
       var MA60Dk_Yukaridaysa = (SaatlikMA9[i] > SaatlikMA26[i]);
       if (MA5Dk_YukariKestiyse && MA60Dk_Yukaridaysa)
          {     
             if ( SonYon != "A") 
          {
             Sistem.Yon[i] = "A";  // alış
             SonYon = "A";
          }
          }
       // satış koşulu
       var MA5Dk_AsagiKestiyse = (BesDakikaMA9[i-1] > BesDakikaMA26[i-1] && BesDakikaMA9[i] <= BesDakikaMA26[i]);
       var MA60Dk_Asagidaysa = (SaatlikMA9[i] < SaatlikMA26[i]);
       if (MA5Dk_AsagiKestiyse && MA60Dk_Asagidaysa)
       {
          if ( SonYon != "S") 
       {
                Sistem.Yon[i] = "S";  // Satış
                SonYon = "S";
        }
          }
    }


    Saygılarımızla

     Alıntı Originally Posted by modidedo Yazıyı Oku
    İdeal Ekibi yaklaşık 5 aydır foruma yazmamış, sistem ile ilgili kendilerine de mail attım cevap alamadım şimdilik, şansımı bir de buradan deniyim...

    Aşağıda verdiğim kod parçası ile ilgili bir sorum olacak:


    // Saatlik Veriler
    var KapanislarH = Sistem.GrafikVerileriniOku(Sembol, "60");
    var MAH26 = Sistem.MA(KapanislarH, "Simple", 26);
    var MAH9 = Sistem.MA(KapanislarH, "Simple", 9);

    // 5 Dakikalık Veriler

    var Kapanislarm = Sistem.GrafikVerileriniOku(Sembol, "5");
    var MAM26 = Sistem.MA(Kapanislarm, "Simple", 26);
    var MAM9 = Sistem.MA(Kapanislarm, "Simple", 9);



    // alış
    if (Sistem.YukariKestiyse( MAH26 , MAH9) && Sistem.YukariKestiyse( MAM26 , MAM9) )




    Yukarıdaki Kod parçasında 26 ve 9 hareketli ortalamaları hesaplatıyorum (saatlik ve 5 dakikalık için), sonrasında alış koşulu olarak örnekte olduğu gibi "Sistem.YukariKestiyse" sistem fonksiyonunu kullandığımda saatlik ve 5 dakikalık barların aynı zaman diliminde yukarı kesmesi gerekiyor. Yani saatlik hareketli ortalama 15:00 da yukarı kesti ama 5 dakikalık grafik 15:35 de yukarı kestiyse koşul çalışmıyor.

    Benim istediğim herhangi biri yukarı kestikten sonra diğeri de yukarı keserse sistemin alım yapması.

    Söz konusu koşulu aşağıdaki gibi değiştirdim ama yine sonuç alamadım bu sefer çok fazla alım satım yapıyor ( pozisyon şartı koysam bile)

    if (MAH26[MAH26.count-1] > MAH9[MAH9.count-1] && MAM26[MAM26.count-1] > MAM9[MAM9.count-1] )

  5. #821

    Esas

    iki ayrı robota 2 ayrı hesap tanımlamak istiyorum dedim.herhangi bir yardım yapamıyomuş teknik servis.o zaman adın niye teknik servis.yazılım departmanı ilgileniyomuş mail atın diyolar 100 tane mail at dönüş yok.bari bir örneğini yaz da kullanıcı baksın.bütün gün çay kahve ,muabbet ediyo galiba elemanlar.

  6. Esas

    iDeal Kullanıcı adınız nedir?

    Teknik Destek ekibi yazılımıcılardan oluşmuyor, o nedenle yazılım grubuna mail atmanız isteniyor.

    Emir gönder komut satırlarının altına şu iki satırı ekleyerek robot emrini istediğiniz hesaba yönlendirebilirsiniz;
    Sistem.EmirHesapadi = "xxxx, abc menkul";
    Sistem.EmirAltHesap = "yyyy";

    xxx= hesap numarası
    yyy= alt hesap numarası

     Alıntı Originally Posted by merce Yazıyı Oku
    iki ayrı robota 2 ayrı hesap tanımlamak istiyorum dedim.herhangi bir yardım yapamıyomuş teknik servis.o zaman adın niye teknik servis.yazılım departmanı ilgileniyomuş mail atın diyolar 100 tane mail at dönüş yok.bari bir örneğini yaz da kullanıcı baksın.bütün gün çay kahve ,muabbet ediyo galiba elemanlar.

  7. #823

    Esas

    Cümleten merhaba, , yardımcı olanlara/olacaklara şimdiden teşekkürler,

    amacım tek bir ma çizmek, değişkenlerim 3 tane olsun (veri, yöntem ve periyot) ama seçtiğim veri türüne göre çizebileyim istiyorum (yani sistemin parametre kısmında
    3 kutu aktif olacak, ben buraya giriş yapacağım, sanırım mantık bu olmalı) , aşağıda birşeyler karalamaya çalıştım ama olmadı.

    // parametreleri al
    var Veriler = Sistem.parametreler[0]
    var Yontem = Sistem.parametreler[1]
    var Periyot = Sistem.Parametreler[2];

    // fiyatları oku
    var Veriler = Sistem.GrafikFiyatSec("Acilis");
    var Veriler = Sistem.GrafikFiyatSec("Dusuk");
    var Veriler = Sistem.GrafikFiyatSec("Hacim");
    var Veriler = Sistem.GrafikFiyatSec("Kapanis");
    var Veriler = Sistem.GrafikFiyatSec("Lot");
    var Veriler = Sistem.GrafikFiyatSec("OHLC/4");
    var Veriler = Sistem.GrafikFiyatSec("Ortalama");
    var Veriler = Sistem.GrafikFiyatSec("OrtaNokta");
    var Veriler = Sistem.GrafikFiyatSec("Tipik");
    var Veriler = Sistem.GrafikFiyatSec("Yuksek");

    // hareketli ortalamaları hesapla
    var MA1 = Sistem.MA(Veriler, Yontem, Periyot);

    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger = MA1;
    Sistem.Cizgiler[0].Aciklama = "MA " + Periyot;
    Son düzenleme : anonimm; 14-08-2014 saat: 21:21.

  8. #824

    Esas

    sayın idealtrade ilginize teşekkür ederim.
    c# ögrenmek için basit bir robot örneği yazdım.ama hata vermediği halde çalışmıyor.
    şunu yaptırmak istedim robota; bir önceki bar yukarı kırılırsa alsın aşağı kırılırsa stop ve flat kalsın.
    yapabilene bravo diyecez arkadaşlar.

    var Sembol = "VIP'F_XU0300814S0";
    var Veriler = Sistem.GrafikVerileriniOku("VIP'F_XU0300814S0","1" ,"Yüksek","Dusuk");
    var Pozisyon = Sistem.PozisyonKontrolOku(Sembol);
    var SonFiyat=Sistem.SonFiyat(Sembol);
    var SMI=Sistem.BarSayisi;

    for (int i = 1; i<Sistem.BarSayisi; i++)
    {
    if (SMI[i] >SMI [i-1] && SonFiyat == Veriler[i].High )
    {
    if (i==Veriler.Count-1)
    {
    if ( Pozisyon == 0)
    {
    var Miktar = 20;
    Sistem.PozisyonKontrolGuncelle(Sembol, Pozisyon+Miktar);
    Sistem.EmirSembol = Sembol;
    Sistem.EmirIslem = "Alış";
    Sistem.EmirMiktari = Miktar;
    Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
    Sistem.EmirTipi = "KPY"; // KPY, KIE, GIE, SAR
    Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
    Sistem.EmirGonder();

    }
    }
    }
    if (SMI[i] <SMI [i-1] && SonFiyat == Veriler[i].Low )
    {
    if (i==Veriler.Count-1)
    {
    if ( Pozisyon > 0)
    {
    var Miktar = 20;
    Sistem.PozisyonKontrolGuncelle(Sembol, 0);
    Sistem.EmirSembol = Sembol;
    Sistem.EmirIslem = "Satış";
    Sistem.EmirMiktari = Miktar;
    Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
    Sistem.EmirTipi = "KPY"; // KPY, KIE, GIE, SAR
    Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
    Sistem.EmirGonder();
    }
    }

    }
    }
    Son düzenleme : merce; 16-08-2014 saat: 17:15.

Sayfa 103/1154 İlkİlk ... 353931011021031041051131532036031103 ... SonSon

Gönderi Kuralları

  • Yeni konu açamazsınız
  • Konulara cevap yazamazsınız
  • Yazılara ek gönderemezsiniz
  • Yazılarınızı değiştiremezsiniz
  •