-

Originally Posted by
oralet
Bugun musteri temsilcimle konustum , gerekli evragi gonderdi imzalayip tekrar gonderdim , saolun
SM-M205F cihazımdan Tapatalk kullanılarak gönderildi
Hangi araci kurumdan muafiyet aldiniz? Ben de ugrasacam artik.
-

Originally Posted by
ogulsev
Hangi araci kurumdan muafiyet aldiniz? Ben de ugrasacam artik.
Selamlar meksa yatirim.
SM-M205F cihazımdan Tapatalk kullanılarak gönderildi
-
Tekrarsız Alım

Originally Posted by
yuji
Lotlu hali daha sade:
PHP Code:
var SistemAdi = "Sistemim_1"; //sistemizin adı
var GrafikPeriyodu = "1"; //grafiğin priyodu
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
var hisseLot = new Dictionary<string, int>();
hisseLot["IMKBH'PETKM"] = 10;
hisseLot["IMKBH'KRDMD"] = 20;
hisseLot["IMKBH'KCHOL"] = 30;
hisseLot["IMKBH'AKBNK"] = 10;
hisseLot["IMKBH'EREGL"] = 20;
hisseLot["IMKBH'EKGYO"] = 30;
for (var No = 0; No < hisseLot.Count; No++)
{
var item = hisseLot.ElementAt(No);
var Sembol = item.Key;//sistemin sinyal ürettiği grafik sembolü
var LotSize = item.Value;//sistemin sinyal ürettiği hisse için yukarıda tanımlanan lot
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var PozisyonAnahtari = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var EmirAnahtari = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Pozisyon = Sistem.PozisyonKontrolOku(PozisyonAnahtari, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(EmirAnahtari);
var Islem = "";
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(EmirAnahtari);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon - LotSize, (double)SonFiyat);
}
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = (double)Math.Abs(LotSize);
Sistem.EmirGonder();
}
}
Merhabalar ,
Tekrarlı alım şartı olmadan bir seferde alıp satacak şekilde de paylaşmanız mümkün mü acaba ?
-

Originally Posted by
rimedo
Merhabalar ,
Tekrarlı alım şartı olmadan bir seferde alıp satacak şekilde de paylaşmanız mümkün mü acaba ?
Burayı 1 yaparsanız olur heralde
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
-
Merhaba arkadaşlar bi konuda yardıma ihtiyacım var akşam seansının dahil olduğu x030-T için her ay sonu 18:00 de vade kapat nasıl yapabilirim. aşağıda örnek olarak hazırladığımız bir kodum var fakat akşam seansı için 22:59 da kapatıyor yani kontratı yeni vade taşımış oluyor
if (V[i].Date.Month != V[i + 1].Date.Month && V[i].Date.ToString("HH:mm:ss").CompareTo("17:59:59") > 0)*Sinyal*=*"F";
-

Originally Posted by
yuji
Burayı 1 yaparsanız olur heralde
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
1 yapınca liste isimlerini iki kere yazıp bir kere emir atıyor hocam , pozisyonlar karışıyor ikili isim yazdığı için
-

Originally Posted by
BosphorusTRY
Merhaba arkadaşlar bi konuda yardıma ihtiyacım var akşam seansının dahil olduğu x030-T için her ay sonu 18:00 de vade kapat nasıl yapabilirim. aşağıda örnek olarak hazırladığımız bir kodum var fakat akşam seansı için 22:59 da kapatıyor yani kontratı yeni vade taşımış oluyor
if (V[i].Date.Month != V[i + 1].Date.Month && V[i].Date.ToString("HH:mm:ss").CompareTo("17:59:59") > 0)*Sinyal*=*"F";
Kodunuz sadece backtestte işe yarıyor o yüzden basit bir yama çözüm önereyim.
Kırmızı ile işaretli yeri periyoda göre akşam seansındaki (4 saat) oluşabilecek maximum bar sayısı +1 olacak şekilde düzenleyin.
Örneğin 1 dakikalık periyotta max 240 bar oluşma ihtimali varsa V[i + 241] işinizi görecektir. Tabi for döngüsünün son bar değerini de bir o kadar düşürmek gerekiyor V.Count - 242 veya Sistem.BarSayisi - 242 gibi.
-
teşekkürler böyle yaparsak kod ayın son gününe baktığından dolayı 31 gün olan mart ayının son iş günü 29unu sinyal üretememiş oluyor.
var V = Sistem.GrafikVerileri;
var IND1 = Sistem.MA(10, "Simple", "Kapanis");// Buraya birinci liste indikatörü yaz
var IND2 = Sistem.MA(200, "Simple", "Kapanis");// buraya ikinci liste veya indikatörü yaz
var SonYon = "";
var Sinyal = "";
for (int i=1; i < Sistem.BarSayisi; i++)
{
if (IND1[i] > IND2[i]) Sinyal = "A";
if (IND1[i] < IND2[i]) Sinyal = "S";
if (i < V.Count - 242)
{
if (V[i].Date.Month != V[i + 241].Date.Month && V[i].Date.ToString("HH:mm:ss").CompareTo("17:59:59") > 0)
{
//if (V[i].Date.Month != V[i + 1].Date.Month && V[i + 1].Date.Month % 2 == 1)
Sinyal = "S";
Sistem.DikeyCizgiEkle(i, Color.Green, 2, 2);
***************}
}
if (Sinyal != SonYon && Sinyal != "")
{
SonYon = Sinyal;
Sistem.Yon[i] = SonYon;
}
}
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
-
Forum Rules
Yer İmleri