
Originally Posted by
Bear_Bull
Yusuf, şimdiden kolay gelsin.
saat 9:35 ten başlatarak kendine yeni bir Vadeli kodu tanımlayıp
sistemini yeni vadeli kod üzerinden çalıştırabilirsin. robotun ise aktif kontrata emir gönderir olay çözülür.
aşağıda örnek bir kodlama var
[aşağıdaki örneğin yaptığı 4 tane vadeli kodunun
toplam AÇIK POZİSYON SAYISINI bulmak]
bunu kendine yarayacak şekilde değiştirmen lazım.
senin yapacağın vadeli aktif Kontratın
açılış düşük yüksek kapanış ve lot sayılarını yeni grafiğe kaydettirmek
9:35 te veya 9:40 tan itibaren 1 veya 2 bar eksik grafik datası oluşturmak
istenirse öğle aralarıda pas geçittirilebilir.
KULLANICI SEMBOL SİSTEMİ içine yazılacak.
PHP Code:
// VİOP_TOP_AÇIK_POZ sembol tanım
var kod = "VIP'F_XU030";
var koddlr = "VIP'F_USDTRY";
var kod2= DateTime.Now.Year - 2000;
var kod2a= DateTime.Now.Year - 1999;
//var kod3= "S0";
var v1="";var v2="";var v3="";var v4="";
var vade1s = "";var vade2s = "";var vade3s = "";var vade4s = "";
var dvade1s = "";var dvade2s = "";var dvade3s = "";var dvade4s = "";
var hata = 0;
if (DateTime.Now.Month >=1 && DateTime.Now.Month <= 2)
{
v1="02";
v2="04";
v3="06";
v4="12";
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2 ;
vade3s = kod + v3 + kod2 ;
vade4s = kod + v4 + kod2 ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2 ;
dvade3s = koddlr + v3 + kod2 ;
dvade4s = koddlr + v4 + kod2 ;
}
else if (DateTime.Now.Month >=3 && DateTime.Now.Month <= 4)
{
v1="04";
v2="06";
v3="08";
v4="12";
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2 ;
vade3s = kod + v3 + kod2 ;
vade4s = kod + v4 + kod2 ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2 ;
dvade3s = koddlr + v3 + kod2 ;
dvade4s = koddlr + v4 + kod2 ;
}
else if (DateTime.Now.Month >=5 && DateTime.Now.Month <= 6)
{
v1="06";
v2="08";
v3="10";
v4="12";
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2 ;
vade3s = kod + v3 + kod2 ;
vade4s = kod + v4 + kod2 ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2 ;
dvade3s = koddlr + v3 + kod2 ;
dvade4s = koddlr + v4 + kod2 ;
}
else if (DateTime.Now.Month >=7 && DateTime.Now.Month <= 8)
{
v1="08";
v2="10";
v3="12";
v4="02"; /// açılmaz
hata = 1;
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2 ;
vade3s = kod + v3 + kod2 ;
vade4s = kod + v4 + kod2a ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2 ;
dvade3s = koddlr + v3 + kod2 ;
dvade4s = koddlr + v4 + kod2a ;
}
else if (DateTime.Now.Month >=9 && DateTime.Now.Month <= 10)
{
v1="10";
v2="12";
v3="02";
v4="04"; // açılmaz
hata = 1;
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2 ;
vade3s = kod + v3 + kod2a ;
vade4s = kod + v4 + kod2a ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2 ;
dvade3s = koddlr + v3 + kod2a ;
dvade4s = koddlr + v4 + kod2a ;
}
else if (DateTime.Now.Month >=11 && DateTime.Now.Month <= 12)
{
v1="12";
v2="02";
v3="04";
v4="06"; // açılmaz
hata = 1;
vade1s = kod + v1 + kod2 ;
vade2s = kod + v2 + kod2a ;
vade3s = kod + v3 + kod2a ;
vade4s = kod + v4 + kod2a ;
dvade1s = koddlr + v1 + kod2 ;
dvade2s = koddlr + v2 + kod2a ;
dvade3s = koddlr + v3 + kod2a ;
dvade4s = koddlr + v4 + kod2a ;
}
//Sistem.Debug(dvade1s + " ---- " + dvade2s + " ---- " + dvade3s + " ---- " + dvade4s);
// VİOP_TOP_AÇIK_POZ veri oku
var V30TAPOZ = Sistem.SembolTanimla("DFN'V30TAPOZ", 0);
V30TAPOZ.Description = "xu030 vadeler açık poz toplamı";
var VDLRTAPOZ = Sistem.SembolTanimla("DFN'VDLRTAPOZ", 0);
V30TAPOZ.Description = "DOLAR vadeler açık poz toplamı";
var vade1 = Sistem.YuzeyselVeriOku(vade1s);
var vade2 = Sistem.YuzeyselVeriOku(vade2s);
var vade3 = Sistem.YuzeyselVeriOku(vade3s);
var dvade1 = Sistem.YuzeyselVeriOku(dvade1s);
var dvade2 = Sistem.YuzeyselVeriOku(dvade2s);
var dvade3 = Sistem.YuzeyselVeriOku(dvade3s);
if (hata == 0)
{
var vade4 = Sistem.YuzeyselVeriOku(vade4s);
V30TAPOZ.LastPrice= Convert.ToSingle(vade1.OpenInterest + vade2.OpenInterest + vade3.OpenInterest + vade4.OpenInterest );
var dvade4 = Sistem.YuzeyselVeriOku(dvade4s);
VDLRTAPOZ.LastPrice= Convert.ToSingle(dvade1.OpenInterest + dvade2.OpenInterest + dvade3.OpenInterest + dvade4.OpenInterest );
}
else
{
V30TAPOZ.LastPrice= Convert.ToSingle(vade1.OpenInterest + vade2.OpenInterest + vade3.OpenInterest );
VDLRTAPOZ.LastPrice= Convert.ToSingle(dvade1.OpenInterest + dvade2.OpenInterest + dvade3.OpenInterest );
}
Sistem.YuzeyselGuncelle(V30TAPOZ);
Sistem.YuzeyselGuncelle(VDLRTAPOZ);
if (Sistem.SaatAraligi("09:30", "18:45") && DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday)
{
Sistem.GrafikGuncelle(VDLRTAPOZ);
Sistem.GrafikGuncelle(V30TAPOZ);
}
Bear_Bull hocam eğer doğru anladıysam Oralet 9:35'ten önce işlem yapmak istemiyor.
Koda şöyle bir ekleme yapılırsa sorun çözülür gibi, siz ne dersiniz?
Kod:
for (var i = 1; i < P.Count; i++)
{
if (P[i].Date.TimeOfDay <= new TimeSpan(9, 35, 0)) continue;
// alis satis kararları burada yazilmali
}
Yer İmleri