Denedim hiç bir şey çıkmadı. Haftaya borsa açıkken deneyim birde.
Teşekkür ederim.
Printable View
merhaba,
Robotun gönderdiği emirlerde
resimde görünen Açıklama kısmına nasıl mesaj yazdıra biliriz?
https://i.resimyukle.xyz/Vy3IaR.png
daha önceden aynı yerde EmirStop yazıyordu o değişkene değer tanımlatıp yazdırabiliyorduk.
2. bir soru
https://i.resimyukle.xyz/BQNNPd.png
var ViopHes = Sistem.ViopHesapOku();
if (ViopHes != null)
{
var BosSermaye = ViopHes.TeminatKullanilabilir;
var cekilir = ViopHes.TeminatCekilebilir;
//var opsiyonD = ViopHes.Opsiyon_Degeri; //var teminat = ViopHes.TeminatTakasbank;
Sistem.Mesaj(BosSermaye + " " + cekilir ); //+ " " + teminat );
}
TeminatKullanilabilir
TeminatCekilebilir
ile 2 tanesini okutabiliyoruz.
diğer alanları nasıl okutabiliriz? okumak için değişkenlerini nereden bulabiliriz?
doğal olarak https://i.resimyukle.xyz/SPzx0y.png kısmından ulaşılabilir değil.
hisse içinde ayrı değişkenler gerekli.
https://i.resimyukle.xyz/NacAfb.png
Sembolü derinlik penceresinde özellikler deyip açılan pencerede en altta para giriş / çıkışı istediğiniz yer piyasa kapalı olsada o ekran derinlik penceresinin üzerinde açılır ama hareket olmaz tabiki ...
SM-N9000Q cihazımdan hisse.net mobile app kullanarak gönderildi.
Merhaba,
Cevap 1;
Sistem.EmirAciklama = "Sistem1";
Sayenizde yeni bir şey daha öğrendim.
cevap 2 de yardımsever bir arkadaştan ulaştı. Sağolsun.
kullanmak isteyenler için burada da bulunsun.
PHP Code:
public List<ImkbPositionRecord> ImkbPositionList;
public double ViopTeminatCekilebilir;
public double ViopTeminatKullanilabilir;
public double ViopTeminatSurdurme;
public double ViopTeminatBaslangic;
public double ViopTeminatToplam;
public string VipGayriString;
public string VipAcikString;
public string VipTeyidString;
public List<VipProfitRecord> VipProfitList;
public Dictionary<string, string> VipCollateralDictionary;
public List<VipStatementRecord> VipStatementList;
public List<VipOrderRecord> VipGerceklesenList;
public List<VipOrderRecord> VipOrderList;
public List<VipPositionRecord> VipPositionList;
public double ImkbCariBakiye;
public double ImkbOverall;
public double ImkbLimit;
public Dictionary<string, string> ImkbRiskDictionary;
public Dictionary<string, double> ImkbStockLimitDictionary;
public Dictionary<string, double> ImkbStockSellableDictionary;
public Dictionary<string, string> ImkbSummaryDictionary;
public List<ImkbStatementRecord> ImkbStatementList;
public List<ImkbOrderRecord> ImkbOrderList;
public double ViopTeminatCagri;
arşivimi biraz kurcalayınca hazır tablo olarak döküm yapan şu kod parçasınıda buldum
PHP Code:
if ( Sistem.ZamanKontrolDakika("bakiyeoku") >= 1) // 1 dakikada 1 kez kontrol eder.
{ // ZamanKontrolDakika
Sistem.ZamanKontrolGuncelle("bakiyeoku");
var ViopHesap = Sistem.ViopHesapOku();
if (ViopHesap != null)
{ // hesap Kontrol
var Renk = Color.Black;
//[B] Pozisyonlar[/B]
var PozListP = ViopHesap.Pozisyonlar;
// Tabloya Yazdır
string Tbl_Vip_Poz = "VIOP POZISYONLAR";
var SG1 = new int[2]{170,50};
var SH1 = new int[2]{0,1};
var SB1 = new string[2]{"Sembol","Poz"};
Sistem.Tablo(Tbl_Vip_Poz, 200, 100, 260, 200, 2, 25, SG1, SH1, SB1);
Sistem.TabloTemizle(Tbl_Vip_Poz);
for (int i = 0; i < PozListP.Count; i++)
{
Renk = Color.Black;
if (PozListP[i].NetAmount > 0)
Renk = Color.Blue;
else if (PozListP[i].NetAmount < 0)
Renk = Color.Red;
Sistem.TabloYazdir(Tbl_Vip_Poz, 0, i, PozListP[i].Symbol, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_Poz, 1, i, PozListP[i].NetAmount.ToString("0"), Color.White, Renk);
}
///////////////////////
// [B]Teminat[/B]
string Tbl_Vip_Tmnt = "VIOP TEMINAT";
var SG2= new int[2]{150,80};
var SH2 = new int[2]{0,2};
var SB2 = new string[2]{"Açıklama","Değer"};
Sistem.Tablo(Tbl_Vip_Tmnt, 450, 100, 250, 200, 2, 7, SG2, SH2, SB2);
Sistem.TabloTemizle(Tbl_Vip_Tmnt);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 0, 0, "Teminat Toplamı", Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 1, 0, ViopHesap.TeminatToplam.ToString("0.00"), Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 0, 1, "Başlangıç Teminatı", Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 1, 1, ViopHesap.TeminatBaslangic.ToString("0.00"), Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 0, 2, "Sürdürme Teminatı", Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 1, 2, ViopHesap.TeminatSurdurme.ToString("0.00"), Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 0, 3, "Kullanılabilir Teminat", Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 1, 3, ViopHesap.TeminatKullanilabilir.ToString("0.00"), Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 0, 4, "Çekilebilir Teminat", Color.White, Color.Black);
Sistem.TabloYazdir(Tbl_Vip_Tmnt, 1, 4, ViopHesap.TeminatCekilebilir.ToString("0.00"), Color.White, Color.Black);
////////////////////////////////
// [B]Bekleyen Emirler[/B]
var BekleyenList = ViopHesap.BekleyenEmirler;
// Tabloya Yazdır
string Tbl_Vip_B_Emir = "VIOP BEKLEYEN";
var SG3 = new int[7]{170,45,45,45,70,45,45};
var SH3 = new int[7]{0,1,1,1,1,1,1};
var SB3 = new string[7]{"Sembol", "İşlem", "Fiyat", "Miktar", "Emir No", "Emir Tip","Fiyat Tip"};
Sistem.Tablo(Tbl_Vip_B_Emir, 200, 300, 500, 200, 7, 50, SG3, SH3, SB3);
Sistem.TabloTemizle(Tbl_Vip_B_Emir);
for (int i = 0; i < BekleyenList.Count; i++)
{
Renk = Color.Black;
if (BekleyenList[i].BuySell.Substring(0,1) == "A")
Renk = Color.Blue;
else if (BekleyenList[i].BuySell.Substring(0,1) == "S")
Renk = Color.Red;
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 0, i, BekleyenList[i].Symbol, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 1, i, BekleyenList[i].BuySell, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 2, i, BekleyenList[i].Price.ToString("0.000"), Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 3, i, BekleyenList[i].Balance.ToString("0"), Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 4, i, BekleyenList[i].OrderNo, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 5, i, BekleyenList[i].OrderType, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_B_Emir, 6, i, BekleyenList[i].PriceType, Color.White, Renk);
}
/////////////////////
// [B]Gerçekleşen Emirler[/B]
var GerceklesenList = ViopHesap.GerceklesenEmirler;
// Tabloya Yazdır
string Tbl_Vip_G_Emir = "VIOP GERCEKLESEN";
var SG4 = new int[5]{170,50,50,50,70};
var SH4 = new int[5]{0,1,1,1,2};
var SB4 = new string[5]{"Sembol", "İşlem", "Fiyat", "Miktar", "Emir No"};
Sistem.Tablo(Tbl_Vip_G_Emir, 200, 500, 450, 200, 5, 100, SG4, SH4, SB4);
Sistem.TabloTemizle(Tbl_Vip_G_Emir);
for (int i = 0; i < GerceklesenList.Count; i++)
{
if (GerceklesenList[i].BuySell.Substring(0,1) == "A")
Renk = Color.Blue;
else if (GerceklesenList[i].BuySell.Substring(0,1) == "S")
Renk = Color.Red;
Sistem.TabloYazdir(Tbl_Vip_G_Emir, 0, i, GerceklesenList[i].Symbol, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_G_Emir, 1, i, GerceklesenList[i].BuySell, Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_G_Emir, 2, i, GerceklesenList[i].Price.ToString("0.000"), Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_G_Emir, 3, i, GerceklesenList[i].Amount.ToString("0"), Color.White, Renk);
Sistem.TabloYazdir(Tbl_Vip_G_Emir, 4, i, GerceklesenList[i].OrderNo, Color.White, Renk);
}
}
else
{ if (ViopHesap == null) Sistem.SistemGetir("PortfoyLogin", "FX'USDTRY", "1") ; }
////////////
} // ZamanKontrolSaniye
Merhaba arkadaşlar, ilk defa optimizasyon deniyorum. Ama bir sorunla karşılaştım.
İdeal içinde örnek olarak bulunan; Optimizasyon_MA kodunu VIP-X30 için(1000 bar) çalıştırıyorum. (kod aşağıda)
Toplam işlem kısmında 90 yazıyor.(16-22 peryot için)
PHP Code:
// kapanış fiyatlarını oku
var Kapanis = Sistem.GrafikFiyatSec("Kapanis");
// hareketli ortalamaları hesapla
for (int KucukPeriyot = 5; KucukPeriyot < 20; KucukPeriyot++)
{
for (int BuyukPeriyot = 20; BuyukPeriyot < 60; BuyukPeriyot ++)
{
if (KucukPeriyot < BuyukPeriyot)
{
var MA1 = Sistem.MA(Kapanis, "Exp", KucukPeriyot);
var MA2 = Sistem.MA(Kapanis, "Exp", BuyukPeriyot);
Sistem.KesismeTara(MA1, MA2);
Sistem.Optimizasyon("MA", KucukPeriyot, BuyukPeriyot);
}
}
}
aşağıda ki kodu ise Exp-16-22 parametreleriyle çalıştırıyorum. Ama optimizasyondaki değerlere göre farklı çıkıyor. İşlem adedi 9 yazıyor.
Sonuçlar neden aynı değil.PHP Code:
// parametreleri al
var Yontem = Sistem.Parametreler[0];
var Periyot1 = Sistem.Parametreler[1];
var Periyot2 = Sistem.Parametreler[2];
// kapanış fiyatlarını oku
var Veriler = Sistem.GrafikFiyatSec("Kapanis");
// hareketli ortalamaları hesapla
var MA1 = Sistem.MA(Veriler, Yontem, Periyot1);
var MA2 = Sistem.MA(Veriler, Yontem, Periyot2);
// hesaplanan verileri çizgilere aktar ve açıklama ekle
Sistem.Cizgiler[0].Deger = MA1;
Sistem.Cizgiler[0].Aciklama = "MAa " + Periyot1;
Sistem.Cizgiler[1].Deger = MA2;
Sistem.Cizgiler[1].Aciklama = "MA " + Periyot2;
// strateji
Sistem.KesismeTara(MA1, MA2);