Artan
Azalan
Ýþlem
BIST 30
BIST 50
BIST 100
NASDAQ 100
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
27,50 10% 100,59 Mn 23,70 / 27,50
67,65 10% 515,04 Mn 61,70 / 67,65
11,00 10% 3,88 Mn 9,80 / 11,00
1,65 10% 54,88 Mn 1,52 / 1,65
14,75 9.99% 88,63 Mn 13,54 / 14,75
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
10,53 -10% 2,12 Mr 10,53 / 11,55
20,40 -9.97% 202,36 Mn 20,40 / 23,86
402,25 -9.96% 524,05 Mn 402,25 / 448,00
260,25 -9.95% 1,61 Mr 260,25 / 283,50
4,58 -9.84% 46,70 Mn 4,58 / 4,58
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
325,00 0.46% 12,23 Mr 319,00 / 326,25
3,16 6.4% 11,83 Mr 2,98 / 3,20
135,00 8.09% 10,01 Mr 118,60 / 135,00
221,50 6.54% 9,91 Mr 209,00 / 225,00
269,00 2.28% 7,40 Mr 266,00 / 272,50
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
19,11 -0.47% 829,86 Mn 18,66 / 19,26
77,90 -1.7% 7,25 Mr 77,60 / 79,15
392,00 -1.13% 7,21 Mr 390,25 / 404,50
221,50 6.54% 9,91 Mr 209,00 / 225,00
760,00 -0.39% 2,81 Mr 747,00 / 761,50
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
19,11 -0.47% 829,86 Mn 18,66 / 19,26
77,90 -1.7% 7,25 Mr 77,60 / 79,15
93,00 0.65% 539,82 Mn 91,90 / 93,65
117,20 1.74% 879,06 Mn 112,40 / 119,90
392,00 -1.13% 7,21 Mr 390,25 / 404,50
Hisse Fiyat Fark% Hacim (TL) Düþük / Yüksek
19,11 -0.47% 829,86 Mn 18,66 / 19,26
31,04 -0.83% 136,84 Mn 30,50 / 31,30
77,90 -1.7% 7,25 Mr 77,60 / 79,15
10,67 2.69% 200,26 Mn 10,40 / 10,71
81,25 2.85% 499,08 Mn 79,05 / 81,60

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 618/626 ÝlkÝlk ... 118518568608616617618619620 ... SonSon
Arama sonucu : 5007 madde; 4,937 - 4,944 arasý.

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

  1.  Alýntý Originally Posted by sonli Yazýyý Oku
    Daha önce twitter veya burada kapalý-kod þeklinde paylaþýlmýþtý ama yazaný hatýrlamýyorum..
    Þu an çalýþýyor mu onu da bilmiyorum ama indirip chartsistem e atarak deneyebilirsiniz..
    https://drive.google.com/file/d/1Nr6...ew?usp=sharing
    çok teþekkür ederim sn. sonli,
    bu esnada yapay zekalarýn da yardýmýyla -sanýrým- 9 sayýmlarýný, destek dirençleri ve stoplarý çizdirebildim. ama neyi denesem de 9 kurulumlarý sonrasý countdownlarý saydýramadým. açýkçasý kod bilgim zayýf olduðu için yz ler yardýmýyla bu kadar oluyor trend takip vs. bir sürü indikatör deniyoruz, bu yetenekli indikatörü de biraz kurcalayayým dedim, o yüzden uðraþýyorum açýk hali olsun diye. algomarket sitesine de levent diye bir arkadaþ kapalý halini yüklemiþ, onunla kendi kodumu doðruladým.

    yazdýðýmý da býrakayým buraya, belki vakti uygun olan bir el verir tamam ederiz kodu.algomarkete de yükleriz isteyen açýk halini de kullanýr.

    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatSec("Kapanis");
    var H = Sistem.GrafikFiyatSec("Yuksek");
    var L = Sistem.GrafikFiyatSec("Dusuk");
    int[] Al_Kurulum = new int[Sistem.BarSayisi];
    int[] Sat_Kurulum = new int[Sistem.BarSayisi];
    bool AK = false; // Bu deðiþkenler genel durumu takip etmek için, ikinci adýmda kullanýlacak.
    bool SK = false;
    var Destek = Sistem.Liste(0); // Bu diziler birinci adýmda doldurulacak.
    var Direnc = Sistem.Liste(0);
    // Al_Stop_Fark ve Sat_Stop_Fark doðrudan çizimle ilgili deðil, orijinaldeki gibi kalabilir.
    // var Al_Stop_Fark = Sistem.Liste(0);
    // var Sat_Stop_Fark = Sistem.Liste(0);


    // Yeni bir hesaplama için dizilerin baþýnda sýfýr olduðunu varsayýyoruz.
    for (int i_pass1 = 0; i_pass1 < Sistem.BarSayisi; i_pass1++)
    {
    if (i_pass1 < 4) // Ýlk 4 bar için (0, 1, 2, 3) özel durum veya baþlangýç deðerleri
    {
    Al_Kurulum[i_pass1] = 0;
    Sat_Kurulum[i_pass1] = 0;
    if (i_pass1 > 0)
    {
    // Destek ve Direnc için baþlangýç deðerlerini taþýma veya ayarlama

    if (i_pass1 == 0) {
    Direnc[i_pass1] = H[i_pass1]; Destek[i_pass1] = L[i_pass1];
    } else {
    Direnc[i_pass1] = Direnc[i_pass1 - 1]; Destek[i_pass1] = Destek[i_pass1 - 1];
    }
    } else { // i_pass1 == 0
    // Direnc[0] ve Destek[0]'a ilk deðerler.
    // Bu, Sistem.Liste(0) ile zaten yapýlmýþ olabilir.
    }
    continue; // Ana setup hesaplama mantýðý i=4'ten sonra baþlar.
    }

    // --- Alýþ Kurulumu Hesaplamasý ---
    if (C[i_pass1] < C[i_pass1 - 4])
    {
    Al_Kurulum[i_pass1] = Al_Kurulum[i_pass1 - 1] < 9 ? Al_Kurulum[i_pass1 - 1] + 1 : 1;
    if (Al_Kurulum[i_pass1] == 1) {
    Direnc[i_pass1] = H[i_pass1]; // Setup'ýn ilk barýnda S/R seviyeleri o barýn H/L'si olur.
    Destek[i_pass1] = L[i_pass1];
    } else { // Setup devam ediyor, S/R seviyelerini güncelle.
    Direnc[i_pass1] = Math.Max(Direnc[i_pass1 - 1], H[i_pass1]);
    Destek[i_pass1] = Math.Min(Destek[i_pass1 - 1], L[i_pass1]);
    }
    Sat_Kurulum[i_pass1] = 0; // Alýþ kurulumu aktifse, satýþ kurulumunu sýfýrla.
    }
    else // C[i_pass1] >= C[i_pass1 - 4] (Alýþ kurulum koþulu bozuldu)
    {
    Al_Kurulum[i_pass1] = 0;
    // Önceki S/R seviyelerini koru (orijinal kodunuzdaki gibi).
    Direnc[i_pass1] = Direnc[i_pass1 - 1];
    Destek[i_pass1] = Destek[i_pass1 - 1];
    }

    // --- Satýþ Kurulumu Hesaplamasý ---
    if (C[i_pass1] > C[i_pass1 - 4])
    {
    Sat_Kurulum[i_pass1] = Sat_Kurulum[i_pass1 - 1] < 9 ? Sat_Kurulum[i_pass1 - 1] + 1 : 1;
    if (Sat_Kurulum[i_pass1] == 1) {
    // Satýþ kurulumu baþlýyorsa, S/R seviyelerini kendi barýnýn H/L'si ile baþlatýr.
    // Bu, yukarýdaki Alýþ Kurulumu tarafýndan ayný bar için ayarlanmýþ Direnc/Destek deðerlerinin üzerine yazabilir.
    Direnc[i_pass1] = H[i_pass1];
    Destek[i_pass1] = L[i_pass1];
    } else { // Setup devam ediyor, S/R seviyelerini güncelle.
    Direnc[i_pass1] = Math.Max(Direnc[i_pass1 - 1], H[i_pass1]);
    Destek[i_pass1] = Math.Min(Destek[i_pass1 - 1], L[i_pass1]);
    }

    Al_Kurulum[i_pass1] = 0;
    }
    else // C[i_pass1] <= C[i_pass1 - 4] (Satýþ kurulum koþulu bozuldu)
    {
    Sat_Kurulum[i_pass1] = 0;
    // Eðer yukarýdaki Alýþ Kurulumu bloðu çalýþtýysa, Direnc/Destek zaten ayarlanmýþtýr.

    }
    }

    // --- ÝKÝNCÝ ADIM: Ýþleme ve Çizim (Birinci adýmda hesaplanan diziler kullanýlarak) ---
    for (int i = 4; i < Sistem.BarSayisi; i++)
    {
    // --- BUY SETUP PROCESSING --- (Alýþ Kurulumu Ýþleme)
    if (Al_Kurulum[i] > 0 && Al_Kurulum[i] <= 9) // Birinci adýmdan gelen Al_Kurulum[i] deðeri
    {
    string yazi = Al_Kurulum[i].ToString();
    Color renk = Color.Red;
    int fontBoyut = 10;

    if (Al_Kurulum[i] == 9)
    {
    AK = true;
    SK = false;

    // TD Fiyat Flip Kontrolü (9. barýn 6. ve 7. barlarýn low'undan düþük olmasý)
    if (i >= 3) // L[i-3] ve L[i-2] için güvenlik kontrolü
    {
    // 9 barlýk bir setup i'de bitiyorsa:
    // i -> 9. bar
    // i-1 -> 8. bar
    // i-2 -> 7. bar (low7)
    // i-3 -> 6. bar (low6)
    double low_bar_6_of_setup = L[i - 3];
    double low_bar_7_of_setup = L[i - 2];
    if (L[i] < low_bar_6_of_setup && L[i] < low_bar_7_of_setup)
    {
    renk = Color.Blue; // "Mükemmel" alýþ setup'ý için renk deðiþimi
    fontBoyut = 11;
    }
    }

    float direncSeviyesi = (float)Direnc[i]; // Birinci adýmdan: 9 barlýk alýþ setup'ýnýn en yüksek deðeri (TDST Direnç)
    int basla = i; // Çizgi, 9. barýn olduðu yerden baþlar

    int bitis = Sistem.BarSayisi - 1; // Varsayýlan olarak grafiðin sonuna kadar uzat
    for (int k = basla + 1; k < Sistem.BarSayisi; k++)
    {
    bool terminate = false;
    // Koþul 1: Fiyat direncin üzerine kapanýrsa
    if (C[k] > direncSeviyesi)
    {
    terminate = true;
    }
    // Koþul 2: Yeni bir satýþ kurulumu 9 sayýsýný tamamlarsa (Sat_Kurulum[k] birinci adýmdan)
    if (!terminate && Sat_Kurulum[k] == 9)
    {
    terminate = true;
    }

    if (terminate)
    {
    bitis = k -1; // Çizgi, olayýn olduðu barýn bir öncesine kadar geçerli
    break;
    }
    }
    if (bitis < basla) bitis = basla; // Bitiþ baþlangýçtan önce olamaz

    Sistem.CizgiCiz(1, basla, direncSeviyesi, bitis, direncSeviyesi, Color.Red, 2, 3);

    // Stop seviyesi ve diðer çizimler (orijinaldeki gibi devam ediyor)
    int setupStartBar = i - 8;
    double enDusukFiyat = L[setupStartBar];
    int enDusukBar = setupStartBar;
    for (int j = setupStartBar; j <= i; j++) {
    if (L[j] < enDusukFiyat) {
    enDusukFiyat = L[j];
    enDusukBar = j;
    }
    }
    double fark = H[enDusukBar] - L[enDusukBar];
    double StopSeviyesi = enDusukFiyat - fark;
    Sistem.CizgiCiz(1, enDusukBar, (float)StopSeviyesi, enDusukBar + 30, (float)StopSeviyesi, Color.Blue, 2, 2); // Orijinal +30 bar uzatma
    Sistem.Parametreler[0] = fark.ToString();
    Sistem.BarRengi(enDusukBar, Color.Red, 3, 1);
    }
    Sistem.YaziEkle(yazi, 1, i, H[i] * 1.0001f, renk, "Tahoma", fontBoyut);
    }

    // --- SELL SETUP PROCESSING --- (Satýþ Kurulumu Ýþleme)
    if (Sat_Kurulum[i] > 0 && Sat_Kurulum[i] <= 9) // Birinci adýmdan gelen Sat_Kurulum[i] deðeri
    {
    string yazi = Sat_Kurulum[i].ToString();
    Color renk = Color.Green;
    int fontBoyut = 10;

    if (Sat_Kurulum[i] == 9)
    {
    SK = true;
    AK = false;

    // TD Fiyat Flip Kontrolü (9. barýn 6. ve 7. barlarýn high'ýndan yüksek olmasý)
    if (i >= 3)
    {
    double high_bar_6_of_setup = H[i - 3];
    double high_bar_7_of_setup = H[i - 2];
    if (H[i] > high_bar_6_of_setup && H[i] > high_bar_7_of_setup)
    {
    renk = Color.Magenta; // "Mükemmel" satýþ setup'ý için renk deðiþimi
    fontBoyut = 11;
    }
    }

    float destekSeviyesi = (float)Destek[i]; // Birinci adýmdan: 9 barlýk satýþ setup'ýnýn en düþük deðeri (TDST Destek)
    int basla = i;

    int bitis = Sistem.BarSayisi - 1;
    for (int k = basla + 1; k < Sistem.BarSayisi; k++)
    {
    bool terminate = false;
    // Koþul 1: Fiyat desteðin altýna kapanýrsa
    if (C[k] < destekSeviyesi)
    {
    terminate = true;
    }
    // Koþul 2: Yeni bir alýþ kurulumu 9 sayýsýný tamamlarsa (Al_Kurulum[k] birinci adýmdan)
    if (!terminate && Al_Kurulum[k] == 9)
    {
    terminate = true;
    }

    if (terminate)
    {
    bitis = k -1;
    break;
    }
    }
    if (bitis < basla) bitis = basla;

    Sistem.CizgiCiz(1, basla, destekSeviyesi, bitis, destekSeviyesi, Color.Green, 2, 3);

    // Stop seviyesi ve diðer çizimler (orijinaldeki gibi devam ediyor)
    int setupStartBar = i - 8;
    double enYuksekFiyat = H[setupStartBar];
    int enYuksekBar = setupStartBar;
    for (int j = setupStartBar; j <= i; j++) {
    if (H[j] > enYuksekFiyat) {
    enYuksekFiyat = H[j];
    enYuksekBar = j;
    }
    }
    double fark = H[enYuksekBar] - L[enYuksekBar];
    double StopSeviyesi = enYuksekFiyat + fark;
    Sistem.CizgiCiz(1, enYuksekBar, (float)StopSeviyesi, enYuksekBar + 30, (float)StopSeviyesi, Color.Magenta, 2, 2); // Orijinal +30 bar uzatma
    Sistem.Parametreler[1] = fark.ToString();
    Sistem.BarRengi(enYuksekBar, Color.Green, 3, 1);
    }
    Sistem.YaziEkle(yazi, 1, i, H[i] * 1.0001f, renk, "Tahoma", fontBoyut);
    }
    }

  2. TDS ye sistem yazmak mümkün mü
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  3. lib.cs kullanmanýn mantýðý amacý nedir? kasma yapan kodlarda kullanmak avantaj saðlar mý..
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  4. Spot için kullandýgým bir kalýp var Sn Bearbull
    belirli bir süredir gerceklesmemiþ pasifte emir varsa aktifen emri gercekleþtir.
    burda zaman yerýne baska kriter aktifden sat yerine yine baska kosul kullanýlabilir.
    inceleyin isterseniz
    Saygýlarýmla
    string inpSembol = "IMKBH'AKBNK";

    var BistHesap = Sistem.BistHesapOku();
    if (BistHesap != null)
    {
    var BekleyenList = BistHesap.BekleyenEmirler;

    for (int i = 0; i < BekleyenList.Count; i++)
    {
    Sistem.Debug(
    "Bekleyen i :" + i
    + " OrderNo: " + BekleyenList[i].OrderNo
    + " OrderDate: " + BekleyenList[i].OrderDate
    + " Symbol: " + BekleyenList[i].Symbol
    + " BuySell: " + BekleyenList[i].BuySell
    + " Session: " + BekleyenList[i].Session
    + " OrderType: " + BekleyenList[i].OrderType
    + " Price: " + BekleyenList[i].Price
    + " Status: " + BekleyenList[i].Status
    );


    var zaman = DateTime.Now;
    var z1 =zaman.AddSeconds(-30);

    string z2 =BekleyenList[i].OrderDate;
    string orderNo = BekleyenList[i].OrderNo;

    if (inpSembol == BekleyenList[i].Symbol)
    {
    Sistem.Mesaj(" senedin bekleyen emri var:" + inpSembol + " orderNo:" + orderNo + " GMT saat:" + DateTime.Now.ToString("HH:mm:ss"));
    Sistem.EmirSembol = inpSembol;
    if (z1.ToString("HH:mm:ss").CompareTo(z2) == 1)
    {
    Sistem.EmirSil(orderNo);
    Sistem.EmirIslem = BekleyenList[i].BuySell;
    Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
    Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
    Sistem.EmirMiktari = BekleyenList[i].Amount;
    Sistem.EmirGonder();
    }


     Alýntý Originally Posted by Bear_Bull Yazýyý Oku
    AH AH

    o emir silme ve bekleyeni düzeltme yapmayý becerebilsek .

    Kotasyon verici olurduk piyasaya

    ben yapamýyorum
    yapabilen varsa
    sadece pasifte bekleyen emri düzelten tek satýrý paylaþýrsa sevinirim.

  5. var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatSec("Kapanis");
    var H = Sistem.GrafikFiyatSec("Yuksek");
    var L = Sistem.GrafikFiyatSec("Dusuk");
    var X1 = 1000;
    var XMA =20;
    var y = Sistem.HHV(X1, H);
    var d = Sistem.LLV(X1, L);
    var refD = Sistem.Ref(d, -30);
    var refY = Sistem.Ref(y, -30);
    // MA ve diðer çizgilerin hesaplanmasý
    var MA = Sistem.MA(XMA, "Variable", "Kapanis");

    var O1 = Sistem.Liste(0);
    var O2 = Sistem.Liste(0);
    var O3 = Sistem.Liste(0);
    var O4 = Sistem.Liste(0);
    var O5 = Sistem.Liste(0);
    var O6 = Sistem.Liste(0);
    var O7 = Sistem.Liste(0);
    var O8 = Sistem.Liste(0);
    var O9 = Sistem.Liste(0);

    // Çizgilerin hesaplanmasý
    for (int i = X1+30; i < Sistem.BarSayisi; i++)
    {
    O1[i] = refY[i];

    O2[i] = refD[i] + (refY[i] - refD[i]) * 0.854f;
    O3[i] = refD[i] + (refY[i] - refD[i]) * 0.764f;
    O4[i] = refD[i] + (refY[i] - refD[i]) * 0.618f;
    O5[i] = refD[i] + (refY[i] - refD[i]) * 0.5f;
    O6[i] = refD[i] + (refY[i] - refD[i]) * 0.382f;
    O7[i] = refD[i] + (refY[i] - refD[i]) * 0.236f;
    O8[i] = refD[i] + (refY[i] - refD[i]) * 0.146f;
    O9[i] = refD[i];
    }
    var SonYon = "";
    var Sinyal = "";

    for (int i = 1; i < Sistem.BarSayisi; i++)
    {
    // MA yukarý kestiðinde alým sinyali
    if ((MA[i] > O2[i] && MA[i - 1] <= O2[i - 1]) ||
    (MA[i] > O3[i] && MA[i - 1] <= O3[i - 1]) ||
    (MA[i] > O4[i] && MA[i - 1] <= O4[i - 1]) ||
    (MA[i] > O5[i] && MA[i - 1] <= O5[i - 1]) ||
    (MA[i] > O6[i] && MA[i - 1] <= O6[i - 1]) ||
    (MA[i] > O7[i] && MA[i - 1] <= O7[i - 1]) ||
    (MA[i] > O8[i] && MA[i - 1] <= O8[i - 1]))
    {
    if (Sinyal != "A")
    {
    Sinyal = "A";
    SonYon = Sinyal;
    Sistem.Yon[i] = SonYon;
    }
    }
    // MA aþaðý kestiðinde satým sinyali
    else if ((MA[i] < O2[i] && MA[i - 1] >= O2[i - 1]) ||
    (MA[i] < O3[i] && MA[i - 1] >= O3[i - 1]) ||
    (MA[i] < O4[i] && MA[i - 1] >= O4[i - 1]) ||
    (MA[i] < O5[i] && MA[i - 1] >= O5[i - 1]) ||
    (MA[i] < O6[i] && MA[i - 1] >= O6[i - 1]) ||
    (MA[i] < O7[i] && MA[i - 1] >= O7[i - 1]) ||
    (MA[i] < O8[i] && MA[i - 1] >= O8[i - 1]))
    {
    if (Sinyal != "F")
    {
    Sinyal = "F";
    SonYon = Sinyal;
    Sistem.Yon[i] = SonYon;
    }
    }
    }
    *******************************
    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatSec("Kapanis");
    var H = Sistem.GrafikFiyatSec("Yuksek");
    var L = Sistem.GrafikFiyatSec("Dusuk");
    var SonYon = "";
    for (int X1 = 1000; X1 <= 2000; X1 += 250) // HHV periyodu 200'den 600'e
    {
    for (int XMA = 10; XMA <= 30; XMA += 5) // HHV periyodu 200'den 600'e
    {

    var y = Sistem.HHV(X1, H);
    var d = Sistem.LLV(X1, L);
    var refD = Sistem.Ref(d, -30);
    var refY = Sistem.Ref(y, -30);
    // MA ve diðer çizgilerin hesaplanmasý
    var MA = Sistem.MA(XMA, "Variable", "Kapanis");

    var O1 = Sistem.Liste(0);
    var O2 = Sistem.Liste(0);
    var O3 = Sistem.Liste(0);
    var O4 = Sistem.Liste(0);
    var O5 = Sistem.Liste(0);
    var O6 = Sistem.Liste(0);
    var O7 = Sistem.Liste(0);
    var O8 = Sistem.Liste(0);
    var O9 = Sistem.Liste(0);

    // Çizgilerin hesaplanmasý
    for (int i = 0; i < Sistem.BarSayisi; i++)
    {
    O1[i] = refY[i];

    O2[i] = refD[i] + (refY[i] - refD[i]) * 0.854f;
    O3[i] = refD[i] + (refY[i] - refD[i]) * 0.764f;
    O4[i] = refD[i] + (refY[i] - refD[i]) * 0.618f;
    O5[i] = refD[i] + (refY[i] - refD[i]) * 0.5f;
    O6[i] = refD[i] + (refY[i] - refD[i]) * 0.382f;
    O7[i] = refD[i] + (refY[i] - refD[i]) * 0.236f;
    O8[i] = refD[i] + (refY[i] - refD[i]) * 0.146f;
    O9[i] = refD[i];
    }

    var Sinyal = "";

    for (int i = 1; i < Sistem.BarSayisi; i++)
    {
    // MA yukarý kestiðinde alým sinyali
    if ((MA[i] > O2[i] && MA[i - 1] <= O2[i - 1]) ||
    (MA[i] > O3[i] && MA[i - 1] <= O3[i - 1]) ||
    (MA[i] > O4[i] && MA[i - 1] <= O4[i - 1]) ||
    (MA[i] > O5[i] && MA[i - 1] <= O5[i - 1]) ||
    (MA[i] > O6[i] && MA[i - 1] <= O6[i - 1]) ||
    (MA[i] > O7[i] && MA[i - 1] <= O7[i - 1]) ||
    (MA[i] > O8[i] && MA[i - 1] <= O8[i - 1]))
    {
    if (Sinyal != "A")
    {
    Sinyal = "A";
    SonYon = Sinyal;
    Sistem.Yon[i] = SonYon;
    }
    }
    // MA aþaðý kestiðinde satým sinyali
    else if ((MA[i] < O2[i] && MA[i - 1] >= O2[i - 1]) ||
    (MA[i] < O3[i] && MA[i - 1] >= O3[i - 1]) ||
    (MA[i] < O4[i] && MA[i - 1] >= O4[i - 1]) ||
    (MA[i] < O5[i] && MA[i - 1] >= O5[i - 1]) ||
    (MA[i] < O6[i] && MA[i - 1] >= O6[i - 1]) ||
    (MA[i] < O7[i] && MA[i - 1] >= O7[i - 1]) ||
    (MA[i] < O8[i] && MA[i - 1] >= O8[i - 1]))
    {
    if (Sinyal != "F")
    {
    Sinyal = "F";
    SonYon = Sinyal;
    Sistem.Yon[i] = SonYon;
    }
    }
    }
    Sistem.Optimizasyon("X1, XMA,", X1, XMA);

    }
    }
    anýl hocanýn fich sistemi....optimizasyondan çýkan sonuçla örtüþmüyor hatam nerede acaba
    ÝDEAL KOD YAZMADA YENÝYÝM........YOL GÖSTERMENÝZ YETERLÝDÝR TÞK...

  6. Abiler selamlar,

    Ýdeal klasörünün içinde aa.xlsx dosyasý var.
    2 sutundan oluþuyor. Aþaðýdaki þekild. 350 hisse bu þekilde sýralanmýþtýr.
    Bu deðerler sabit olup deðiþiklik yapýlmýyor.

    A Sutunu B Sutunu
    IMKBH'GARAN 5000,00

    Exceldeki B sutununda bulunan deðeri, sorgudaki 4 nolu deðere getirmek istiyorum.
    Ýdeal söyle bir yol önerdi ama beni aþtý.
    Minnettar kalýrým.
    //

    Temel olarak yapý þöyle olmalýdýr;

    Örneðin modül þu anda IMKBH’GARAN sembolü için sorgu çalýþtýrýyorsa, excel dosyasýnda da IMKBH’GARAN bilgisi olmalýdýr.
    Ve teknik olarak, excel dosyasýndan bu sembol ismini okutup bir if mantýðý kurulursa ilgili sütuna deðer yazdýrýlabilir

    Mesela;

    Ýf(Sistem.Sembol==ExceldenOkunanSembol) SütunBDeðeri=ExceldenOkunanÝlgiliDeðer gibi bir yapý kurulabilir. Ancak bu çok spesifik bir istek ve elimizde böyle bir örneðimiz bulunmuyor.
    //

    HTML Kod:
    //
    
    
    string FileName = "C:\\Ýdeal\\AA.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 (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); // ?????
     }
    
    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 sutunb = (decimal)ExcelArray[i, 2];
    }
    
    
    }
    
    
    
    
    
    ////////////////////////////////// ORJÝNAL SORGU KODU //////////////////////////////////////////////////
    
    var SorgulananKurum = "Bank Of America";
    var netAliciOraniEnAz = 1; //%1 ve üstü
    
    
    var AKDE = Sistem.AKDHesapla(Sistem.Sembol,5);
    Sistem.SorguAciklama = DateTime.Now.Date.ToString("dd.MM.yyyy");
    Sistem.SorguAciklamaGenislik = 100;
    
    Sistem.SorguBaslik[0] = "PGÇ 5 Krm";
    Sistem.SorguSutunTip[0] = "YAZI"; 
    Sistem.SorguBaslik[1] = "1.Alýcý";
    Sistem.SorguSutunTip[1] = "YAZI"; 
    Sistem.SorguSutunHizala[1] = "SOL";
    Sistem.SorguHucreZeminRengi[1] = Color.Cyan;
    Sistem.SorguBaslik[2] = "Net Lot";
    Sistem.SorguOndalik[2] = 0;
    Sistem.SorguBaslik[3] = "Maliyet";
    Sistem.SorguSutunTip[3] = "YAZI"; 
    Sistem.SorguBaslik[4] = "DIÞ VERÝ";
    Sistem.SorguOndalik[4] = 2;
    
    Sistem.SorguDeger[0] = AKDE.Pgc.ToString("0,000");// + " TL";
    Sistem.SorguDeger[1] = AKDE.Alici[0].Kurum;
    Sistem.SorguDeger[2] = AKDE.Alici[0].NetLot;
    Sistem.SorguDeger[3] = AKDE.Alici[0].Maliyet.ToString("0.00");
    //Sistem.SorguDeger[4] = ?????
    
    
    if (AKDE.Alici[0].Kurum == SorgulananKurum && AKDE.Alici[0].NetOran > netAliciOraniEnAz)
    {
    if (AKDE.Pgc < 0)
    {
       Sistem.SorguYaziRengi = Color.White;
       Sistem.SorguZeminRengi = Color.Red;
       Sistem.SorguHucreZeminRengi[0] = Color.Red;
       Sistem.SorguHucreYaziRengi[0] = Color.White;
    }
    else
    {
       Sistem.SorguYaziRengi = Color.White;
       Sistem.SorguZeminRengi = Color.Green;
       Sistem.SorguHucreZeminRengi[0] = Color.Green;
       Sistem.SorguHucreYaziRengi[0] = Color.White;
    
    }
       Sistem.SorguEkle();
    
    }
    ////////////////////////////////// ORJÝNAL SORGU KODU //////////////////////////////////////////////////

  7. Veriler hep sabit kalacaksa ve excel dosyasý zorunluluk deðilse þöyle bir yapý da kurulabilir, baþlangýçta bir kere uðraþýrsýn tabi:

    Sorgu sistem dosyasýnýn baþýna þu þekilde listeyi yazarsýn:

    var zz = new Dictionary<string,double>();
    zz["IMKBH'AKSEN"] = 500.00;
    zz["IMKBH'POLHO"] = 600.00;
    zz["IMKBH'ALKIM"] = 190.90;

    //var Sembol = "IMKBH'GARAN";
    Daha sonra istediðin yerde Sistem.SorguDeger[4] = zz[Sistem.Sembol]; þeklinde çekebilirsin..

    Tabi denemek lazým
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlý hayatýn ne de son matemidir bu.

  8. uðraþýrsýn dediðim kýsmý da excelden otomatik oluþturtabilirsin :
    sadece ////////////////////////////////// ORJÝNAL SORGU KODU ////////////////////////////////////////////////// öncesi kýsýmdan bir sistem dosyasý oluþturup;

    þu bölümü:

    for (int i = 2; i <= SatirSayisi; i++)
    {
    var Sembol = ExcelArray[i, 1].ToString();
    var sutunb = (decimal)ExcelArray[i, 2];
    }

    þu tarz bir þeyle deðiþtirip, kaydet ve formül teste bastýðýnda ekrana hepsini verir, sonra kopyala yapýþtýr; tabi denemediðim için doðru yapýyý verip vermediðini kontrol etmen gerek..

    var bilgi='';

    for (int i = 2; i <= SatirSayisi; i++)
    {
    var Sembol = ExcelArray[i, 1].ToString();
    var sutunb = (decimal)ExcelArray[i, 2];

    bilgi += "zz["+ Sembol +"]="+ sutunb +";" ;
    }

    Sistem.Mesaj(bilgi);
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlý hayatýn ne de son matemidir bu.

Sayfa 618/626 ÝlkÝlk ... 118518568608616617618619620 ... 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
  •