Artan
Azalan
Ýþlem
BIST 30
BIST 50
BIST 100
NASDAQ 100
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
5,39 10% 227,19 Mn 4,92 / 5,39
6,60 10% 347,21 Mn 6,02 / 6,60
47,78 9.99% 487,57 Mn 44,44 / 47,78
16,88 9.97% 52,35 Mn 15,60 / 16,88
15,13 9.96% 301,89 Mn 13,69 / 15,13
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
30,60 -10% 152,28 Mn 30,60 / 33,34
43,58 -10% 47,59 Mn 43,58 / 43,58
33,40 -9.97% 227,39 Mn 33,40 / 37,00
142,70 -9.97% 447,93 Mn 142,70 / 172,00
10,93 -8.69% 632,77 Mn 10,90 / 12,70
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
285,50 0.18% 8,00 Mr 278,00 / 296,75
377,00 0.07% 5,48 Mr 376,50 / 389,75
99,05 2.54% 3,52 Mr 95,40 / 100,90
221,00 8.28% 3,10 Mr 204,20 / 224,50
168,30 4.53% 2,83 Mr 159,30 / 168,60
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
20,12 0.8% 236,98 Mn 19,86 / 20,32
66,50 0.61% 2,41 Mr 65,90 / 67,10
377,00 0.07% 5,48 Mr 376,50 / 389,75
285,50 0.18% 8,00 Mr 278,00 / 296,75
376,00 -1.18% 1,79 Mr 375,75 / 385,50
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
20,12 0.8% 236,98 Mn 19,86 / 20,32
66,50 0.61% 2,41 Mr 65,90 / 67,10
107,20 1.23% 205,03 Mn 105,30 / 107,50
101,80 -0.2% 33,42 Mn 101,50 / 102,80
377,00 0.07% 5,48 Mr 376,50 / 389,75
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
20,12 0.8% 236,98 Mn 19,86 / 20,32
32,22 -0.19% 23,96 Mn 32,18 / 32,78
66,50 0.61% 2,41 Mr 65,90 / 67,10
10,75 -0.28% 44,12 Mn 10,73 / 10,95
76,25 -0.52% 170,96 Mn 74,85 / 77,15

Masrafsýz Bankacýlýk + 1.000 TL Nakit! Enpara’dan Çifte Avantaj

Masrafsýz Bankacýlýk + 1.000 TL Nakit! Enpara’dan Çifte Avantaj
Sayfa 590/626 ÝlkÝlk ... 90490540580588589590591592600 ... SonSon
Arama sonucu : 5007 madde; 4,713 - 4,720 arasý.

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

  1. #4713
    //Hisse Talimatlari burada girilecek.
    var Sozluk = new Dictionary<string, List<double>>();
    Sozluk["IMKBH'KOZAL"] = new List<double> { 0.04, 0.08, 1, 30, 20 };//Hisse - kademe_al_seviye / kademe_sat_seviye / kademe_lot / yuksek / dusuk
    Sozluk["IMKBH'HALKB"] = new List<double> { 0.02, 0.07, 20, 16.80, 13 };//Hisse - kademe_al_seviye / kademe_sat_seviye / kademe_lot / yuksek / dusuk
    Sozluk["IMKBH'TSKB"] = new List<double> { 0.02, 0.07, 10, 10, 7 };//Hisse - kademe_al_seviye / kademe_sat_seviye / kademe_lot / yuksek / dusuk

    //Ana dongu kod yapisi
    for (var No = 0; No < Sozluk.Count; No++)
    {
    var EmirSembol = Sozluk.ElementAt(No).Key;
    var Anahtar = Sistem.Name + " , " + EmirSembol;
    var IslemFiyat = 0.0;
    DateTime IslemTarih;
    var Rezerv = "";
    var AlisFiyat = 0.0m;
    var SatisFiyat = 0.0m;
    var KademeFiyat = 0.0m;
    var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih, out Rezerv);
    var Lot = (double)Sozluk.ElementAt(No).Value[2];
    var Yuksek = (double)Sozluk.ElementAt(No).Value[3];
    var Dusuk = (double)Sozluk.ElementAt(No).Value[4];

    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;

    //Ilk Ýslem Sarti (Mevcut fiyat yuksek/dusuk arasinda ise ve poz yoksa, Al/Sat seviyesi kademe kadar belirlenir)
    string DosyaDir = "C:\\iDeal\\Kademeler" + EmirSembol.Split('\'')[1] + ".YapilanIslemler.txt"; // Dosya Adi
    if (!System.IO.Directory.Exists("C:\\iDeal\\Kademeler ")) System.IO.Directory.CreateDirectory("C:\\iDeal\\Ka demeler");
    if (!System.IO.File.Exists(DosyaDir)) System.IO.File.Create(DosyaDir);
    var ReadLines = System.IO.File.ReadAllLines(DosyaDir);


    if (ReadLines.Count() != 0)
    {

    KademeFiyat = (decimal)Convert.ToSingle(ReadLines.Last().Split(' \t')[1]);
    AlisFiyat = (decimal)Convert.ToSingle(ReadLines.Last().Split(' \t')[2]);
    SatisFiyat = (decimal)Convert.ToSingle(ReadLines.Last().Split(' \t')[3]);
    }
    else
    {
    AlisFiyat = (decimal)askfiyat;
    }

    var Islem = "";
    var Miktar = 0.0;
    //EKLEDÝÐÝM YER BURASI.....
    var V = Sistem.GrafikVerileriniOku(Sistem.Sembol, "G");
    // var V = Sistem.GrafikFiyatOku(Sembol, "G", "Kapanis");
    var TOMA = Sistem.TOMA(V, 3, 1, "Variable");
    var MA = Sistem.MA(V, "Variable", 3);
    var START = MA[MA.Count - 1] > TOMA[TOMA.Count - 2];
    if (START) //BU KOÞUL SAÐLANIRSA ALIÞ YAP
    {

    if (bidfiyat <= AlisFiyat && Pozisyon >= 0 && bidfiyat >= (decimal)Dusuk && bidfiyat <= (decimal)Yuksek) // AL
    {
    Rezerv = "Alis : " + bidfiyat.ToString("0.00");
    Miktar = Lot;
    IslemFiyat = (double)bidfiyat;
    }
    }


    else if (askfiyat >= SatisFiyat && Pozisyon > 0)
    {
    Rezerv = "Satis: " + askfiyat.ToString("0.00") + " Kar: " + (1 - Sistem.SayiYuvarla((decimal)IslemFiyat / SatisFiyat, 0.0001)).ToString("%0.00");
    Miktar = -Lot;
    IslemFiyat = (double)askfiyat;
    }

    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"; //"GUN", "KIE", "IKG" //Kriptolar icin "GTC", Limit icin "GUN" ve "IKG"
    Sistem.EmirTipi = "Piyasa"; //"Limit", "Piyasa"
    Sistem.EmirMiktari = (double)Math.Abs(Miktar);
    Sistem.EmirFiyati = IslemFiyat;
    Sistem.EmirAciklama = Rezerv;
    Sistem.EmirHesapAdi = "255516, Osmanlý Menkul"; //Portfoy peneceresinde gözüken ile ayný Hesap
    Sistem.EmirAltHesap = "255516"; ////Portfoy peneceresinde gözüken ile ayný Alt Hesap
    Sistem.EmirGonder();

    //Alýþ Islemi Islemler dosyasýna eklenir.
    if (Islem == "Alis")
    {
    string Mesaj = EmirSembol + "\t" + IslemFiyat.ToString() + "\t" + ((decimal)IslemFiyat - (decimal)Sozluk.ElementAt(No).Value[0]).ToString() + "\t" + ((decimal)IslemFiyat + (decimal)Sozluk.ElementAt(No).Value[1]).ToString() + "\t" + Lot.ToString() + "\t" + System.DateTime.Now.ToString() + "\r\n";
    System.IO.File.AppendAllText(DosyaDir, Mesaj);
    }
    //Son Islem Islemler dosyasýndan çýkarýlýr.
    if (Islem == "Satis")
    {
    var ReadLines2 = System.IO.File.ReadAllLines(DosyaDir);
    System.IO.File.WriteAllLines(DosyaDir, ReadLines2.Take(ReadLines2.Count() - 1));
    }
    }
    }

    yazým hatalarý düzeltildi..

  2. var Islem = "";
    var Miktar = 0.0;
    //EKLEDÝÐÝM YER BURASI.....
    var V = Sistem.GrafikVerileriniOku(Sistem.Sembol, "G");
    // var V = Sistem.GrafikFiyatOku(Sembol, "G", "Kapanis");
    var TTI = Sistem.TOMA(V, 3, 1, "Variable");
    var MA = Sistem.MA(V, "Variable", 3);
    var START = MA[MA.Count - 1] > TOMA[TOMA.Count - 2];
    if (START) //BU KOÞUL SAÐLANIRSA ALIÞ YAP
    {

    teþekkürler
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  3. if (bidfiyat <= AlisFiyat && Pozisyon >= 0 && bidfiyat >= (decimal)Dusuk && bidfiyat <= (decimal)Yuksek) // AL
    {
    Rezerv = "Alis : " + bidfiyat.ToString("0.00");
    Miktar = Lot;
    IslemFiyat = (double)bidfiyat;

    Lot++; // Alýþ yapýldýðýnda lot miktarýný birer birer arttýrmý

    item.Value[2] = Lot; // Yeni lot miktarýný kaydet


    al þartýnda her iþlemde 1 er lot artýrmak istersek bu kýsým doðru olurmu....
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  4. #4716
    Duhul
    Feb 2017
    Ýkamet
    Eskiþehir / Duhul 2007
    Yaş
    55
    Gönderi
    5,470
    @Noyan

    alýntýladýðýn @EROLMUTLU robotu ile kendin eklemek istediðin indikatöre göre alým ve ekleme yapmasý kodun özelliðine ters.

    kod minik fiyat adýmlarý ile çok fazla iþlem yapmaya kurulu siz ise indikatör ile hisseyi bulsun sonrasýnda o kod ile iþlem yapsýn istiyorsunuz.
    Bu þekil olmaz.

    Ha olur biraz uðraþtýrýr.
    nasýl derseniz?

    Yazdýðýnýz kod ile tüm hisseleri taratýp al þartý oluþanlarý TXT dosyaya alým / satým fiyatlarý ile birlikte kaydettirirsiniz.
    sonrasýnda o TXT dosyasýný okutup @ErolMutlu beyin yazdýðý kod içinde SOZLUK kýsmýna entegre edersiniz,
    kod okuyup sadece o hisselerde iþlem yapmaya baþlar.

    kodun içinden sözlüðe 1-2 tane hisse yazýp iþlem yapmasýný beklerseniz çok nadir olarak belki (çok doðru bir kurgu yaparsanýz) iþlem yapacaktýr
    ama bu seferde aldýðý hisseyi

    var Sozluk = new Dictionary<string, List<double>>();
    Sozluk["IMKBH'KOZAL"] = new List<double> { 0.04, 0.08, 1, 30, 20 };
    Sozluk["IMKBH'HALKB"] = new List<double> { 0.02, 0.07, 20, 16.80, 13 };
    Sozluk["IMKBH'TSKB"] = new List<double> { 0.02, 0.07, 10, 10, 7 };
    sýrasý ile 0,08 - 0,07 - 0,07 kademe sonra satacak
    kendi indikatörünüze göre yine pozisyon kalmayacaktýr.


    kolay gelsin.
    Bear_Bull
    @BearBull26

  5.  Alýntý Originally Posted by Bear_Bull Yazýyý Oku
    @Noyan

    alýntýladýðýn @EROLMUTLU robotu ile kendin eklemek istediðin indikatöre göre alým ve ekleme yapmasý kodun özelliðine ters.

    kod minik fiyat adýmlarý ile çok fazla iþlem yapmaya kurulu siz ise indikatör ile hisseyi bulsun sonrasýnda o kod ile iþlem yapsýn istiyorsunuz.
    Bu þekil olmaz.

    Ha olur biraz uðraþtýrýr.
    nasýl derseniz?

    Yazdýðýnýz kod ile tüm hisseleri taratýp al þartý oluþanlarý TXT dosyaya alým / satým fiyatlarý ile birlikte kaydettirirsiniz.
    sonrasýnda o TXT dosyasýný okutup @ErolMutlu beyin yazdýðý kod içinde SOZLUK kýsmýna entegre edersiniz,
    kod okuyup sadece o hisselerde iþlem yapmaya baþlar.

    kodun içinden sözlüðe 1-2 tane hisse yazýp iþlem yapmasýný beklerseniz çok nadir olarak belki (çok doðru bir kurgu yaparsanýz) iþlem yapacaktýr
    ama bu seferde aldýðý hisseyi


    sýrasý ile 0,08 - 0,07 - 0,07 kademe sonra satacak
    kendi indikatörünüze göre yine pozisyon kalmayacaktýr.


    kolay gelsin.
    orjinali erol hocanýn paylaþtýðý kodun al þartýna toma ekleyerek toma al verdiðinde sözlük içindeki kademelere göre alým satým yapmasýný saðlamak....tek hisse ile canlýda çalýþtý (toma al verdiðinde alým yapmaya baþladý...satým tarafýnda bi koþul olmadýðý için txt den okuyup satýþ yaptý)ama çoklu hisse ile denemedim ....alým kademesi düþük tutularak malsýz kalmanýn önüne geçilebilir diye düþünüyorum....bu haliyle karlýmý hayýr tabiki ...geliþtirilebilirmi...neden olmasýn...derdim kod bilgim eksik bunu tamamlamak pratik yapmak mantýðý kavramak...yönlendirmeleriniz için þimdiden teþekkürler...
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  6. merhabalar kolay gelsin aþaðýdaki kodda nadaraya watson indikatörü kullanarak bir dca sistemi yapmaya çalýþtým. fiyat her alt bantý ihlal ettiðinde alým yapacak ve her aldýðýný yüzde 1 yada yüzde 2 gibi satacak þekinde yapmaya çalýþtým. ama sanýrým çalýþmadý yardýmcý olursanýz sevinirim.

    var Length = 1000;
    var Bandwidth = 17;
    var mult = 2.5;
    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatSec("Kapanis");

    var y = Sistem.Liste(0);
    var up = Sistem.Liste(0);
    var down = Sistem.Liste(0);

    double sum_e = 0.0;
    for (int i = V.Count - Length; i < V.Count; i++)
    {
    double sum = 0.0;
    double sumw = 0.0;
    for (int j = V.Count - Length; j < V.Count - 1; j++)
    {
    double w = Math.Exp(-(Math.Pow(i - j, 2) / (Bandwidth * Bandwidth * 2)));
    sum += C[j] * w;
    sumw += w;
    }
    double y2 = sum / sumw;
    sum_e += (Math.Abs(C[i] - y2));
    y[i] = (float)y2;
    }
    double mae = sum_e / Length * mult;
    for (int i = V.Count - Length + 1; i < V.Count; i++)
    {
    double y2 = y[i];
    double y1 = y[i - 1];

    up[i] = (float)(y2 + mae);
    down[i] = (float)(y2 - mae);
    }

    Sistem.Cizgiler[1].Deger = up;
    Sistem.Cizgiler[2].Deger = down;

    // Alým yapýlan fiyatlarý ve miktarlarý saklamak için listeler oluþturun
    var alimFiyatlari = new List<double>();
    var alimMiktarlari = new List<int>();
    var karFiyatlari = new List<double>(); // Her alým için hedef kar fiyatýný saklar

    for (int i = Bandwidth; i < V.Count; i++)
    {
    Sistem.Yon[i] = ""; // Yönü sýfýrla

    // Alým koþulu: Her alt bant ihlali olduðunda alým yap
    if (C[i] < down[i] && C[i - 1] > down[i - 1])
    {
    Sistem.Yon[i] = "A";
    var alimFiyati = C[i];
    var alimMiktari = 1; // Varsayýlan olarak 1 lot alým
    alimFiyatlari.Add(alimFiyati);
    alimMiktarlari.Add(alimMiktari);

    // Her alým için hedef kar fiyatýný belirle (%2 kar)
    karFiyatlari.Add(alimFiyati * 1.01);
    }

    // Satýþ koþulu: Hedef kar fiyatýna ulaþýldýðýnda satýþ yap
    if (karFiyatlari.Count > 0 && C[i] >= karFiyatlari[0])
    {
    Sistem.Yon[i] = "S";
    karFiyatlari.RemoveAt(0); // Satýþ yapýlan alýmýn hedef kar fiyatýný listeden kaldýr
    }
    }

    // Alýnan miktarlarý ve portföy deðerini güncelle
    var Lots = new double[V.Count];
    var Portfoy = new double[V.Count];

    for (int i = Bandwidth; i < V.Count; i++)
    {
    if (alimFiyatlari.Count == 0)
    continue;

    Lots[i] = Lots[i - 1] + alimMiktarlari[i - Bandwidth];
    Portfoy[i] = Portfoy[i - 1] + alimMiktarlari[i - Bandwidth] * C[i];
    }

    // Grafikleri güncelle
    Sistem.Cizgiler[3].Deger = Lots;
    Sistem.Cizgiler[4].Deger = Portfoy;

  7. @mahmutbir
    Bu tarz robotlarýn nerede hata üreteceði belli olmaz ama gözüme çarpan aþaðýdaki yer.

    // Satýþ koþulu: Hedef kar fiyatýna ulaþýldýðýnda satýþ yap
    if (karFiyatlari.Count > 0 && C[i] >= karFiyatlari[0])
    {
    Sistem.Yon[i] = "S";
    karFiyatlari.RemoveAt(0); // Satýþ yapýlan alýmýn hedef kar fiyatýný listeden kaldýr
    }

    Burada ilk deðeri deðil son deðeri itibara alýp satýþ yapmalý ve listeden çýkarman gerek çünkü kodunun mantýðýna göre ilk satým son alýma ait olmalý.

  8.  Alýntý Originally Posted by bymehmet Yazýyý Oku
    @mahmutbir
    bu tarz robotlarýn nerede hata üreteceði belli olmaz ama gözüme çarpan aþaðýdaki yer.

    // satýþ koþulu: Hedef kar fiyatýna ulaþýldýðýnda satýþ yap
    if (karfiyatlari.count > 0 && c[i] >= karfiyatlari[0])
    {
    sistem.yon[i] = "s";
    karfiyatlari.removeat(0); // satýþ yapýlan alýmýn hedef kar fiyatýný listeden kaldýr
    }

    burada ilk deðeri deðil son deðeri itibara alýp satýþ yapmalý ve listeden çýkarman gerek çünkü kodunun mantýðýna göre ilk satým son alýma ait olmalý.
    teþekür ederim mehmet hocam

Sayfa 590/626 ÝlkÝlk ... 90490540580588589590591592600 ... 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
  •