Sayfa 134/595 İlkİlk ... 3484124132133134135136144184234 ... SonSon
Arama sonucu : 4757 madde; 1,065 - 1,072 arası.

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

  1. #1065
    Duhul
    Feb 2017
    İkamet
    afyonkarahisar
    Gönderi
    791
    sayın emlak
    matrikste bir hisse grafiğine trend çizgisi çizdik ve bu trend çizgisine yukarı kırdığında alarm kurduk
    o hisse grafiği açık olması gerekiyormu alarm çalması için
    o hisse grafiği açık olmadanda hisse fiyatı trend çizgisini yukarı kırdığında alarm çalıyor mu

  2.  Alıntı Originally Posted by EMLAK Yazıyı Oku
    teşekkürler alekss hocam. normalde matrikste c-2 yazarız ama burda + koyuyoruz demekki )
    Selamlar, İstediğiniz, fotoda gösterdiğim gibi birşey mi?

    (üstteki kodda stratejinin sinyal yerlerine etkisi olacak bir değişiklik yok,)

    [IMG]

    [/IMG]

    Eğer istek buysa kod şöyle olur

    Kod:
    var RSI = Sistem.RSI(14);
    
    var SonYon = "";
    for (int i = 10; i < RSI.Count; i++)
    {
       if (RSI[i-5] < 50 && RSI[i-4] > 50 && SonYon != "A" )
       {
          Sistem.Yon[i] = "A";
          SonYon = "A";
       }
       if (RSI[i-3] > 50 && RSI[i-2] < 50 && SonYon != "S")
       {
          Sistem.Yon[i] = "S";
          SonYon = "S";
       }    
    }
    Sistem.Cizgiler[0].Deger = RSI; //panel2
    Sistem.Cizgiler[1].Deger = Sistem.Liste(50); //panel2
    Not: büyüktür,küçüktür yerine kesişme kullandım. Çünkü sinyali 4 bar geciktirdiğinizde (RSI'ın büyük olma durumunu), o 4 bardan birine "RSI'ın küçük olma" durumu da denk gelebiliyor.

    Kolay gelsin

  3. Bu arada, idealin son versiyonlarında EXCEL OKU fonksiyonu ekledik.
    Her türlü amaç için kullanılabilir.
    Mesela: önceden tanımlanan hisseler (veya varantlar, vadeli kontratlar vs.) için, Şu fiyata gelirse al, şu fiyata gelirse KarAl yapıp pozisyonu kapat, şu fiyata gelirse stoplan pozisyonu kapat gibi bir robota exceli bağlayabilirsiniz.
    (excelin açık olması gerekmez.)

    örnek kod:
    Kod:
    string FileName = "C:\\ideal\\HisseRobot.Xlsx";
    bool DevamEt = true;
    
    if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday) DevamEt = false;
    if (DateTime.Now.DayOfWeek == DayOfWeek.Sunday) DevamEt = false;
    if (DateTime.Now.ToString("HHmm").CompareTo("1000") <= 0) DevamEt = false;
    if (DateTime.Now.ToString("HHmm").CompareTo("1800") >= 0) DevamEt = false;
    if (DateTime.Now.ToString("HHmm").CompareTo("1300") >= 0 && DateTime.Now.ToString("HHmm").CompareTo("1400") <= 0) DevamEt = false;
    if (System.IO.File.Exists(FileName) == false) DevamEt = false;
    
    if (DevamEt)
    {
        var ExcelArray = Sistem.NesneGetir(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"));
        if (ExcelArray == null)
        {
            ExcelArray = Sistem.ExcelOku(FileName);
            Sistem.NesneKaydet(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"), ExcelArray);
        }
    //Excel dosyasını 5 dk'da bir tekrar oku.
        if (Sistem.ZamanKontrolDakika(FileName + ";" + DateTime.Now.ToString("yyyyMMdd")) >= 5)
        {
            Sistem.ZamanKontrolGuncelle(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"));
            ExcelArray = Sistem.ExcelOku(FileName);
            Sistem.NesneKaydet(FileName + ";" + DateTime.Now.ToString("yyyyMMdd"), ExcelArray);
        }
        int SatirSayisi = ExcelArray.GetLength(0); //satırların sayısını bul
        for (int i = 2; i <= SatirSayisi; i++)
        {
            var Sembol = ExcelArray[i, 1].ToString();
            var AlisFiyat = (decimal)ExcelArray[i, 2];
            var HedefFiyat = (decimal)ExcelArray[i, 3];
            var StopFiyat = (decimal)ExcelArray[i, 4];
            var Lot = (int)ExcelArray[i, 5];
            var Anahtar = Sistem.Name + " , " + Sembol;
            double IslemFiyat = 0;
            DateTime IslemTarih;
            var Rezerv = "";
            var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);
    
            var EmirSembol = "IMKBH'" + Sembol;
            var basicitem = Sistem.YuzeyselVeriOku(EmirSembol);
            var sonfiyat = basicitem.LastPrice;
            var bidfiyat = basicitem.BidPriceDec;
            var askfiyat = basicitem.AskPriceDec;
            var Islem = "";
            var Miktar = 0.0;
            if (askfiyat >= AlisFiyat && Pozisyon == 0 && Rezerv == "") // AL
            {
               Rezerv = "AL";
               Miktar = Lot;
               IslemFiyat = Sistem.SonFiyat(EmirSembol);
            }
            else if (Pozisyon > 0 && askfiyat >= HedefFiyat && Rezerv == "AL")  // KARLA KAPAT
            {
               Rezerv = "KAR AL";
               Miktar = -Lot;
            }
            else if (Pozisyon > 0 && bidfiyat < StopFiyat && Rezerv == "AL")  // STOP
            {
               Rezerv = "STOP";
               Miktar = -Lot;
            }
    
            if (Miktar > 0) Islem = "ALIS";
            if (Miktar < 0) Islem = "SATIS";
            if (Islem != "")
            {
               Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, IslemFiyat, Rezerv);
               Sistem.EmirSembol = EmirSembol;
               Sistem.EmirIslem = Islem;
               Sistem.EmirSuresi = "KIE";
               Sistem.EmirTipi = "Piyasa";
               Sistem.EmirMiktari = Math.Abs(Miktar);
               Sistem.EmirGonder();
           }
       }
    }

  4. #1068
     Alıntı Originally Posted by alekss Yazıyı Oku
    sayın emlak
    matrikste bir hisse grafiğine trend çizgisi çizdik ve bu trend çizgisine yukarı kırdığında alarm kurduk
    o hisse grafiği açık olması gerekiyormu alarm çalması için
    o hisse grafiği açık olmadanda hisse fiyatı trend çizgisini yukarı kırdığında alarm çalıyor mu
    hocam benim bildiğim matrikste sinyal gelmesi için mutlaka grafiğin açık olmas lazım. explorer da otomatik taratıyorsan gerek yok. excele aktarırsan hallolur. birde alarm kur gibi seçenek var ama trend çizgisini formüle etmek demek grafik olması demek. grafikte trend çizgisi zamana bağlı olrak yeri değişiyor çünkü . sabit bir fiyatı yok.

    sezai hocam teşekkürler tekrar kalabalık olmasın diye alıntılamadım.
    Ateşleri ateşlere katarak gel.. denizleri denizlere katarak. Reklamsız resim yükle : UPLOAD IMAGE

  5. Ocağınıza düştüm.

    RSİ indikatoru içine 3 adet yatay çizgi çekip bu çizgiler doğrultusundan sistemin flata geçmesini veya sinyallere devam etmesini istiyorum.


    Sistem 2 tane ma kesişimi

    flat strateji ise;

    Ref1= 65
    Ref2 = 50
    Ref3 = 35

    RSİ 65 i aşağı kestiyse flata geç tekrar yukarı keserse mevcut sinyallere devam et.
    RSİ 50 i aşağı kestıyse flata geç tekrar yukarı keserse mevcut sınyallere devam et.
    rsi 35 i aşağı kestiyse flata geç tekrar yukarı keserse mevcut sınyallere devam et.

    bu algoritmayı yaratamadım referanslar birbirine giriyor sistem düzgün sinyal uretemıyor.

    // kapanış fiyatlarını oku
    var Veriler = Sistem.GrafikFiyatSec("Kapanis");

    // hareketli ortalamaları hesapla
    var MA1 = Sistem.MA(2, "Simple", "Kapanis");
    var MA2 = Sistem.MA(20, "Simple", "Kapanis");
    var RSI = Sistem.RSI(14);
    var REF1= Sistem.Liste(75);
    var REF2= Sistem.Liste(50);
    var REF3= Sistem.Liste(35);

    // strateji
    for (int i = 1; i<Sistem.BarSayisi; i++)
    {
    if (MA1[i-1] < MA2[i-1] && MA1[i] > MA2[i])
    Sistem.Yon[i] = "A"; // alış
    if (MA1[i-1] > MA2[i-1] && MA1[i] < MA2[i])
    Sistem.Yon[i] = "S"; // satış
    }


    //FLAT Stratejisi
    for (int i = 1; i<Sistem.BarSayisi; i++)
    {
    if (RSI[i-1] > REF1[i-1] && RSI[i] < REF1[i])
    Sistem.Yon[i] = "F";
    if (RSI[i-1] > REF2[i-1] && RSI[i] < REF2[i])
    Sistem.Yon[i] = "F";
    if (RSI[i-1] > REF3[i-1] && RSI[i] < REF3[i])
    Sistem.Yon[i] = "F";
    }


    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger = MA1;
    Sistem.Cizgiler[0].Aciklama = "MA ";
    Sistem.Cizgiler[1].Deger = MA2;
    Sistem.Cizgiler[1].Aciklama = "MA ";
    Sistem.Cizgiler[2].Deger = RSI;
    Sistem.Cizgiler[2].Aciklama = "RSI ";
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  6. #1070
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,642
     Alıntı Originally Posted by erhanacikgoz1 Yazıyı Oku
    Ocağınıza düştüm.

    RSİ indikatoru içine 3 adet yatay çizgi çekip bu çizgiler doğrultusundan sistemin flata geçmesini veya sinyallere devam etmesini istiyorum.


    Sistem 2 tane ma kesişimi

    flat strateji ise;

    Ref1= 65
    Ref2 = 50
    Ref3 = 35

    RSİ 65 i aşağı kestiyse flata geç tekrar yukarı keserse mevcut sinyallere devam et.
    RSİ 50 i aşağı kestıyse flata geç tekrar yukarı keserse mevcut sınyallere devam et.
    rsi 35 i aşağı kestiyse flata geç tekrar yukarı keserse mevcut sınyallere devam et.

    bu algoritmayı yaratamadım referanslar birbirine giriyor sistem düzgün sinyal uretemıyor.
    ERHAN
    sistem alda iken 65 üstüne çıkıp altına inerse flat
    sistem satta ,ken 35 altına inip üstüne çıkarsa flat

    aşağıda
    kalanını kendine göre düzenlersin.

    PHP Code:
    var Veriler Sistem.GrafikFiyatSec("Kapanis");

    // hareketli ortalamaları hesapla
    var MA1 Sistem.MA(2"Simple""Kapanis");
    var 
    MA2 Sistem.MA(20"Simple""Kapanis");
    var 
    RSI Sistem.RSI(14);
    //var REF1= Sistem.Liste(65);
    //var REF2= Sistem.Liste(50);
    //var REF3= Sistem.Liste(35);
    var SonYon "";

    // strateji
    for (int i 1i<Sistem.BarSayisii++)
    {
    if ( 
    MA1[i-1] < MA2[i-1] && MA1[i] > MA2[i])
    {
    Sistem.Yon[i] = "A"// alış
    SonYon "A";
    }

    if (
    MA1[i-1] > MA2[i-1] && MA1[i] < MA2[i])
    {
    Sistem.Yon[i] = "S"// satış
    SonYon "S";
    }

    //}


    //FLAT Stratejisi
    //for (int i = 1; i<Sistem.BarSayisi; i++)
    //{
    if ( SonYon == "A" && RSI[i-1] > 65 && RSI[i] < 65 )
    {
    Sistem.Yon[i] = "F"// satış
    SonYon "F";
    }

    if (
    SonYon == "S" && RSI[i-1] < 35 && RSI[i] > 35)
    {
    Sistem.Yon[i] = "F"// satış
    SonYon "F";
    }
    }


    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger MA1;
    Sistem.Cizgiler[0].Aciklama "MA ";
    Sistem.Cizgiler[1].Deger MA2;
    Sistem.Cizgiler[1].Aciklama "MA ";
    Sistem.Cizgiler[2].Deger RSI;
    Sistem.Cizgiler[2].Aciklama "RSI "
    Bear_Bull
    @BearBull26

  7. Aşağıda ki formülde yapmak istedğim ya da hesaplatmak istediğim şey
    Bir X değeri var ve bu değer değişkenlik gösterebilir.
    Örnek olarak X değerimiz 4 olsun.
    Eregli hissesinin ilk 4 alış kademesindeki emir miktarlarını toplatmak istiyorum ancak bunu yapamadım.
    Yardımcı olabilirseniz sevinirim.
    PHP Code:
    float X Sistem.SayiYuvarla(KademeSayisi,0.01);
    //Derinlik Okutma
    var Derinlik Sistem.DerinlikVerisiOku(IMKBH'EREGL);
    // Alış Kademesi Okutma
    var AlisLotKademe = Sistem.Liste(0);
    for (int i=0; i <= X;i++)
    {
    AlisLotKademe[i] = Derinlik.Bids[i].Size;
    }
    // Emir Miktarı Hesaplatma
    var EmirMiktarı = Sistem.Sum(AlisFiyatKademe); 
    Son düzenleme : tripharma; 20-03-2018 saat: 16:41.

  8. Kod:
    float X = Sistem.SayiYuvarla(KademeSayisi,0.01); 
    //Derinlik Okutma 
    var Derinlik = Sistem.DerinlikVerisiOku(IMKBH'EREGL); 
    // Alış Kademesi Okutma 
    var AlisLotKademe = 0; 
    for (int i=0; i <= X;i++) 
    { 
    AlisLotKademe = AlisLotKademe +Derinlik.Bids[i].Size; 
    } 
    // Emir Miktarı Hesaplatma 
    var EmirMiktarı =AlisLotKademe;
    olabilir.
    aslında sizinkinde de sorun görünmüyor ama belki derinlik lisansınız olmayabilir

Sayfa 134/595 İlkİlk ... 3484124132133134135136144184234 ... SonSon

Yer İmleri

Yer İmleri

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
  •