Sayfa 39/40 İlkİlk ... 2937383940 SonSon
Arama sonucu : 320 madde; 305 - 312 arası.

Konu: (Bu başlıkta soru sormayın)İdeal Formülleri (Soru-Cevap için diğer başlığı kullanın!)

  1. #305
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by Zülfü Aşkın Yazıyı Oku
    var Kapanislar = Sistem.GrafikFiyatSec("Kapanis");
    var DEMA = Sistem.DEMA(Kapanislar,5);
    var DEMA1 = Sistem.DEMA(Kapanislar,10);
    var DEMA2 = Sistem.DEMA(Kapanislar,15);
    var DEMA3 = Sistem.DEMA(Kapanislar,20);
    var DEMA4 = Sistem.DEMA(Kapanislar,22);
    var DEMA5 = Sistem.DEMA(Kapanislar,25);
    var DEMA6 = Sistem.DEMA(Kapanislar,30);
    var DEMA7 = Sistem.DEMA(Kapanislar,40);
    var DEMA8 = Sistem.DEMA(Kapanislar,49);
    var DEMA9 = Sistem.DEMA(Kapanislar,50);
    var DEMA10 = Sistem.DEMA(Kapanislar,100);
    var DEMA11 = Sistem.DEMA(Kapanislar,200);

    // ortalama hesapla
    var AVR = Sistem.DEMA(AVR, Yontem, PeriyotAVR);

    Sistem.Cizgiler[0].Deger=DEMA;
    Sistem.Cizgiler[1].Deger=DEMA2;
    Sistem.Cizgiler[2].Deger=DEMA3;
    Sistem.Cizgiler[3].Deger=DEMA4;
    Sistem.Cizgiler[4].Deger=DEMA5;
    Sistem.Cizgiler[5].Deger=DEMA6;
    Sistem.Cizgiler[6].Deger=DEMA7;
    Sistem.Cizgiler[7].Deger=DEMA8;
    Sistem.Cizgiler[8].Deger=DEMA9;
    Sistem.Cizgiler[9].Deger=DEMA10;
    Sistem.Cizgiler[10].Deger=DEMA11;
    Sistem.Cizgiler[11].Deger=DEMA12;
    Sistem.Cizgiler[12].Deger = AVR;
    Sistem.Cizgiler[12].Aciklama = "AVR " + PeriyotAVR;



    AVR..ORTALAMA almak için nerde yanlış yapıyorum..Yardımcı olurmusunuz..





    [IMG][/IMG]

     Alıntı Originally Posted by Tiberius Yazıyı Oku
    çoklu ortalamaları aşağıdaki örnekle çizdirebilirsiniz.
    Kod:
    var Per = new List<float>() { 5, 10, 15, 20, 22, 25, 30, 40, 49, 100, 200 };
    var DemaList = new List<List<float>>();
    for (int m = 0; m < Per.Count; m++)
    {
        DemaList.Add(Sistem.DEMA(Per[m]));
        Sistem.Cizgiler[m].Deger = DemaList[m];
        Sistem.Cizgiler[m].Aciklama = "DEMA " + Per[m].ToString();
    }

     Alıntı Originally Posted by Tiberius Yazıyı Oku
    AVR ortalamaların ortalaması ise (sarı çizgi)
    aşağıdaki kod iş görebilir.
    Kod:
    var Per = new List<float>() { 5, 10, 15, 20, 22, 25, 30, 40, 49, 100, 200 };
    var DemaList = new List<List<float>>();
    for (int m = 0; m < Per.Count; m++)
    {
        DemaList.Add(Sistem.DEMA(Per[m]));
        Sistem.Cizgiler[m].Deger = DemaList[m];
        Sistem.Cizgiler[m].Aciklama = "DEMA " + Per[m].ToString();
    }
    
    // AVR
    var AVR = Sistem.Liste(0);
    for (int i = 0; i < Sistem.GrafikVerileri.Count; i++)
    {
        var Toplam = 0.0f;
        for (int j = 0; j < Per.Count; j++)
            Toplam += DemaList[j][i];
        AVR[i] = Toplam / Per.Count;
    }
    Sistem.Cizgiler[11].Deger = AVR;
    Sistem.Cizgiler[11].Aciklama = "AVR";

     Alıntı Originally Posted by Tiberius Yazıyı Oku
    kodda şu değişikliği yaparsak
    mavi bölgede istediğiniz kadar parametre girebilirsiniz. (virgül ile ayırarak)

    var Per = new List<float>() { 5, 10, 15, 20, 22, 25, 30, 40, 49, 100, 200 };
    var DemaList = new List<List<float>>();
    for (int m = 0; m < Per.Count; m++)
    {
    DemaList.Add(Sistem.DEMA(Per[m]));
    Sistem.Cizgiler[m].Deger = DemaList[m];
    Sistem.Cizgiler[m].Aciklama = "DEMA " + Per[m].ToString();
    }

    // AVR
    var AVR = Sistem.Liste(0);
    for (int i = 0; i < Sistem.GrafikVerileri.Count; i++)
    {
    var Toplam = 0.0f;
    for (int j = 0; j < Per.Count; j++)
    Toplam += DemaList[j][i];
    AVR[i] = Toplam / Per.Count;
    }
    Sistem.Cizgiler[Per.Count].Deger = AVR;
    Sistem.Cizgiler[Per.Count].Aciklama = "AVR";
    Teşekkürler Tiberius
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  2. #306
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Ideali ilk duydugumdan beri takip ediyorum ve forumda ki tum sayfalari okudum yabanci kaynaklari da takip ediyorum ama daha once kod yazma deneyimim olmamisti.IdealTrade yetkilisi arkadas veya forumda kod konusunda tecrubeli arkadaslar umarim bu konuda yardimci olabilirler.

    Idealin sisteminde ki bir koddan yararlanmaya calistim.MACD histogram; MACD(12,26) 9 gunluk agirlikli hareketli ortalamasindan bulunan sinyal cizgisi ile calisiyor.

    MACD Line: (12-day EMA - 26-day EMA)

    Signal Line: 9-day EMA of MACD Line

    MACD Histogram: MACD Line - Signal Line

    Daha sonra bu histogram Elder impulse sistem'de kullaniliyor.

    Yesil cubuk: (13-period EMA > previous 13-period EMA) and
    (MACD-Histogram > previous period's MACD-Histogram)

    Kirmizi cubuk: (13-period EMA < previous 13-period EMA) and
    (MACD-Histogram < previous period's MACD-Histogram)

    Mavi cubuk( diger iki secenek soz konusuo lmadiginda).
    The MACD-Histogram is based on MACD(12,26,9).

    Sistemde "var MACD = Sistem.MACD (Veriler,12,26)" olan formul MACD histogram icin mi var ? Oyleyse bunu kullanarak nasil histogram cizdirebilirim ? Iki parametrenin farkini nasil alabilirim ve bunu nasil grafige donusturebilirm ? Yardimci olabilecek arkadaslara simdiden tesekkurler..


    // parametreleri al
    var Param1 = Sistem.Parametreler[0];
    var Param2 = Sistem.Parametreler[1];
    var Param3 = Sistem.Parametreler[2];
    var Param4 = Sistem.Parametreler[3];

    // hesapla
    var MACD = Sistem.MACD (Param1, Param2);
    // ortalama
    var AVR = Sistem.MA(MACD, "Exp", 9);
    // histogram
    var MACDHist = Sistem.MACD (MACD, AVR);

    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger = MACD;
    Sistem.Cizgiler[0].Aciklama = "MACD";
    Sistem.Cizgiler[1].Deger = AVR;
    Sistem.Cizgiler[1].Aciklama = "AVR";
    Sistem.Cizgiler[3].Deger = "MACDHist";
    Sistem.Cizgiler[3].Aciklama = "MACDHist";

    // strateji
    Sistem.KesismeTara(MACD, AVR);
     Alıntı Originally Posted by Tiberius Yazıyı Oku
    Kod:
    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis");
    
    var EMA = Sistem.MA(C, "Exp", 13);
    var MACD = Sistem.MACD(12, 26);
    var SIGNAL = Sistem.MA(MACD, "Exp", 10);
    var HISTOGRAM = Sistem.Liste(0);
    for (var i = 1; i < V.Count; i++)
        HISTOGRAM[i] = MACD[i] - SIGNAL[i];
    
    // strateji
    var SonYon = "";
    for (int i = 1; i < V.Count; i++)
    {
        if (SonYon != "A" && EMA[i] > EMA[i - 1] && HISTOGRAM[i] > HISTOGRAM[i - 1]) // Alış 
        {
            Sistem.Yon[i] = "A";
            SonYon = Sistem.Yon[i];
        }
        else if (SonYon != "S" && EMA[i] < EMA[i - 1] && HISTOGRAM[i] < HISTOGRAM[i - 1]) // Satış 
        {
            Sistem.Yon[i] = "S";
            SonYon = Sistem.Yon[i];
        }
    }
    
    // çizdir
    Sistem.Cizgiler[0].Deger = MACD;
    Sistem.Cizgiler[1].Deger = SIGNAL;
    Sistem.Cizgiler[2].Deger = HISTOGRAM;
    Sistem.Cizgiler[3].Deger = EMA;
    Teşekkürler Tiberius
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  3. #307
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    arkadaşlar selam;
    yeni bir fonksiyon ekledik.
    bir listeden hareketli ortalamasını çıkarmak için kullanılır
    Sistem.MAFARK

    kolaylıklar dileriz.


    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis");

    var MACD = Sistem.MACD(12, 26);
    var HISTOGRAM = Sistem.MAFARK(MACD, "Exp", 10);

     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    Sistem.ListeTopla fonksiyonu eklendi


    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis");

    var MA1 = Sistem.MA(C, "Exp", 10);
    var MA2 = Sistem.MA(C, "Exp", 100);
    var MA3 = Sistem.MA(C, "Exp", 200);

    var TOPLAM = Sistem.ListeTopla(MA1, MA2, MA3);

    Sistem.Cizgiler[0].Deger = TOPLAM;

     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    Sistem.ListeOrta fonksiyonu eklendi


    var Per = new List<float>() { 5, 10, 15, 20, 22, 25, 30, 40, 49, 100, 200 };
    var Liste = new List<List<float>>();
    for (int m = 0; m < Per.Count; m++)
    {
    Liste.Add(Sistem.DEMA(Per[m]));
    Sistem.Cizgiler[m].Deger = Liste[m];
    Sistem.Cizgiler[m].Aciklama = "DEMA " + Per[m].ToString();
    }

    // AVR
    var AVR = Sistem.ListeOrta(Liste[0], Liste[1], Liste[2], Liste[3], Liste[4], Liste[5], Liste[6], Liste[7], Liste[8], Liste[9], Liste[10]);
    Sistem.Cizgiler[11].Deger = AVR;
    Sistem.Cizgiler[11].Aciklama = "AVR";

     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    Sistem.ListeFark fonksiyonu eklendi


    var V = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis");

    var MA1 = Sistem.MA(C, "Exp", 100);
    var MA2 = Sistem.MA(C, "Exp", 200);
    var FARK = Sistem.ListeFark(MA1, MA2);

    Sistem.Cizgiler[0].Deger = FARK;

     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    Sistem.DikeyCizgiEkle fonksiyonu eklendi


    istediğiniz bara farklı renk, stil ve kalınlıkta çizgi çizdirebilirsiniz.
    örnekte her ay başına dikey çizgi çekilmiştir.

    var V = Sistem.GrafikVerileri;
    for (int i = 1; i < Sistem.GrafikVerileri.Count; i++)
    {
    if (V[i].Date.Month != V[i-1].Date.Month)
    Sistem.DikeyCizgiEkle(i, Color.Turquoise, 2, 3);
    }

    Sistem.Cizgiler[0].Deger=Sistem.RSI(100);



     Alıntı Originally Posted by iDealTrade Yazıyı Oku
    her gün saat 09:35 barına çizgi çekme

    var V = Sistem.GrafikVerileri;
    for (int i = 1; i < Sistem.GrafikVerileri.Count; i++)
    {
    if (V[i].Date.Hour == 9 && V[i].Date.Minute == 35)
    Sistem.DikeyCizgiEkle(i, Color.Turquoise, 2, 3);
    }

    Sistem.Cizgiler[0].Deger=Sistem.RSI(100);



    Teşekkürler Ideal
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  4. #308
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by stradivarius Yazıyı Oku
    var Sembol1 ="VIP'VIP-X030" ;
    var Sozlesme ="FX'USDTRY";

    var GunlukVeriler = Sistem.GrafikVerileriniOku(Sistem.Sembol, "G");

    var rsigunluk = Sistem.RSI(GunlukVeriler,20);
    var V = Sistem.GrafikVerileriniOku(Sistem.Sembol, "5");
    rsigunluk = Sistem.DonemCevir(V, GunlukVeriler, rsigunluk);

    var SonBarNo = V.Count-2 ;

    dunun son 20 gunun rsi verisini bugunun 5 dakikalik kodunda kullanmak istiyorum. robot kodunda. tanimi yukardaki gibi yapiyoruz , ancak benim ogrenmek istedigim sey (repaint filan yapmamasi icin dun'un rsi verisini kullanmak istiyorum.) robot kodunda dunun rsi verisini
    rsigunluk[SonBarNo-1] seklinde tanimlamak yanlis olur sanirim? bu tanim icin gundeki toplam bes dakikalik bar sayisini eksigini mi kullanmak mi gerekir ?


    rsigunluk[SonBarNo-115] gibi ?

     Alıntı Originally Posted by Tiberius Yazıyı Oku
    aşağıdaki örnekte en son elde edilen RSI listesi
    önceki günün RSI ını temsil eder ve intra-day grafiklerde
    repaint yapmadan kullanılabilir.
    günlük veriler 5 dakikalık verilerden elde edilmiştir.
    böylece günlük verileri de okumak için zaman kaybedilmemiş olunur.
    dönem çevir kodun içinde yapılmıştır.


     Alıntı Originally Posted by Tiberius Yazıyı Oku
    Kod:
    var V = Sistem.GrafikVerileri;
    var PrevGunC = new List<float>();
    var GunTarih = new List<string>();
    for (int i = 1; i < V.Count; i++)
    {
        if (V[i].Date.Day != V[i - 1].Date.Day)
        {
            PrevGunC.Add(V[i - 1].Close);
            GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
        }
    }
    var PrevGunRSI = Sistem.RSI(PrevGunC, 20);
    
    var RSI = Sistem.Liste(0);
    var StartPos = 0;
    for (int i = 1; i < V.Count; i++)
    {
        for (int j = StartPos; j < PrevGunRSI.Count; j++)
        {
            if (V[i].Date.ToString("yyyyMMdd") == GunTarih[j])
            {
                RSI[i] = PrevGunRSI[j];
                StartPos = j;
                break;
            }
        }
    }
    
    // RSI listesi önceki günün değeridir.
    //intraday grafiklerde repaint olmadan döngü içinde kullanılabilir.
    
    Sistem.Cizgiler[0].Deger = RSI;
    Teşekkürler Tiberius
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  5. #309
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by legolas Yazıyı Oku
    InSync Index Osc (biraz modifiye edilmis hali)

    Kod:
    // INSYNC INDEX
    var V = Sistem.GrafikVerileri; 
    var C = Sistem.GrafikFiyatOku(V, "Kapanis"); 
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ; 
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ; 
    var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ; 
    var VOLUME = Sistem.Volume(V);
    
    var MA20 = Sistem.MA(C, "Simple", 20);
    var MA18 = Sistem.MA(C, "Simple", 18);
    var StDev = Sistem.StDev(C, 20);
    var CCI14 = Sistem.CommodityChannelIndex(14);
    var EMV = Sistem.EaseOfMovement(10);
    var MAEMV = Sistem.MA(EMV, "Simple", 10);
    var MACD = Sistem.MACD(12, 25);
    var MAMACD = Sistem.MA(MACD, "Simple", 9);
    var MFI = Sistem.MoneyFlowIndex(20);
    var ROC = Sistem.PriceRocPercent(C, 10);
    var MAROC = Sistem.MA(ROC, "Simple", 10);
    var RSI14 = Sistem.RSI(14);
    var Stoch = Sistem.StochasticOsc(14, 3);
    
    var PDO = Sistem.Liste(0);
    var Trend = Sistem.Liste(0); 
    
    for (int i = 1; i < V.Count; i++) { 
    
     // PDO - Detrended Price Oscillator 
     PDO[i] = C[i] - MA18[i];
    }
    
    var MAPDO = Sistem.MA(PDO, "Simple", 10);
    
    for (int i = 1; i < V.Count; i++) { 
    
     var BOLInSLB = MA20[i] - 2 * StDev[i] ;
     var BOLInSUB = MA20[i] + 2 * StDev[i] ;
     var BOLInS2 = C[i] - BOLInSLB / (BOLInSUB - BOLInSUB ) ;
     var BOLInSLL = 0;
    
     if ( BOLInS2 < 0.05 ) {
         BOLInSLL = -5;
     } else if ( BOLInS2 > 0.95 ) {
         BOLInSLL = 5;
     }
    
     var CCIInS = 0;
    
     if ( CCI14[i] > 100 ) {
         CCIInS = 5; 
     } else if ( CCI14[i] < -100 ) {
         CCIInS = -5;
     }
    
     var EMVInS2 = EMV[i] - MAEMV[i] ;
    
     var EMVInSB = 0;
    
     if( EMVInS2 < 0 && MAEMV[i] < 0 ) EMVInSB = -5 ;
    
     var EMVInSS = 0;
    
     if( EMVInS2 > 0 && MAEMV[i] > 0 ) EMVInSS = 5;
    
     var MACDInS2 = MACD[i] - MAMACD[i];
    
     var MACDInSB = 0;
    
     if( MACDInS2 < 0 && MAMACD[i] < 0 ) MACDInSB = -5;
    
     var MACDInSS = 0;
    
     if( MACDInS2 > 0 && MAMACD[i] > 0 ) MACDInSS = 5;
    
     var MFIInS = 0;
    
     if( MFI[i] > 80 ) MFIInS = 5; 
     if( MFI[i] < 20 ) MFIInS = -5; 
    
     var PDOInS2 = PDO[i] - MAPDO[i];
    
     var PDOInSB = 0;
     if( PDOInS2 < 0 && MAPDO[i] < 0) PDOInSB = -5;
    
     var PDOInSS = 0;
     if( PDOInS2 > 0 && MAPDO[i] > 0) PDOInSS = 5;
    
     var ROCInS2 = ROC[i] - MAROC[i]; 
    
     var ROCInSB = 0;
     if( ROCInS2 < 0 && MAROC[i] < 0) ROCInSB = -5;
    
     var ROCInSS_Index = 0;
     if( ROCInS2 > 0 && MAROC[i] > 0) ROCInSS_Index = 5;
    
     var RSIInS = 0;
     if( RSI14[i] > 70 ) RSIInS = 5;
     if( RSI14[i] < 30 ) RSIInS = -5;
    
     var STOdInS = 0;
     if( Stoch[i] > 80 ) STOdInS = 5;
     if( Stoch[i] < 20 ) STOdInS = -5;
    
     var InSync_Index = 50 + STOdInS + CCIInS + BOLInSLL + RSIInS + MFIInS + EMVInSB + EMVInSS + ROCInSS_Index + ROCInSB + PDOInSS + PDOInSB + MACDInSS + MACDInSB ;
    
     Trend[i] = InSync_Index; 
    
    } 
    
    var MATrend = Sistem.MA(Trend, "Simple", 14);
    
    Sistem.Cizgiler[0].Deger = Trend;
    Sistem.Cizgiler[1].Deger = MATrend;
    Teşekkürler Legolas
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  6. #310
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by Sezai KILIÇ Yazıyı Oku
    Kütüphanemde bu indikatör için bir başka iDeal kodlaması vardı. Sanırım her sembolün her periyodunda çalışıyor.
    Sayın Anonimm'in kodundaki sorunu aramak daha zor olur zannımca.

    Kod:
    var len = 10;
    var H = Sistem.GrafikFiyatSec("Yuksek");
    var L = Sistem.GrafikFiyatSec("Dusuk");
    
    var pr = Sistem.Liste(0);
    var val1 = Sistem.Liste(0);
    var value1 = Sistem.Liste(0);
    var fish = Sistem.Liste(0);
    
    for (int i=1; i < Sistem.BarSayisi; i++)
    {
       pr[i] = (H[i] + L[i] )/2; 
    }
    var maxh = Sistem.HHV(len,pr);
    var minl = Sistem.LLV(len,pr);
    
    for (int i=2; i < Sistem.BarSayisi; i++)
    {
       if((maxh[i] - minl[i]) != 0)
       val1[i] =0.33f * 2 * ((pr[i]-minl[i]) / (maxh[i]-minl[i])-0.5f) + 0.67f * val1[i-1];
    
       if(val1[i] > 0.99f)
          value1[i] = 0.999f;
       else if(val1[i]  < -0.99f)
          value1[i] =-0.999f;
       else
          value1[i] = val1[i];
    
       if((1 - value1[i]) != 0) 
          fish[i] = 0.5f * (float)Math.Log((1 + value1[i]) / (1 - value1[i])) + 0.5f * fish[i-1];
    }
    Sistem.Cizgiler[0].Deger = fish;
    Sistem.Cizgiler[1].Deger = Sistem.Ref(fish,-1);
    Teşekkürler Sezai bey
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  7. #311
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by philoparty Yazıyı Oku
    Selam,
    Merak ettiğim bir husus var :
    Sistemimiz 5 Dk. grafiklerle trade ederken,
    İçerisinde olduğumuz 5 dk. bar henüz tamamlanmadan fiyat oluştuğu anda işlemi yaptırmak için nasıl bir örnek kullanabiliriz?
    Bunu yapmanın sakıncalı olduğunu ve repaint olasılığının oldukça yükseldiğini biliyorum ama nasıl yapıldığını merak ediyorum.
    Kod örneği paylaşmanız mümkün müdür?

     Alıntı Originally Posted by Sezai KILIÇ Yazıyı Oku
    Bu şekilde bir robot kodu henüz kapanmamış barda, koşul gerçekleştiği anda emri gönderir.

    Kod:
    var LotSize = 4.0;
    var Sembol = "VIP'F_XU0300416S0";
    var Periyot = "5";
    
    var V = Sistem.GrafikVerileriniOku(Sembol, Periyot);
    var C = Sistem.GrafikFiyatOku(V, "Kapanis");
    var MA1 = Sistem.MA(C, "Exp", 10);
    var MA2 = Sistem.MA(C, "Exp", 50);
    
    var SartAl = false;
    var SartSat = false;
    var SonYon = ""; 
    for (int i = 1 ; i < V.Count; i++)
    {
       if (( (MA1[i] > MA2[i] ) ) && SonYon != "A" ) // alış
       {
          SonYon = "A";
          if (i == V.Count - 1) SartAl = true;
       } 
       if (((MA1[i] < MA2[i] )) && SonYon != "S") // satış
       {
          SonYon = "S";
          if (i == V.Count - 1) SartSat = true;
       }
    }
    
    
    // emir gönder
    var Islem = "";
    var Miktar = 0.0;
    var SonFiyat = Sistem.SonFiyat(Sembol);
    var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + Sembol);
    
       if (SartAl && Pozisyon <= 0) // alış
       {
          Islem = "ALIS";
          if (Pozisyon == 0) // pozisyonum yoksa 1 lot al
             Miktar = LotSize;
          else if (Pozisyon < 0) // short isem stop and reverse , 2 lot al
             Miktar = LotSize + Math.Abs(Pozisyon);
       }
       else if (SartSat && Pozisyon >= 0) // satış
       {
          Islem = "SATIS";
          if (Pozisyon == 0) // pozisyonum yoksa 1 lot sat
             Miktar = LotSize;
          else if (Pozisyon > 0) // long isem stop and reverse , 2 lot sat
             Miktar = LotSize + Math.Abs(Pozisyon);
       }
    
    
    // Emir Gönder !!!
    if (Islem != "")
    {
       if (Islem == "ALIS")
          Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + Sembol, LotSize);
       else if (Islem == "SATIS")
          Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + Sembol, -LotSize);
    
       Sistem.EmirSembol = Sembol;
       Sistem.EmirIslem = Islem; 
       Sistem.EmirMiktari = Miktar;
       Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
       Sistem.EmirTipi = "KPY"; // KPY, KIE, GIE, SAR
       Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
       Sistem.EmirGonder();
    }
    Kırmızı yaptığım yerdeki -1 değeri -2 yapılırsa, KAPANMIŞ barda koşul varsa emir gönderimi olur.

     Alıntı Originally Posted by Sezai KILIÇ Yazıyı Oku
    Bir başka yöntem de, grafik üzerinde çalışan sisteminizi, aşağıdaki kalıp içinden çağırarak robot haline getirmektir.
    Bu kod içine sisteminizin adını, sistemi uyguladığınız grafik sembolünü ve periyodu girmek yeterlidir.
    Bu kalıp robotta, işlem adedini değiştirmek için LotSize değerini değiştirmek yeterlidir.
    Örneğin Pozisyon +3 iken, 5 Lot'a çıkılmak istenirse LotSize 5 yapılırsa, robot anında 2 alım daha yapar.
    Veya tam tersi pozisyon 3'ten 1'e indirilmek istenirse LotSize =1 yapılır. Robot anında 2 adet satar ve pozisyonu 1'e çeker.

    Kod:
    var LotSize = 1.0;
    var MySistem = Sistem.SistemGetir("SISTEMIMIN_DI", "VIP'VIP-X030", "5"); //Sisteminizin adı, grafik sembolünüz, periyot
    var EmirSembol = Sistem.AktifViopKontrat;
    var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol);
    var SonYon = "";
    for (int i = 0; i < MySistem.Yon.Count; i++)
    {
       if (MySistem.Yon[i] != "")
          SonYon = MySistem.Yon[i];
    }
    
    // Emir Miktarını Hesapla
    var Miktar = 0.0;
    if (Sistem.Saat.CompareTo("09:10:00") <= 0)  // Seans Başlamadı
    {
    }
    else if (SonYon == "F" && Pozisyon != 0)  // Flata Geç
       Miktar = -Pozisyon;
    else if (SonYon == "A" && Pozisyon != LotSize)  // Al
       Miktar = LotSize - Pozisyon;
    else if (SonYon == "S" && Pozisyon != -LotSize)  // Sat
       Miktar = -LotSize - Pozisyon;
    
    // Emir Gönder
    var Islem = "";
    if (Miktar > 0)
       Islem = "ALIS";
    if (Miktar < 0)
       Islem = "SATIS";
    if (Islem != "")
    {
       Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon);
       Sistem.EmirSembol = EmirSembol;
       Sistem.EmirIslem = Islem; 
       Sistem.EmirMiktari = Math.Abs(Miktar);
       Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
       Sistem.EmirTipi = "KPY"; // KPY, KIE, GIE, SAR
       Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
       Sistem.EmirGonder();
    }
    Teşekkürler Sezai bey
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

  8. #312
    Duhul
    Aug 2011
    İkamet
    Mudanya
    Yaş
    36
    Gönderi
    7,513

    Esas

     Alıntı Originally Posted by seagunner Yazıyı Oku
    Merhaba, deneme yapıyorum biraz uğraştım dönüştürme ile ilgili hata verdi. Düzeltmeye uğraşırken, buraya yazacak durumu da kalmadı kodun sonunu getiremedim. Çeviri konusunda yardım lütfen.
    x0:=(H+L+C)/3;
    X1:=MOV(X0,258,E);
    X2:=MOV(abs(X0-X1),5,E);
    X3:=(X0-X1)/(0.015*X2);
    X4:=mov(X3,21,E);
    X5:=mov(X4,3,S);
    X6:=(X4-X5);
    X4;X5;X6

     Alıntı Originally Posted by legolas Yazıyı Oku
    buyrun, yalniz bu kod ne is yapiyor?

    Kod:
    var V = Sistem.GrafikVerileri; 
    var C = Sistem.GrafikFiyatOku(V, "Kapanis"); 
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ); 
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ); 
    
    var X0 = Sistem.Liste(0);
    var X2 = Sistem.Liste(0);
    var X3 = Sistem.Liste(0);
    var X6 = Sistem.Liste(0);
    
    for (int i = 1; i < V.Count; i++) { 
    
     X0[i] = (C[i]+H[i]+L[i]) / 3;
    
    }
    
    var X1 = Sistem.MA(X0, "Exp", 258);
    
    for (int i = 1; i < V.Count; i++) { 
    
     X2[i] = Math.Abs(X0[i]-X1[i]);
    
    }
    
    var MAX2 = Sistem.MA(X2, "Exp", 5);
    
    for (int i = 1; i < V.Count; i++) { 
    
     X3[i] = (X0[i] - X1[i]) / (0.015f * MAX2[i]) ;
    
    }
    
    var X4 = Sistem.MA(X3, "Simple", 21);
    var X5 = Sistem.MA(X4, "Simple", 3);
    
    for (int i = 1; i < V.Count; i++) { 
    
     X6[i] = X4[i] - X5[i] ;
    
    }
    
    Sistem.Cizgiler[0].Deger = X4; 
    Sistem.Cizgiler[1].Deger = X5; 
    Sistem.Cizgiler[2].Deger = X6;
    Teşekkürler Legolas
    Forum kurallarını okumak için tıklayınız!
    Not: Forumumuzda dini, siyasi ve futbol taraftarlığı içeren yazılar kabul edilmiyor!

Sayfa 39/40 İlkİlk ... 2937383940 SonSon

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
  •