Sayfa 615/617 İlkİlk ... 115515565605613614615616617 SonSon
Arama sonucu : 4934 madde; 4,913 - 4,920 arası.

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

  1. Hocam, hayırlı akşamlar, öncelikle cevabınız için teşekkür ederim. Ben kendi çapımda bir şeyler karalayayım. Burada paylaşayım. Kontrol edip hatamı düzeltebilirseniz, memnun olurum.


     Alıntı Originally Posted by Bear_Bull Yazıyı Oku
    merhaba

    her alış işleminde
    Alışlartoplamı = Alışlartoplamı + SonAlış ;

    her satış işleminde
    Satışlartoplamı = Satışlartoplamı + SonSatış;

    işlemler kaydettirilirse

    (Alışlartoplamı - Satışlartoplamı) - eldeki poz * Sonfiyat ile kar rakamı buldurulabilir.


    bunlar Sistem.Liste(0) olarak tanımlanarak yapılırsa getiri eğrisi oluşturulabilir.

    pek kolay bir işlem değil.

  2. Hocam bir sorum daha olacak:

    Öncelikle hayırlı akşamlar. İdeal' de ilk 10 kademedeki ALIŞ ve SATIŞ toplamını RSI gibi grafik altında dalgalanan bir osilatör olarak takip etmek istiyorum. Bunu nasıl yapabilirim? İdeal' in açıklamalarında şu formül var, ama bu da tahtadaki tüm alış ve satış toplamlarını veriyor.

    var Derinlik = Sistem.DerinlikVerisiOku(Sistem.Sembol);
    var C = Sistem.GrafikFiyatSec("Kapanis");
    var Alistoplam = 0;
    var Satistoplam = 0;

    for (int i = 0; i < 6; i++) { Alistoplam += Derinlik.Bids[i].Size; Satistoplam += Derinlik.Asks[i].Size; }

  3. #4915
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    54
    Gönderi
    5,163
    derinliğin altında zaten hazır olarak 10 kademenin ve tavan/taban a kadar olan bekleyen emirlerin
    lot ve ortalama fiyat olarak veren hazır kolon var onların ideal isimleri bulunarak
    Sistem.Yuzeyselveri den alınabilir, ancak anlık olduğundan ve bir yere kaydedilmediğinden bu veriye indikatör oluşturmak imkansız. aslında yapılabilir ama bu seferde Dfnideal olarak özel sembol oluşturulup ilk önce kaydedilmesi oradan okutularak indikatör bağlamak imkan dahilinde olabilir buda hepten karışık hale getirir.

    siz 5 kademenin toplamı için yazmışsınız, yazdığınız kod ile DFN Sembol e kaydedilip grafik haline getirilebilir.

    şöyle bir sorun çıkartabilir bekleyen emirler sürekli değişecek ama DFN sembol e kaydederken 1 dk gibi (son anda ne varsa ) kaydedilebilecek.
    Bear_Bull
    @BearBull26

  4. Bu şekilde kaydetsem çalışır mı?

    Hocam,

    Formülü şu şekilde kaydetsem çalışır mı?

    var Derinlik = Sistem.DerinlikVerisiOku(Sistem.Sembol);
    var C = Sistem.GrafikFiyatSec("Kapanis");
    var Alistoplam = 0;
    var Satistoplam = 0;

    for (int i = 0; i < 10; i++) { Alistoplam += Derinlik.Bids[i].Size; Satistoplam += Derinlik.Asks[i].Size; }

    Sistem.Cizgiler[0].Deger = Alistoplam;
    Sistem.Cizgiler[1].Deger = Satistoplam;

    Amacım kademe robotunu derinlikteki değişime göre çalıştırmak. Trend indikatörüm if ( Satistoplam > Alistoplam ise her gridi kestiğinde 10 lot AL, 5 kademe yukarıya SATIŞ yaz), else if ( Alistoplam < Satistoplam ise her gridi aşağıya kestiğinde portföyden 10 lot SAT, 5 kademe aşağıya ALIŞ yaz) şeklinde düzenleme yapmak istiyorum.

    Nasıl yapabilirim?




    derinliğin altında zaten hazır olarak 10 kademenin ve tavan/taban a kadar olan bekleyen emirlerin
    lot ve ortalama fiyat olarak veren hazır kolon var onların ideal isimleri bulunarak
    Sistem.Yuzeyselveri den alınabilir, ancak anlık olduğundan ve bir yere kaydedilmediğinden bu veriye indikatör oluşturmak imkansız. aslında yapılabilir ama bu seferde Dfnideal olarak özel sembol oluşturulup ilk önce kaydedilmesi oradan okutularak indikatör bağlamak imkan dahilinde olabilir buda hepten karışık hale getirir.

    siz 5 kademenin toplamı için yazmışsınız, yazdığınız kod ile DFN Sembol e kaydedilip grafik haline getirilebilir.

    şöyle bir sorun çıkartabilir bekleyen emirler sürekli değişecek ama DFN sembol e kaydederken 1 dk gibi (son anda ne varsa ) kaydedilebilecek.[/QUOTE]

  5.  Alıntı Originally Posted by muratderici Yazıyı Oku
    Hocam, hayırlı akşamlar, öncelikle cevabınız için teşekkür ederim. Ben kendi çapımda bir şeyler karalayayım. Burada paylaşayım. Kontrol edip hatamı düzeltebilirseniz, memnun olurum.
    Hocam bir sorum olacak:

    her alış işleminde
    Alışlartoplamı = Alışlartoplamı + SonAlış ;

    şeklinde yazailmek için sanırım

    var AlislarToplami =
    var SonAlis = yazıp bunları tanımlamam gerekecek sanırım. Nasıl tanımlayabilirim? Ne yazık ki İdeal Matriks gibi değil. Her işlem önce tek tek tanımlanma zorunluluğu taşıyor.

  6. Sistem.PozsyonKOntrolOku ile ilgili soru

    İdeal Algo Destek bölümü sağolsunlar bana şöyle bir kademe robotu göndermişler. Burada anlamadığım 3 konu var:
    1) 5 tane sözlük tanımlanmış. Bunların her birisi farklı bir hisse için mi, yoksa tek bir hisse için mi? 2) örneğin formüldeki Sozluk[0] = new List<double> {21.20,21.45,1,1};//işleme gir/karal/stop / adet satırından ben 21,20TL de işleme gir, 21,45 TL de kar al, 1% düşerse STOP ol, 1 lot AL olarak anladım(Lütfen unutmayınız ben İdeal yazılım dilini ve c# bilmiyorum). Ama aşağı satırlara bakıyorum, 1% tanımlanmamış. Birisi bana girişteki tanımlamanın Türkçesini yazarsa, memnun olurum.
    2) Yine formülde

    if (sonfiyat <= AlisFiyat && Pozisyon == 0 && Rezerv == "") // AL

    {

    Rezerv = "AL";

    Miktar = Lot;

    IslemFiyat = Sistem.SonFiyat(EmirSembol);

    }
    Bunun anlamı tahtadaki ALIŞ Fiyatı aktife geçerse, AL anlamına mı geliyor? Sanırım bu formülde grid tanımlanmamış. Sadece pasifteki ALIIŞ fiyatı aktife geçerse AL, diyor. Peki her kademe aktife geçtikçe alacak mı? Örneğin klasik gridbotta varsayalım 4-5 kademeye denk gelen yatay çizgiyi kesikçe alsın, satsın, diyoruz. Burada da öyle mi olacak?

    3) Aynı seviyeyi tekrar tekrar kestiğinde mükerrer ALIM-SATIM yapmaması için sisteme Anahtar ve var Pozisyon = Sistem.PozisyonKontrolOku şartlarını tanımlıyoruz. Örneğin İdeal algomarketteki şu formülde https://www.algomarket.com.tr/Form%C3%BCl/Detay/86

    var Anahtar = Sistem.Name + "," + EmirSembol;
    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar); ve işlem sonunda da Sistem.PozisyonKontrolGuncelle(Anahtar, Lot); şeklinde tanımlanmış.
    İdeal' in bana gönderdiği formülde de var Anahtar = line + " , " +Sistem.Name + " , " + EmirSembol;

    double IslemFiyat = 0;

    DateTime IslemTarih;

    var Rezerv = "";

    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);

    şeklinde tanımlayıp işlem bitiminde de

    Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, IslemFiyat, Rezerv); diyerek kapatmış. Biz bir formül yazarsak hangi kalıbı kullanacağız ve iki kalıp arasındaki fark nedir?

    BANA GÖNDERİLEN FORMÜLÜ AŞAĞIDA PAYLAŞIYORUM. SORULARIMI CEVAPLAYABİLİRSENİZ, MEMNUN OLURUM.

    var Sozluk = new Dictionary<float,List<double>>();

    Sozluk[0] = new List<double> {21.20,21.45,1,1};//işleme gir/karal/stop / adet

    Sozluk[1] = new List<double> {11.16,11.21,1,1};//işleme gir/karal/stop / adet

    Sozluk[2] = new List<double> {11.12,11.17,1,1};//işleme gir/karal/stop / adet

    Sozluk[3] = new List<double> {11.08,11.13,1,1};//işleme gir/karal/stop / adet

    Sozluk[4] = new List<double> {11.04,11.09,1,1};//işleme gir/karal/stop / adet

    Sozluk[5] = new List<double> {11.00,11.05,1,1};//işleme gir/karal/stop / adet


    for (var No=0; No < Sozluk.Count; No++)

    {

    var EmirSembol = "IMKBH'ISCTR";

    var AlisFiyat = (decimal)Sozluk.ElementAt(No).Value[0];

    var HedefFiyat = (decimal)Sozluk.ElementAt(No).Value[1];

    var StopFiyat = (decimal)Sozluk.ElementAt(No).Value[2];

    var Lot = Sozluk.ElementAt(No).Value[3];

    var line=No;


    var Anahtar = line + " , " +Sistem.Name + " , " + EmirSembol;

    double IslemFiyat = 0;

    DateTime IslemTarih;

    var Rezerv = "";

    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);

    var basicitem = Sistem.YuzeyselVeriOku(EmirSembol);

    var sonfiyat = (decimal)basicitem.LastPrice;

    var bidfiyat = (decimal)basicitem.BidPriceDec;

    var askfiyat = (decimal)basicitem.AskPriceDec;


    if (sonfiyat == 0) continue;

    if (bidfiyat == 0) continue;

    if (askfiyat == 0) continue;


    var Islem = "";

    var Miktar = 0.0;

    if (sonfiyat <= AlisFiyat && Pozisyon == 0 && Rezerv == "") // AL

    {

    Rezerv = "AL";

    Miktar = Lot;

    IslemFiyat = Sistem.SonFiyat(EmirSembol);

    }

    else if (Pozisyon > 0 && askfiyat >= HedefFiyat && Rezerv == "AL") // KARLA KAPAT

    {

    Rezerv = "";

    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 = (int)Math.Abs(Miktar);

    Sistem.EmirGonder();

    }

    }




     Alıntı Originally Posted by Bear_Bull Yazıyı Oku
    derinliğin altında zaten hazır olarak 10 kademenin ve tavan/taban a kadar olan bekleyen emirlerin
    lot ve ortalama fiyat olarak veren hazır kolon var onların ideal isimleri bulunarak
    Sistem.Yuzeyselveri den alınabilir, ancak anlık olduğundan ve bir yere kaydedilmediğinden bu veriye indikatör oluşturmak imkansız. aslında yapılabilir ama bu seferde Dfnideal olarak özel sembol oluşturulup ilk önce kaydedilmesi oradan okutularak indikatör bağlamak imkan dahilinde olabilir buda hepten karışık hale getirir.

    siz 5 kademenin toplamı için yazmışsınız, yazdığınız kod ile DFN Sembol e kaydedilip grafik haline getirilebilir.

    şöyle bir sorun çıkartabilir bekleyen emirler sürekli değişecek ama DFN sembol e kaydederken 1 dk gibi (son anda ne varsa ) kaydedilebilecek.

  7. #4919
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    54
    Gönderi
    5,163
    1 parça parça yazarak sanal çalıştırıp deneyebilirsiniz.
    2 yazım dilini ve program yazmayı bilmiyorum diyorsunuz çok fazla detaya giriyorsunuz istediğiniz şartlarda yazılımı usta birinin bile hatasız yapması zor
    3 en kolayı grid bot ideal içindeki hazır bot lar olur sizin için

    yazdıklarınız içinde bekleyen emirlerin büyüklüğü ve küçüklüğü ile al/sat a dönen yapı istiyorsunuz
    lot sayıları değiştikçe aldan sata, sattan ala ani dönüşler repaint gibi olur ve çok can yakabilir istenmeyen bir sürü emir gerçekleştirebilir.

    bu şekilde diyelim yazabildiniz ve çalıştırdınız, getiri eğrisi oluşturmayı düşünmeyin unutun. hesaplatamazsınız tamamen hatalı olur.
    Bear_Bull
    @BearBull26

  8. Yazdıklarınızın tamamını okumadım,
    Merak edip koda baktım, bakmışken soruları anladığım kadarıyla cevaplayayım dedim.

    1) 5 tane sözlük tanımlanmış. Bunların her birisi farklı bir hisse için mi, yoksa tek bir hisse için mi? 2) örneğin formüldeki Sozluk[0] = new List<double> {21.20,21.45,1,1};//işleme gir/karal/stop / adet satırından ben 21,20TL de işleme gir, 21,45 TL de kar al, 1% düşerse STOP ol, 1 lot AL olarak anladım(Lütfen unutmayınız ben İdeal yazılım dilini ve c# bilmiyorum). Ama aşağı satırlara bakıyorum, 1% tanımlanmamış. Birisi bana girişteki tanımlamanın Türkçesini yazarsa, memnun olurum.
    1) Hayır tek bir hisseye ait işleme girilecek/çıkılacak bilgileri içeriyor o sözlük bilgisi.
    işlem yapılacak sembol sabit olarak verilmiş zaten kodda: var EmirSembol = "IMKBH'ISCTR";

    2)listedeki 3.eleman fiyat bilgisi, yüzde ifade değil. Kodda doğrudan bidfiyat ile kıyaslanmış:
    else if (Pozisyon > 0 && bidfiyat < StopFiyat && Rezerv == "AL") // STOP

    2) Yine formülde

    if (sonfiyat <= AlisFiyat && Pozisyon == 0 && Rezerv == "") // AL

    {

    Rezerv = "AL";

    Miktar = Lot;

    IslemFiyat = Sistem.SonFiyat(EmirSembol);

    }
    Bunun anlamı tahtadaki ALIŞ Fiyatı aktife geçerse, AL anlamına mı geliyor? Sanırım bu formülde grid tanımlanmamış. Sadece pasifteki ALIIŞ fiyatı aktife geçerse AL, diyor. Peki her kademe aktife geçtikçe alacak mı? Örneğin klasik gridbotta varsayalım 4-5 kademeye denk gelen yatay çizgiyi kesikçe alsın, satsın, diyoruz. Burada da öyle mi olacak?
    Anlık fiyat(sonfiyat) listelerde tanımlanan ilk değerin altında olanlar için alış gönderir. Örneğin sonfiyat:10 ise 6 tane alımı peş peşe gönderir, ve karal/stop koşullarının gerçekleşmesini beklemeye başlar.

    3) Aynı seviyeyi tekrar tekrar kestiğinde mükerrer ALIM-SATIM yapmaması için sisteme Anahtar ve var Pozisyon = Sistem.PozisyonKontrolOku şartlarını tanımlıyoruz. Örneğin İdeal algomarketteki şu formülde https://www.algomarket.com.tr/Form%C3%BCl/Detay/86

    var Anahtar = Sistem.Name + "," + EmirSembol;
    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar); ve işlem sonunda da Sistem.PozisyonKontrolGuncelle(Anahtar, Lot); şeklinde tanımlanmış.
    İdeal' in bana gönderdiği formülde de var Anahtar = line + " , " +Sistem.Name + " , " + EmirSembol;

    double IslemFiyat = 0;

    DateTime IslemTarih;

    var Rezerv = "";

    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);

    şeklinde tanımlayıp işlem bitiminde de

    Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, IslemFiyat, Rezerv); diyerek kapatmış. Biz bir formül yazarsak hangi kalıbı kullanacağız ve iki kalıp arasındaki fark nedir?
    Orası sizin kullanımınıza/ihtiyacınıza bağlı.
    Tarif etmek için düzgün kelimeleri bulamadım şu anda(yazdım yazdım sildim)
    var Anahtar = line + " , " +Sistem.Name + " , " + EmirSembol; denildiğinde line kısmı sözlükteki her satır için değişeceği için hepsi için ayrı log atılmasını sağlıyor.
    Örneğin
    1.satıra istinaden şu fiyattan şu kadar pozisyon açtım
    2.satıra istinaden şu fiyattan şu kadar pozisyon açtım ....

Sayfa 615/617 İlkİlk ... 115515565605613614615616617 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
  •