selamlar ,
bende matriksden ideale geçtim
her şey karıştı zamanla alışırız umarım.
bir konuda yardımınıza ihtiyacım var
sorgu ekranında sadece harami formasyonlarını nasıl taratabilirim
yardımcı olursanız sevinirim.
|
|
var V = Sistem.GrafikVerileri;
var hcm = Sistem.GrafikFiyatSec("Hacim");
var X1 = Sistem.MA(20,"Simple","Hacim");
// X3 - boş liste oluştur
var X3 = Sistem.Liste(0);
// X3 - hesapla
for (int i = 0; i < Sistem.BarSayisi; i++)
X3[i] = hcm[i]/(X1[i]);
// çizligeri göster
Sistem.Cizgiler[0].Deger = X3;
https://i.resimyukle.xyz/Hz0Pe5.png
Bear_Bull
@BearBull26
selamlar ,
bende matriksden ideale geçtim
her şey karıştı zamanla alışırız umarım.
bir konuda yardımınıza ihtiyacım var
sorgu ekranında sadece harami formasyonlarını nasıl taratabilirim
yardımcı olursanız sevinirim.
Bilgi için teşekkürler üstad. Sayının yuvarlanması in mantığı nedir? Ben denedim. Yuvarlama dan da çalıştı. Çalışmadığı durumlarda mi oluyor?
Lenovo P2a42 cihazımdan hisse.net mobile app kullanarak gönderildi.
merhabalar kolay gelsin ,
mov 5.e mov 20 e yi yukarı ya da aşağı kesince bir önceki bar kapanışını döndür şeklince bir kalıp yazabilirisiniz. şimdiden teşekkür ederim kolay gelsin
Bear_Bull
@BearBull26
Selamlar, yeni idealde kod yazmayı öğrenmeye başladım. Bilgim sıfır. Sağdan soldan bulduklarımı birleştirip videolardan gördüklerimi yapmaya çalışıyorum. Aşağıda bir kalıp var. Ben indikatör değişkenlerini değiştirerek denemeler yapmak istiyorum ancak sanırım kalıbı yapamadım sonuç alamıyorum. Hatayı anlamam için yardımınızı rica ediyorum.
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var MA = Sistem.MA(C,"Variable",30);
var MA1 = Sistem.MA(MA, "Exp", 60);
var TRIX = Sistem.TRIX(25);
var TRIXAVR = Sistem.MA(TRIX, "Exp", 60);
Sistem.Yon[i] = "";
var SonYon = "";
double SonFiyat = 0.0;
var FlatOncesiYon = "";
var Sinyal = "";
float GunKZ = 0f;
int BarNo = 0;
for (int i = 1; i < V.Count; i++)
{
if (MA[i] > MA1[i] && TRIX[i] > TRIXAVR[i]) Sinyal = "A";
if (MA[i] < MA1[i] && TRIX[i] < TRIXAVR[i]) Sinyal = "S";
}
// STOP VE KAR AL //
if (SonYon == "A" && C[i] < SonFiyat * 0.97) Sinyal = "F";
if (SonYon == "S" && C[i] > SonFiyat * 1.03) Sinyal = "F";
// if (SonYon == "A" && C[i] < SonFiyat * 0.992) Sinyal = "F";
// if (SonYon == "S" && C[i] > SonFiyat * 1.008) Sinyal = "F";
// Yön Kalıbı
if (Sinyal == "A" && SonYon != "A")
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
BarNo = i;
}
if (Sinyal == "S" && SonYon != "S")
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
BarNo = i;
}
if (Sinyal == "F" && SonYon != "F")
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
SonFiyat = V[i].Close;
}
Sistem.GetiriHesapla("01/01/2000", 0.0);
double KarCount = 0;
double ZararCount = 0;
int PrevBarNo = 0;
var PrevYon = "";
for (int i = 0; i < V.Count; i++)
{
if (PrevBarNo > 0)
{
if (PrevYon == "A" && (Sistem.Yon[i] == "F" || Sistem.Yon[i] == "S"))
{
if (C[i] > C[PrevBarNo]) KarCount++;
if (C[i] < C[PrevBarNo]) ZararCount++;
}
if (PrevYon == "S" && (Sistem.Yon[i] == "F" || Sistem.Yon[i] == "A"))
{
if (C[i] < C[PrevBarNo]) KarCount++;
if (C[i] > C[PrevBarNo]) ZararCount++;
}
}
if (Sistem.Yon[i] != "")
{
PrevYon = Sistem.Yon[i];
PrevBarNo = i;
}
}
double Oran = 100 * KarCount / (KarCount + ZararCount);
//Sistem.Mesaj(Oran.ToString("0.00"));
var Sure = (DateTime.Now - V[0].Date).TotalDays / 30.4;
var gunkz = Sistem.GetiriKZGunSonu[Sistem.GetiriKZGunSonu.Count - 1] - Sistem.GetiriKZGun[Sistem.GetiriKZGun.Count - 1];
Sistem.GradientYaziEkle(Sure.ToString("0.0") + " Ay", 2, 10, 20, Color.Silver, Color.Silver, "Calibri", 18);
Sistem.GradientYaziEkle(Sistem.GetiriKZ[Sistem.GetiriKZ.Count - 1].ToString("0.000"), 2, 150, 20, Color.Gold, Color.Gold, "Calibri", 18);
Sistem.GradientYaziEkle("Bu Gün", 2, 10, 50, Color.Silver, Color.Silver, "Calibri", 18);
Sistem.GradientYaziEkle(gunkz.ToString("0.000"), 2, 150, 50, Color.Gold, Color.Gold, "Calibri", 18);
Sistem.GradientYaziEkle("İşlem Sayısı", 2, 20, 180, Color.Silver, Color.Silver, "Tahoma", 14);
Sistem.GradientYaziEkle(Sistem.GetiriIslemSayisiPo z[V.Count - 1].ToString("0"), 2, 150, 180, Color.Gold, Color.Gold, "Tahoma", 14);
Sistem.GradientYaziEkle("Ortalama", 2, 20, 205, Color.Silver, Color.Silver, "Tahoma", 14);
Sistem.GradientYaziEkle((Sistem.GetiriIslemSayisiP oz[V.Count - 1] / Sure).ToString("0"), 2, 150, 205, Color.Gold, Color.Gold, "Tahoma", 14);
Sistem.GradientYaziEkle("Karlılık", 2, 10, 140, Color.Silver, Color.Silver, "Calibri", 18);
Sistem.GradientYaziEkle(Oran.ToString("0.00"), 2, 150, 140, Color.Gold, Color.Gold, "Calibri", 18);
Sistem.Cizgiler[0].Deger = Sistem.GetiriKZGunSonu; // panel 2
Sistem.Cizgiler[1].Deger = Sistem.GetiriKZGun; // panel 2
Sistem.DolguEkle(0, 1, Color.FromArgb(120, 0, 255, 0), Color.FromArgb(120, 255, 0, 0));
Sistem.Cizgiler[2].Deger = Sistem.GetiriKZAy; // panel 2
çok fazla şey birleştirmişsin,
optimizasyon dan tut ta işin show kısmına kadar
şu kadarcık kod şimdilik test için idare eder.
öğrendikçe fazlalıkları ilave edersiniz.
Kod:var V = Sistem.GrafikVerileri; var C = Sistem.GrafikFiyatSec("Kapanis"); var H = Sistem.GrafikFiyatSec("Yuksek"); var L = Sistem.GrafikFiyatSec("Dusuk"); var MA = Sistem.MA(C,"Variable",30); var MA1 = Sistem.MA(MA, "Exp", 60); var TRIX = Sistem.TRIX(25); var TRIXAVR = Sistem.MA(TRIX, "Exp", 60); var SonYon = ""; double SonFiyat = 0.0; var FlatOncesiYon = ""; var Sinyal = ""; float GunKZ = 0f; int BarNo = 0; for (int i = 1; i < V.Count; i++) { if (MA[i] > MA1[i] && TRIX[i] > TRIXAVR[i]) Sinyal = "A"; if (MA[i] < MA1[i] && TRIX[i] < TRIXAVR[i]) Sinyal = "S"; // STOP VE KAR AL // if (SonYon == "A" && C[i] < SonFiyat * 0.97) Sinyal = "F"; if (SonYon == "S" && C[i] > SonFiyat * 1.03) Sinyal = "F"; // if (SonYon == "A" && C[i] < SonFiyat * 0.992) Sinyal = "F"; // if (SonYon == "S" && C[i] > SonFiyat * 1.008) Sinyal = "F"; // Yön Kalıbı if (Sinyal == "A" && SonYon != "A") { Sistem.Yon[i] = "A"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; BarNo = i; } if (Sinyal == "S" && SonYon != "S") { Sistem.Yon[i] = "S"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; BarNo = i; } if (Sinyal == "F" && SonYon != "F") { Sistem.Yon[i] = "F"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; } } { Sistem.GetiriHesapla("01.01.2020", 0.0f); var KarZarar = Sistem.GetiriKZ; Sistem.Cizgiler[6].Deger = KarZarar; Sistem.Cizgiler[6].Stil=1; Sistem.Cizgiler[6].Panel = 2; Sistem.Cizgiler[6].Aciklama = "NET_K/Z"; Sistem.Cizgiler[6].ActiveBool = true; var isay = Sistem.GetiriToplamIslem; Sistem.ZeminYazisiEkle(" İşlem Adet "+isay.ToString("0") , 2, 300, 15, Color.White , "Tahoma", 8); Sistem.ZeminYazisiEkle("Kâr_Zarar "+ (KarZarar[KarZarar .Count-1]).ToString("0.00") + " puan", 2, 500, 15, KarZarar[KarZarar.Count-1] > 0 ? Color.Green : Color.Red , "Tahoma", 8); }
Bear_Bull
@BearBull26
|
|
Merhabalar, Ben de Matriks'ten Ideal'e yeni gecenlerdenim, umarim zamanla birseyleryapabilir duruma gelecegim, eski foruma ulasamadim, bu basliktan basladim okuyarak (2017 yilindan) bu yana dogru geliyorum.
Sorgu ekraninda sectigim periyorda gore 5 ve 10 periyodluk lot sayisi ile canli lot sayilarinin oranlanmasina ihtiyacim var.
1-hisse adi
2-alis fiyati
3-satis fiyati
4-son fiyat
5- o gunku % artis
6- o periyodluk toplam lot miktari
7- bir onceki periyod toplam lot miktari
8- iki onceki periyod toplam lot miktari
9- 5 periyodluk lot miktari (ortalamasi da olabilir)
10- 10periyodluk lot miktari (ortalamasi da olabilir)
11- =(5.kolon/9.kolon)-1
12- =(5.kolon/10.kolon)-1
bunu daha once matrikste gunluk lot miktarlarina gore yapiyordum ama idealden excele veri cekemedim, idealdeki arkadaslara bildirdim belki ileride yapilabilir duruma gelir. ama idealin sorgu kismini begendim orada cok sey yapilabilir diye dusunuyorum, merakliyim programi tanimaya calisiyorum.
ilgilenececk arkadaslara simdiden tesekkurler.
Yer İmleri