Originally Posted by
mkaanyesilgul
Herkese selam, alış yaparken 24 parçada alış yapan bir kod var elimde bunun sat tarafını da aynı şekilde aldıklarını 24 parçada satabilecek bir kod nasıl yazabilirim? Al-sat emri geldikten sonra her 10 saniyede bir emir gitsin şeklinde.
Aşağıdakini deneyebilirsiniz
Not: Denemeden atıyorum, hata varsa affola
PHP Code:
var bakiye = 1000; // 1000 TL tutar kadar her alışta al
var SistemAdi = "Sistemim_1"; //sistemizin adı
var GrafikPeriyodu = "1"; //grafiğin priyodu
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
var Sozluk = new List<string>();
Sozluk.Add("IMKBH'PETKM");
Sozluk.Add("IMKBH'KRDMD");
Sozluk.Add("IMKBH'KCHOL");
Sozluk.Add("IMKBH'AKBNK");
Sozluk.Add("IMKBH'EREGL");
Sozluk.Add("IMKBH'EKGYO");
for (var No = 0; No < Sozluk.Count; No++)
{
var Sembol = Sozluk[No]; //sistemin sinyal ürettiği grafik sembolü
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var Anahtar = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var Anahtar2 = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Islem = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(Anahtar2);
var LotSize = (double)Math.Round(Sistem.SayiTablosunuOku(Anahtar2), 0);
var Basla = Sistem.SayiTablosunuOku(Anahtar);
if (Basla == 0)
{
Sistem.SayiTablosunuGuncelle(Anahtar, 1);
LotSize = (double)Math.Round((bakiye / SonFiyat), 0);
Sistem.SayiTablosunuGuncelle(Anahtar2, LotSize);
}
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(Anahtar2);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, Pozisyon - LotSize, (double)SonFiyat);
}
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = (double)Math.Abs(LotSize);
Sistem.EmirGonder();
}
}
Yer İmleri