Onemli Gunler Banner
Sayfa 546/551 İlkİlk ... 46446496536544545546547548 ... SonSon
Arama sonucu : 4768 madde; 4,361 - 4,368 arası.

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

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,676
    @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

  2.  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....SORULARIMDAKİ AMACIM ....İDEALİN MANTIĞINI ANLAYABİLMEK ....YOL GÖSTERMENİZ YETERLİDİR TŞK...

  3. 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;

  4. @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ı.

  5.  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

  6. kolay gelsin aşağıda ki kod çalışmadı ve sorunun neden kaynakladığını bilmiyorum. yardımcı olursanız sevinirim.
    var bakiye = 100; // Başlangıç bakiyesi
    var periyot = "1"; // Grafik periyodu

    var sozluk = new List<string>();
    sozluk.Add("IMKBH'YKBNK");
    sozluk.Add("IMKBH'GARAN");

    foreach (var sembol in sozluk)
    {
    var v = Sistem.GrafikVerileriniOku(sembol, periyot);
    var anahtar = Sistem.Name + ", " + sembol + ", " + periyot;

    // NADARAYA WATSON indikatörü parametreleri
    var length = 1000;
    var bandwidth = 17;
    var mult = 2.5;

    var y = 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 += v[j] * w;
    sumw += w;
    }
    double y2 = sum / sumw;
    sum_e += (Math.Abs(v[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];
    down[i] = (float)(y2 - mae);
    }

    // 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

    var sonFiyat = (decimal)Sistem.SonFiyat(sembol);

    for (int i = bandwidth; i < v.Count; i++)
    {
    // Alım koşulu: Fiyatın alt bantı ihlal ettiği durumda alım yap
    if (sonFiyat < down[i] && sonFiyat > down[i - 1])
    {
    var alimFiyati = (double)sonFiyat;
    var alimMiktari = (int)Math.Floor((double)bakiye / alimFiyati); // Alınacak miktarı hesapla
    alimFiyatlari.Add(alimFiyati);
    alimMiktarlari.Add(alimMiktari);

    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = alimFiyati;

    // Emri gönder
    Sistem.EmirMiktari = alimMiktari;
    var rezerv = "Alış yapıldı!";
    Sistem.EmirIslem = "Alış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, alimMiktari, (double)alimFiyati, rezerv);

    // Bakiyeden harcanan miktarı çıkar
    bakiye -= alimMiktari * (int)alimFiyati;

    // Hedef kar fiyatını kaydet (%1 kar)
    karFiyatlari.Add(alimFiyati * 1.01);
    }

    // Satış koşulu: Alınan miktarların fiyatları yüzde 1 kar ile satılsın
    for (int j = 0; j < alimFiyatlari.Count; j++)
    {
    if (sonFiyat >= (decimal)(karFiyatlari[j]))
    {
    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = (double)sonFiyat;

    // Emri gönder
    Sistem.EmirMiktari = (int)alimMiktarlari[j];
    var rezerv = "Kar Alındı!";
    Sistem.EmirIslem = "Satış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, 0, 0, rezerv);

    // Bakiyeye karı ekle
    bakiye += alimMiktarlari[j] * (int)sonFiyat;

    // Satış yapılan alımın bilgilerini listelerden kaldır
    alimFiyatlari.RemoveAt(j);
    alimMiktarlari.RemoveAt(j);
    karFiyatlari.RemoveAt(j);

    // İndeksi geri al
    j--;
    }
    }
    }
    }

  7.  Alıntı Originally Posted by mahmutbir Yazıyı Oku
    kolay gelsin aşağıda ki kod çalışmadı ve sorunun neden kaynakladığını bilmiyorum. yardımcı olursanız sevinirim.
    var bakiye = 100; // Başlangıç bakiyesi
    var periyot = "1"; // Grafik periyodu

    var sozluk = new List<string>();
    sozluk.Add("IMKBH'YKBNK");
    sozluk.Add("IMKBH'GARAN");

    foreach (var sembol in sozluk)
    {
    var v = Sistem.GrafikVerileriniOku(sembol, periyot);
    var anahtar = Sistem.Name + ", " + sembol + ", " + periyot;

    // NADARAYA WATSON indikatörü parametreleri
    var length = 1000;
    var bandwidth = 17;
    var mult = 2.5;

    var y = 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 += v[j] * w;
    sumw += w;
    }
    double y2 = sum / sumw;
    sum_e += (Math.Abs(v[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];
    down[i] = (float)(y2 - mae);
    }

    // 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

    var sonFiyat = (decimal)Sistem.SonFiyat(sembol);

    for (int i = bandwidth; i < v.Count; i++)
    {
    // Alım koşulu: Fiyatın alt bantı ihlal ettiği durumda alım yap
    if (sonFiyat < down[i] && sonFiyat > down[i - 1])
    {
    var alimFiyati = (double)sonFiyat;
    var alimMiktari = (int)Math.Floor((double)bakiye / alimFiyati); // Alınacak miktarı hesapla
    alimFiyatlari.Add(alimFiyati);
    alimMiktarlari.Add(alimMiktari);

    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = alimFiyati;

    // Emri gönder
    Sistem.EmirMiktari = alimMiktari;
    var rezerv = "Alış yapıldı!";
    Sistem.EmirIslem = "Alış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, alimMiktari, (double)alimFiyati, rezerv);

    // Bakiyeden harcanan miktarı çıkar
    bakiye -= alimMiktari * (int)alimFiyati;

    // Hedef kar fiyatını kaydet (%1 kar)
    karFiyatlari.Add(alimFiyati * 1.01);
    }

    // Satış koşulu: Alınan miktarların fiyatları yüzde 1 kar ile satılsın
    for (int j = 0; j < alimFiyatlari.Count; j++)
    {
    if (sonFiyat >= (decimal)(karFiyatlari[j]))
    {
    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = (double)sonFiyat;

    // Emri gönder
    Sistem.EmirMiktari = (int)alimMiktarlari[j];
    var rezerv = "Kar Alındı!";
    Sistem.EmirIslem = "Satış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, 0, 0, rezerv);

    // Bakiyeye karı ekle
    bakiye += alimMiktarlari[j] * (int)sonFiyat;

    // Satış yapılan alımın bilgilerini listelerden kaldır
    alimFiyatlari.RemoveAt(j);
    alimMiktarlari.RemoveAt(j);
    karFiyatlari.RemoveAt(j);

    // İndeksi geri al
    j--;
    }
    }
    }
    }
    Bu şekilde bende sorun gözükmüyor:


    var bakiye = 100; // Başlangıç bakiyesi
    var periyot = "1"; // Grafik periyodu

    var sozluk = new List<string>();
    sozluk.Add("IMKBH'YKBNK");
    sozluk.Add("IMKBH'GARAN");

    foreach (var sembol in sozluk)
    {
    var v = Sistem.GrafikVerileriniOku(sembol, periyot);
    var C = Sistem.GrafikFiyatSec("Kapanis");

    var anahtar = Sistem.Name + ", " + sembol + ", " + periyot;

    // NADARAYA WATSON indikatörü parametreleri
    var length = 1000;
    var bandwidth = 17;
    var mult = 2.5;

    var y = 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];
    down[i] = (float)(y2 - mae);
    }

    // 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

    var sonFiyat = (float)Sistem.SonFiyat(sembol);

    for (int i = bandwidth; i < v.Count; i++)
    {
    // Alım koşulu: Fiyatın alt bantı ihlal ettiği durumda alım yap
    if (sonFiyat < down[i] && sonFiyat > down[i - 1])
    {
    var alimFiyati = (double)sonFiyat;
    var alimMiktari = (int)Math.Floor((double)bakiye / alimFiyati); // Alınacak miktarı hesapla
    alimFiyatlari.Add(alimFiyati);
    alimMiktarlari.Add(alimMiktari);

    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = alimFiyati;

    // Emri gönder
    Sistem.EmirMiktari = alimMiktari;
    var rezerv = "Alış yapıldı!";
    Sistem.EmirIslem = "Alış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, alimMiktari, (double)alimFiyati, rezerv);

    // Bakiyeden harcanan miktarı çıkar
    bakiye -= alimMiktari * (int)alimFiyati;

    // Hedef kar fiyatını kaydet (%1 kar)
    karFiyatlari.Add(alimFiyati * 1.01);
    }

    // Satış koşulu: Alınan miktarların fiyatları yüzde 1 kar ile satılsın
    for (int j = 0; j < alimFiyatlari.Count; j++)
    {
    if (sonFiyat >= (float)(karFiyatlari[j]))
    {
    // emir parametreleri
    Sistem.EmirSembol = sembol;
    Sistem.EmirSuresi = "KIE"; // GUN, SNS, IKG // Kripto için GTC
    Sistem.EmirTipi = "Piyasa"; //
    Sistem.EmirFiyati = (double)sonFiyat;

    // Emri gönder
    Sistem.EmirMiktari = (int)alimMiktarlari[j];
    var rezerv = "Kar Alındı!";
    Sistem.EmirIslem = "Satış";
    Sistem.EmirAciklama = rezerv;
    Sistem.EmirGonder();
    Sistem.PozisyonKontrolGuncelle(anahtar, 0, 0, rezerv);

    // Bakiyeye karı ekle
    bakiye += alimMiktarlari[j] * (int)sonFiyat;

    // Satış yapılan alımın bilgilerini listelerden kaldır
    alimFiyatlari.RemoveAt(j);
    alimMiktarlari.RemoveAt(j);
    karFiyatlari.RemoveAt(j);

    // İndeksi geri al
    j--;
    }
    }
    }
    }

  8.  Alıntı Originally Posted by fasem Yazıyı Oku
    bu şekilde bende sorun gözükmüyor:


    Var bakiye = 100; // başlangıç bakiyesi
    var periyot = "1"; // grafik periyodu

    var sozluk = new list<string>();
    sozluk.add("ımkbh'ykbnk");
    sozluk.add("ımkbh'garan");

    foreach (var sembol in sozluk)
    {
    var v = sistem.grafikverilerinioku(sembol, periyot);
    var c = sistem.grafikfiyatsec("kapanis");

    var anahtar = sistem.name + ", " + sembol + ", " + periyot;

    // nadaraya watson indikatörü parametreleri
    var length = 1000;
    var bandwidth = 17;
    var mult = 2.5;

    var y = 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];
    down[i] = (float)(y2 - mae);
    }

    // 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

    var sonfiyat = (float)sistem.sonfiyat(sembol);

    for (int i = bandwidth; i < v.count; i++)
    {
    // alım koşulu: Fiyatın alt bantı ihlal ettiği durumda alım yap
    if (sonfiyat < down[i] && sonfiyat > down[i - 1])
    {
    var alimfiyati = (double)sonfiyat;
    var alimmiktari = (int)math.floor((double)bakiye / alimfiyati); // alınacak miktarı hesapla
    alimfiyatlari.add(alimfiyati);
    alimmiktarlari.add(alimmiktari);

    // emir parametreleri
    sistem.emirsembol = sembol;
    sistem.emirsuresi = "kıe"; // gun, sns, ıkg // kripto için gtc
    sistem.emirtipi = "piyasa"; //
    sistem.emirfiyati = alimfiyati;

    // emri gönder
    sistem.emirmiktari = alimmiktari;
    var rezerv = "alış yapıldı!";
    sistem.emirıslem = "alış";
    sistem.emiraciklama = rezerv;
    sistem.emirgonder();
    sistem.pozisyonkontrolguncelle(anahtar, alimmiktari, (double)alimfiyati, rezerv);

    // bakiyeden harcanan miktarı çıkar
    bakiye -= alimmiktari * (int)alimfiyati;

    // hedef kar fiyatını kaydet (%1 kar)
    karfiyatlari.add(alimfiyati * 1.01);
    }

    // satış koşulu: Alınan miktarların fiyatları yüzde 1 kar ile satılsın
    for (int j = 0; j < alimfiyatlari.count; j++)
    {
    if (sonfiyat >= (float)(karfiyatlari[j]))
    {
    // emir parametreleri
    sistem.emirsembol = sembol;
    sistem.emirsuresi = "kıe"; // gun, sns, ıkg // kripto için gtc
    sistem.emirtipi = "piyasa"; //
    sistem.emirfiyati = (double)sonfiyat;

    // emri gönder
    sistem.emirmiktari = (int)alimmiktarlari[j];
    var rezerv = "kar alındı!";
    sistem.emirıslem = "satış";
    sistem.emiraciklama = rezerv;
    sistem.emirgonder();
    sistem.pozisyonkontrolguncelle(anahtar, 0, 0, rezerv);

    // bakiyeye karı ekle
    bakiye += alimmiktarlari[j] * (int)sonfiyat;

    // satış yapılan alımın bilgilerini listelerden kaldır
    alimfiyatlari.removeat(j);
    alimmiktarlari.removeat(j);
    karfiyatlari.removeat(j);

    // indeksi geri al
    j--;
    }
    }
    }
    }
    dca sistemi gibi kullanmak istiyorum bende sanalda çalışmadı

Sayfa 546/551 İlkİlk ... 46446496536544545546547548 ... 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
  •