m(k[i-lenght],y) bunu nasıl ifade etmeliyim hocam
Printable View
Bu konunun tamamen yabancısıyım diyebilirim. ama şunu merak ediyorum. Bu robotlarpoziyonu kısmi olarak azaltıp arttırabiliyorlar mı ? Herhangi bir indikatörün durumuna göre pozisyon arttırmak ya da azaltmak mümkün mü ??
Bir de bu konuda en basitten alan bir eğitim yok mu ??
Merhaba,
İdeal'de sorgu yazabildim. Grafikteki hisse-kontrat için indikatörle al-sat sistemi de kurabildim. Bu ikisini birleştirmek mümkün mü? Sorgu sonucunu bir başka sisteme girdi olarak kullanabilir miyim?
Örneğin SorguSistem adlı bir sistemle hisseler belirlediniz diyelim.
Bu belirlediğiniz hisselerde gün boyu TradeSistem adlı bir başka sisteminizle al-sat yaptınız. Ertesi gün sorguda yeni hisseler çıktı, TradeSistem bu sefer bu yeni hisselerde çalışacak.
Not: Açıklayabilmek için çözümde iki sistem gerekli, birinin çıktısı ikinciye girdi olmalı, gibi yazdım ama aslında bu gidiş yolunun doğruluğundan da emin değilim.
Merhaba, 2 aydır ideal kullanıcısıyım. bu süre zarfında 2 kişiyi daha idealci yaptım. Bir tek sorgu ekranında zayıfız şu an. aşağıdaki sorguyu ideal diilinde yazmamıza yardımcı olursanız cok sevınırız.
MACD(26,12,9)<=MACDTrigger(26,12,9) AND MACD(26,12,9)>=-0.05 AND MACD(26,12,9)<=0.05 AND HHV(L,66)/LLV(L,66)<1.5
Şimdiden cok tesekkurler.
Hayırlı bayramlar,
All in One ( Bu kod ile, sisteminizin farklı periyot getirilerini tek pencerede görebilirsiniz. Böylece getirileri kıyaslayabilir, ilgili periyotların getiri yükseklikleri/düşüklüklerine göre lot artırımı, azaltımı, sistemi devreye alma/devre dışı bırakma vb işlemlerinize karar verebilirsiniz.)
Kod:string p1 = "1"; // bu periyodu değiştirme
string p2 = "2";
string p3 = "3";
string p4 = "4";
string p5 = "5";
string p6 = "10";
// sistem adı s1, 1 dk grafik üzerinde kullanınız, s1'de Sistem.GetiriHesapla kullanılmış olmalı, okunacak bar sayısı 1 dk grafikte 1 ayın üzerinde olmalı (örneğin 30 bin)
var V1 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p1 ) ;
var V2 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p2 );
var V3 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p3 );
var V4 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p4 );
var V5 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p5 );
var V10 = Sistem.GrafikVerileriniOku(Sistem.Sembol, p6 );
var sys1 = Sistem.SistemGetir("s1", Sistem.Sembol, p1 );
var sys2 = Sistem.SistemGetir("s1", Sistem.Sembol, p2 );
var sys3 = Sistem.SistemGetir("s1", Sistem.Sembol, p3 );
var sys4 = Sistem.SistemGetir("s1", Sistem.Sembol, p4 );
var sys5 = Sistem.SistemGetir("s1", Sistem.Sembol, p5 );
var sys10 = Sistem.SistemGetir("s1", Sistem.Sembol, p6 );
var kz22 = sys2.GetiriKZ;
var kz33 = sys3.GetiriKZ;
var kz44 = sys4.GetiriKZ;
var kz55 = sys5.GetiriKZ;
var kz1010 = sys10.GetiriKZ;
var kz222 = Sistem.Liste(V2.Count, 0);
var kz333 = Sistem.Liste(V3.Count, 0);
var kz444 = Sistem.Liste(V4.Count, 0);
var kz555 = Sistem.Liste(V5.Count, 0);
var kz101010 = Sistem.Liste(V10.Count, 0);
for (int i = 1; i < V2.Count; i++) kz222[i] = kz22[i - 1] ;
for (int i = 1; i < V3.Count; i++) kz333[i] = kz33[i - 1] ;
for (int i = 1; i < V4.Count; i++) kz444[i] = kz44[i - 1] ;
for (int i = 1; i < V5.Count; i++) kz555[i] = kz55[i - 1];
for (int i = 1; i < V10.Count; i++) kz101010[i] = kz1010[i - 1];
var kz1 = sys1.GetiriKZ;
var kz2 = Sistem.DonemCevir(V1, V2, kz222);
var kz3 = Sistem.DonemCevir(V1, V3, kz333);
var kz4 = Sistem.DonemCevir(V1, V4, kz444);
var kz5 = Sistem.DonemCevir(V1, V5, kz555);
var kz10 = Sistem.DonemCevir(V1, V10, kz101010);
var KarZararHistogramAy1 = Sistem.Liste(V1.Count, 0);
var KarZararHistogramAy2 = Sistem.Liste(V1.Count, 0);
var KarZararHistogramAy3 = Sistem.Liste(V1.Count, 0);
var KarZararHistogramAy4 = Sistem.Liste(V1.Count, 0);
var KarZararHistogramAy5 = Sistem.Liste(V1.Count, 0);
var KarZararHistogramAy10 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy1 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy2 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy3 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy4 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy5 = Sistem.Liste(V1.Count, 0);
var KarZararOncekiAy10 = Sistem.Liste(V1.Count, 0);
for (int i = 1; i < V1.Count ; i++)
{
KarZararOncekiAy1[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz1[i - 1] : KarZararOncekiAy1[i - 1];
KarZararOncekiAy2[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz2[i - 1] : KarZararOncekiAy2[i - 1];
KarZararOncekiAy3[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz3[i - 1] : KarZararOncekiAy3[i - 1];
KarZararOncekiAy4[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz4[i - 1] : KarZararOncekiAy4[i - 1];
KarZararOncekiAy5[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz5[i - 1] : KarZararOncekiAy5[i - 1];
KarZararOncekiAy10[i] = V1[i].Date.Month != V1[i - 1].Date.Month ? kz10[i - 1] : KarZararOncekiAy10[i - 1];
KarZararHistogramAy1[i] = kz1[i] - KarZararOncekiAy1[i];
KarZararHistogramAy2[i] = kz2[i] - KarZararOncekiAy2[i];
KarZararHistogramAy3[i] = kz3[i] - KarZararOncekiAy3[i];
KarZararHistogramAy4[i] = kz4[i] - KarZararOncekiAy4[i];
KarZararHistogramAy5[i] = kz5[i] - KarZararOncekiAy5[i];
KarZararHistogramAy10[i] = kz10[i] - KarZararOncekiAy10[i];
}
Sistem.Cizgiler[0].Deger = KarZararHistogramAy1; // panel2
Sistem.Cizgiler[1].Deger = KarZararHistogramAy2; // panel2
Sistem.Cizgiler[2].Deger = KarZararHistogramAy3; // panel2
Sistem.Cizgiler[3].Deger = KarZararHistogramAy4; // panel2
Sistem.Cizgiler[4].Deger = KarZararHistogramAy5; // panel2
Sistem.Cizgiler[5].Deger = KarZararHistogramAy10; // panel2
https://i.hizliresim.com/6duP4G.png
Bu pohrami hem bilgisayarımda ve hemde cep telefonumda aynı lisans ile kullanabilirsiniz bilgi verirmisiniz lutfen
Kod:study("Pseudo Polynomial Channel",overlay=true)
length = input(14),morph = input(0.9,minval=0,maxval=1),mult = input(1.),flatten = input(1.)
//----
x = n
y = close
m(a,b) =>
p = morph * a + (1-morph) * b
k = nz(m(k[length],y),y) + (x-x[length])/(x[length*2]-x[length]) * (nz(m(k[length*2],y),y) - nz(m(k[length],y),y))/flatten
k1 = sma(k,length)
er = cum(abs(y-k1))/n * mult
//----
a = k1 + er
b = k1 - er
//----
A = plot(a,color=#2196f3,linewidth=2,transp=0)
plot(k1,color=#e65100,linewidth=2,transp=0)
B = plot(b,color=#ff1100,linewidth=2,transp=0)
fill(A,B,#2196f3,transp=95)
idealde super trend ve matriks de ki ott indikatörünün kodu olan var mı ğaylaşırsa makbule geçer
Uğraştım biraz ama beceremedim, sıkıntı m değil, onunla fonksiyon tanımlıyor gibi birşey.. x ile neyi ifade ettiğini tam anlayamadım..
m(a,b) yapısına şunu uygula diyor: morph * a + (1-morph) * b
x ve y(kapanış normalde) rastgele tanımlayıp çizsin gerisine sonra bakarım dedim ama yemedi :)
m çiziyor ama m1 olamadı..
var C = Sistem.GrafikFiyatSec("Kapanis");
int i=Sistem.BarSayisi-1;
int length=14;
float morph=0.9f;
int mult=1;
int flatten=1;
var x=Sistem.GrafikFiyatSec("Yuksek"); //muhtemelen anlık fiyat ya da bar no
var y=Sistem.Ref(C,-1);
var k=Sistem.Liste(0);
for (int j = 100; j < Sistem.BarSayisi; j++)
{
var m = morph*k[j-length] + (1-morph)*y[j] ;
if(m==0) m=y[j];
var m2 = morph*k[j-length*2] + (1-morph)*y[j] ;
if(m2==0) m2=y[j];
var m1= (x[j]-x[j-length])/( x[j-length*2]-x[j-length])*(m2-m)/flatten ;
//k = nz(m(k[length],y),y) + (x-x[length])/(x[length*2]-x[length]) * (nz(m(k[length*2],y),y) - nz(m(k[length],y),y))/flatten
k[j] = m + m1;
}
Sistem.Cizgiler[0].Deger = k;
İyi bayramlar,
Periyodları farklı olan 2 sistemi nasıl birleştiririz? Aynı yönde ise işlem olacak, yönler farklı ise pozisyonda iken bile flat olacak ve aynı yönde sinyale kadar bekleyecek.
Kütüphanede hazır olan sistem birleştir ile repaint oluyor. Daha önce deneyen var mı?
Şöyle birşey olabilir
Kod:// Pseudo Polynomial Channel
var length = 14 ; //
var lengthh = 2 * length ;
var morph = 0.9f ;
var mult = 1.0f ;
var flatten = 1.0f ;
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 x = Sistem.BarSayisi ;
var xx = -1 * ( x - x + length )/( x - lengthh - x + length ) ;
//var xx = -1 * ( x - length )/( x - lengthh - x + length ) ;
var k= Sistem.Liste(0);
for (int i = 50; i < V.Count; i++)
k[i] =
morph * k[i-length]+ (1-morph) * C[i] +
xx * ( morph * k[i-lengthh]+ (1-morph) * C[i] ) -
( morph * k[i-length]+ (1-morph) * C[i] ) / flatten ;
var k1 = Sistem.MA(k, "Simple", length ) ;
var k2= Sistem.Liste(0);
for (int i = 50; i < V.Count; i++)
{
k2[i] = Math.Abs(C[i] - k1[i] ) ;
}
var er = Sistem.Sum(k2) / x * mult ;
var a = Sistem.Liste(0);
var b = Sistem.Liste(0);
for (int i = 50; i < V.Count; i++)
{
a[i] = k1[i] + er ;
b[i] = k1[i] - er ;
}
Sistem.Cizgiler[0].Deger= a ; //panel1
Sistem.Cizgiler[1].Deger= b ; //panel1
Savitzky-Golay kullanarak yumuşatmış eleman ama sizinki sanki sert olmuş gibi.
şöyle olursa en azından mid sapmaz gibi. sanırım sum olduğundan up ve down çizgileri farklı periyotlarda bar sayısı ve duyarlılık gibi nedenlerle farklılaşabilir. paramla ayarlanır gerçi onlarda.
bence framanın TTI ını alıp kanal yapmaktan daha iyi gibi, hemde bedava:)
PHP Code:
/* https://www.tradingview.com/script/qusoEeMf-Pseudo-Polynomial-Channel/ */
var V = Sistem.GrafikVerileri ;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
var length = 14;
var morph = 0.9f;
float mult = 1f;
var flatten = 1f;
var Up = Sistem.Liste(0);
var Down = Sistem.Liste(0);
var k = Sistem.Liste(0);
var kcum=0f;
for (int i = length*2 ; i < C.Count; i++)
{
k[i] = (morph * k[i-length] + (1-morph) * C[i] )
+ (i - (i+length) )
/ ( (i+length*2f) - (i+length) )
* (
(morph * k[i-length*2] + (1f-morph) * C[i] )
- (morph * k[i-length] + (1f-morph) * C[i] )
)
/ flatten;
}
var k1 = Sistem.MA(k, "Simple", length );
for (int i = length*2 ; i < C.Count; i++)
{
kcum += Math.Abs(C[i] - k1[i] );
float er = kcum / i * mult;
Up[i] = ( k1[i] + er);
Down[i] = ( k1[i] - er);
}
Sistem.Cizgiler[0].Deger = Up;
Sistem.Cizgiler[1].Deger = k1;
Sistem.Cizgiler[2].Deger = Down;
Arkadaşlar merhaba
aşağıdaki şartlara göre sorgu yapan kod lazım?
- Macd Al verecek
- RSİ 50 üzerinde, Momentum 100 ve üzerinde olanlar
- 8 Günlük Ortalaması , 21 günlük Ortalamasını yukarı kesen
- 50 günlük ortalaması- 200 günlük ortalamasını yukarı kesen
- Most yani TOMA değeri 1 olan
hisselerin sorgusu yapan kod , rica ediyorum.
Sn. Hector Salamanca, Sonli ve Anonim çok teşekkür ederim. Büyük hayaller kurmuştum ama sıradan bir bant işte.
Sağolasın hocam, bazen jeton düşmüyor :)) Ama bar numarasıymış, ilk koda bakarken öyle gibi gelmesine rağmen mantıksız gelmişti, not yazmıştım sadece.. Bölgeyi sadeleştirdiğinde -1 çıkıyor, kafa mı karıştırmak istemiş, onun mu kafa karışıkmış anlamadım :) Son bölümü de anonim arkadaşın koduyla düzenledim..
Soran arkadaş için kodun son hali ve görüntüler aşağıda, flatten ve mult la oynamak lazım.. Şahsi fikrim Bollinger ve normal ortalamalara kasmak daha faydalı olur..
https://i.hizliresim.com/md0VwG.pngPHP Code:
/*
//@version=2
study("Pseudo Polynomial Channel",overlay=true)
length = input(14),morph = input(0.9,minval=0,maxval=1),mult = input(1.),flatten = input(1.)
//----
x = n
y = close
m(a,b) =>
p = morph * a + (1-morph) * b
k = nz(m(k[length],y),y) + (x-x[length])/(x[length*2]-x[length]) * (nz(m(k[length*2],y),y) - nz(m(k[length],y),y))/flatten
k1 = sma(k,length)
er = cum(abs(y-k1))/n * mult
//----
a = k1 + er
b = k1 - er
//----
A = plot(a,color=#2196f3,linewidth=2,transp=0)
plot(k1,color=#e65100,linewidth=2,transp=0)
B = plot(b,color=#ff1100,linewidth=2,transp=0)
fill(A,B,#2196f3,transp=95)
*/
var y = Sistem.GrafikFiyatSec("Kapanis");
int i=Sistem.BarSayisi-1;
int length=14;
float morph=0.9f;
int mult=1;
int flatten=1;
var a=Sistem.Liste(0);
var b=Sistem.Liste(0);
var k=Sistem.Liste(0);
for (int j = 100; j < Sistem.BarSayisi; j++)
{
var m = morph*k[j-length] + (1-morph)*y[j] ;
if(m==0) m=y[j];
var m2 = morph*k[j-length*2] + (1-morph)*y[j] ;
if(m2==0) m2=y[j];
var m1= (-1)*(m2-m)/flatten ;
k[j] = m+m1 ;
}
var k1=Sistem.MA(k, "Simple", length);
var k2= Sistem.Liste(0);
for (int j = 100; j < Sistem.BarSayisi; j++)
k2[j] = Math.Abs(y[j] - k1[j] ) ;
var er = Sistem.Sum(k2)/i*mult ;
for (int j = 100; j < Sistem.BarSayisi; j++)
{
a[j] = k1[j] + er ;
b[j] = k1[j] - er ;
}
Sistem.Cizgiler[0].Deger = k1;
Sistem.Cizgiler[1].Deger = a;
Sistem.Cizgiler[2].Deger = b;
1.sistem "flat" 2.sistem "Al" konumundayken bileşke sistemin "flat" a zorlanması "birlesik sistem getiri egrisi" nde gordugunuz Getiri ve MaxDD degerlerinden sapmalara neden olacaktir.
Eski forumdan notlarim arasina aldigim anonimm hocamin kodunu ve forumda yazilanlari bir inceleyin. /*....*/ arasına alinmis bolum sizin istediğiniz yapıda sinyal birleştirebiliyor sanırım.
#4554
rsi pozitif veya negatif uyumsuzluk sorgu örneği
var CLOSE = Sistem.GrafikFiyatSec("Kapanis");
var RSI = Sistem.RSI(14);
var Mov_C = Sistem.MA(5, "Simple", "Kapanis");
var Mov_RSI = Sistem.MA(RSI, "Simple", 5);
var LLV = Sistem.LLV(30, RSI);
var RefLLV = Sistem.Ref(LLV,-3);
var ColA = Sistem.Liste(0);
var Col1 = Sistem.Liste(0);
var Col2 = Sistem.Liste(0);
var VW = Sistem.Liste(0);
for (int i=1; i< Sistem.BarSayisi; i++)
{
if (RSI[i-1] > 40 && RSI[i] < 40)
VW[i]= CLOSE[i];
else
VW[i] = VW[i-1];
}
for (int i=1; i< Sistem.BarSayisi; i++)
{
if (RefLLV[i] < 33 && Mov_RSI[i] < 45 & Mov_RSI[i] > 35 && ( Mov_C[i] - VW[i] ) / VW[i] * 100 < 0 )
Col1[i] = 1;
else
Col1[i] = 0;
if (RefLLV[i] < 33 && Mov_RSI[i] < 40 & Mov_RSI[i] > 35 && ( Mov_C[i] - VW[i] ) / VW[i] * 100 < -5 )
Col2[i] = 1;
else
Col2[i] = 0;
ColA[i] = Col1[i] + Col2[i] ;
}
var Veri = Sistem.SonFiyat(Sistem.Sembol);
var YuzeyselVeri = Sistem.YuzeyselVeriOku(Sistem.Sembol);
var FarkYuzde = YuzeyselVeri.NetPerDay;
Sistem.SorguBaslik[0] = "Son Fiyat";
Sistem.SorguBaslik[1] = "Gün Fark%";
Sistem.SorguBaslik[2] = "RSI 14";
if (ColA[Sistem.BarSayisi-1] > 0)
{
Sistem.SorguDeger[0] = Veri;
Sistem.SorguDeger[1] = FarkYuzde ;
Sistem.SorguDeger[2] = RSI[Sistem.BarSayisi-1];
Sistem.SorguAciklama = "RSI Pozitif Uyumsuz";
Sistem.SorguEkle();
}
yanlışmış önceki yazdığım, idealde geçen ismi PriceRocPercent imiş sanırım.
var roc= Sistem.PriceRocPercent(12);
şeklinde kullanabilirsiniz.
yüzde artışı ifade ediyor aslında.
tam anlaşılmadığı için açıklayayım. direk artış ve azalış üzerinden sistem tasarlamak daha basit ve daha karlı olabilir.
güzel bir indikatör arayanlar çıkmaz sokaktalar. aranması gereken şey güzel kurgu. indikatörlü yada indikatörsüz. bununda örneğini yazan olmayacak.
Cevabınız için teşekkürler.
5dklıkta inceliyorum 0ın altı sat üstü al şeklinde düşünürsek bir çok indikatörden farkı yok.
Ayrıca efsanevi indikatör diye siz paylaştınız..
Size katılıyorum. indikatör aramak değil, kullanma yönteminiz ve kuracağınız yapının kurgusu daha önemli. Bundan dolayı nasıl kullanıyorsunuz diye sormuştum.
Efsanevi bir şey göremedim..
maçın son korner'inde karşı kaleye koşan kaleci çaresizliği ile yazıyorum..
buradaki 300+ kazandıran örnek sistemleri incelerseniz efsane olayını kendi gözünüzle görürsünüz.
siz bana bakmayın.
ajitasyon, takiyye, tecahüli arif, eyyam, manipülasyon, mübalağa, drama..
7 dalda oscar'a adayımdır ve ironide sınır tanımam.
Son paragrafınıza tamamen katılıyorum. Arada özelden kodlama eğitimi ve "güzel" indikatör soranlar oluyor.
Strateji geliştirmenin koddan çok daha öncelikli olduğunu söylüyorum.
Klasik tabirle "kutsal kase" olmadığını, velev ki varsa bile arayarak değil çalışarak bulunabileceğini ifade etmeye çalışıyorum.
Geriye doğru trend bazlı teknik analiz yapmak çok kolaydır, ama canlı barda trend çizgisinde fiyat oynamaya başlayıp karar aşaması geldiğinde o kolaylık ortadan kalkar.
Bu işte de böyle, mesela adam bir kanal indikatör reklamı yapıyor. Bakıyorsun özenle seçilmiş periyot hisse. Yüzeysel bakan "üfff, alt bantta al üst bantta sat" parayı bulurum diyor.. :) Öyle kolayca nah bulursun! O çizgileri kim bilir kaç kere ihlal edecek.. Kendince basit bir strateji geliştirmişsen belki çok daha kolay kazanabilirsin..
Bütün indikatörler zaman zaman kazandırıp zaman zaman kaybettirir; farkı yaratacak olan sizin onlara hakimiyetiniz ve kullanım şekliniz olacaktır.
Geldik, gidiyoruz..
optimizasyonu indikatör bazlımı yapmak mantıklı yoksa sistemi optimazyon etmekmi doğru
Selam sistemimizde basit iki MA (3 EMA-5 EMA) kesişimi ile al sat veren bir algoda fiyat kademe olarak şu kadar karda ise sat nasıl yazılabilir? örneğin fiyat 7.54 den 7.56 ya geldiğinde kar 0.02 olduğunda sat diyebilecek kodu nasıl (yüzde belirtmeden sadece kademe) yazabilriz? Sagolun...
Fiyat grafiği üstüne MA gibi grafik olarak FİYAT-2*ATR kodlar ile nasıl çizdirebiliriz?
Saygılar...
1--- izleyen stop
IzleyenStopPuan(2,i)
işleme girdi 5 kademe kar etti sonradan gevşedi 2 kademe karda iken poz kapat gibi kurgulanır.
2---KarAlPuan(3,i)
işleme girdi istenen kar karşılandı poz kapatır.
hazır kalıplar içinde aynı formüllerin % sel olanlarıda bulunmaktadır.
Sistem.Cizgiler[0].Deger = MA1;
//Sistem.Cizgiler[1].Deger = MA2;
//Sistem.Cizgiler[2].Deger = MA3;
//Sistem.Cizgiler[3].Deger = ADX;
// kapanış fiyatlarını oku
var C = Sistem.GrafikFiyatSec("Kapanis");
//var L = Sistem.GrafikFiyatSec("Dusuk");
//var H = Sistem.GrafikFiyatSec("Yuksek");
// hareketli ortalamaları hesapla
var MA1 = Sistem.MA(C, "Exp", 3);
//var MA2 = Sistem.MA(L, "Exp", 50);
//var MA3 = Sistem.MA(H, "Exp", 50);
var ATR = Sistem.AverageTrueRange(14) ;
var F1[i] = C[i] - ATR[i] ;
var F2[i] = C[i] + ATR[i] ;
var F1 = Sistem.Liste(0) ;
var F2 = Sistem.Liste(0) ;
// strateji
//var SonYon = "";
//for (int i = 1; i<Sistem.BarSayisi; i++)
//{
//if (MA1[i] < F1[i-1] && MA1[i-1] > F1[i-2] < pivot1[i] = F1[i];
// else pivot1[i] = pivot1[i-1];
//if (MA1[i] > F2[i-1] && MA1[i-2] > F2[i-1] > pivot2[i] = F2[i];
// else pivot2[i] = pivot2[i-1];
//}
//if (MA1[i] > pivot2[i] && MA1[i-1] > pivot2[i-1] && SonYon != "A") // AL
//if (MA1[i] > MA3[i] && SonYon != "A") // AL
// {
// Sistem.Yon[i] = SonYon = "A"; // alış
// }
// else if (MA1[i] < pivot1[i] && MA1[i-1] > pivot1[i-1] && SonYon != "S") // SAT
//else if (MA1[i] < MA2[i] && SonYon != "S") // SAT
//{
// Sistem.Yon[i] = SonYon = "S"; // satış
// }
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[1].Deger = F1 ;
Sistem.Cizgiler[2].Deger = F2;
}