Asagidaki kodu kendi sistemime girdigim zaman cizgi yerine 2. panelde dikey barlar cikti aynen hacimdeki gibi:
PHP Code:
Sistem.Cizgiler[3].Deger = Sistem.GetiriKZ;
Sistem.Cizgiler[3].Stil = 5;
Sistem.Cizgiler[3].Panel = 2;
Printable View
merhabalar, matrikste kullandığım bu kodu ideale nasıl çevirebilirim.
ST:=(HHV(H,2)+LLV(L,2))/2;
TL:=(HHV(H,2)+LLV(L,2))/2;
DL:=Ref(C, 2);
1Span:=Ref((ST+TL)/2,-1);
2Span:=Ref((HHV(H,2)+LLV(L,2))/2,-1);
ST;
TL;
DL;
1Span;
2Span
@Bear_Bull
https://www.hisse.net/topluluk/showt...97#post3603197
https://resimyukle.xyz/i/Vy3IaR
Peki Hocam bu açıklamaya bir önceki alış veya satış rakamını pozisyon kontrol den fiyatı getirip son fiyat farkını alarak bir nevi k/z yi bu Açıklamada tutabilirmiyiz?
Netkit
açıklamada tutabilsekte pek kıymeti olmaz
o bölüm sadece emir gönderildiğinde görünüyor akşam kayboluyor.
onun yerine sistem içine Parametlerden yazdırılabilir veya
sistem pozisyon görünümünde olan REZERV kısmına işlem fiyatları yazdırılabilir.
1 önceki işlem ile son işlem arasındaki fark ise K/Z formülü ile hesaplatılabilir.
Merhaba hisse.net ailesi,
2-3 çeşit parametreye göre çalışan bir indikatör yazdım diyelim.
Bunu Sistem.YeniIndi(veriler,periyot,yuzde) vs şeklinde çağırabilir miyim?
Yoksa SistemGetir fonksiyonu içinde parametre değeri olarak mı yazmalıyım.
Yardımlarınız için şimdiden teşekkürler.
DL repaint yapar. Ona bakarak işlem açmayınız veya yardımcı olarak kullanmayınız. Backtest hiç yapmayınız.
HUAWEI G7-L01 cihazımdan hisse.net mobile app kullanarak gönderildi.
[IMG]https://i.hizliresim.com/zGqP89.png[/IMG]
Bu resimdeki hatayı neden alıyorum. Düzeltmek için ne yapmam gerekiyor.
Ayni sorunla zaman zaman ben de karsilasiyorum. Nedeni ideal ilk acildiginda Sistem dosyalarinin toptan yuklemeyip programin acilisini hizlandirmak icin arka planda azar azar yuklenmesi. Bileske Sistem penceresinde kaydetdiginiz sistem dosyasi halen yuklenmedigi icin bu hatayi aliyorsunuz.
Kayitli sistem sayiniza bagli olarak tahminen 1-3 dk arasi bekler ve tekrar acarsaniz yukardaki pencere sorunsuz calisacaktir.
Sistem adinin basina "_" veya "A" harfi ekler ve oyle kaydederseniz ilk yuklenen dosyalardan olacagi icin bu sure kisalacak hatta sifirlanacaktir.
Bileske sistem penceresindeki kayitli sistem, ayni zamanda ideal ilk acildiginda ekrandaki grafiklerin herhangi birinde de varsa alfabetik siralamadan bagimsiz oncelikli yukleniyor. Dolasiyla ideali acar acmaz bu pencere de sorunsuz calisacaktir.
"C:\iDeal" altindaki "Config" dizininin duzenli yedeklenmesini oneririm. Bileske sistem penceresi bozulup hic acilmadigi durumla karsilabilirsiniz. Yedek "Config" dizini sorunu giderecektir.
Selam ;
Sistem.YuzeyselListeGetir("IMKBH'");
bu satırdaki "IMKBH" yi kendi listem ile değiştirebilirmiyim veya referans yoluna nasıl erişebilirim?
Arkadaşlar Viop 30 Hisselerinin tümünün 1 dk lık tarihsel/geçmiş verileri (mümkün olduğu kadar çok geçmiş veri)lazım.
Yardımcı olabilecek var sa mail adresim serifkocdemir@gmail.com
Herkese selam, kod konusunda tecrübesi yüksek olan arkadaşlardan aşağıda anlattığım konuda yardımcı olmalarını talep ediyorum.
Konu:
Günlükte işlemlerimi genelde manuel olarak yapan birisiyim, bazen de dışarda işim varsa otomatiğe bağlıyorum.
ve dağılım olsun diye 3-4 adet vadeli payda, viopta ve hisse de işlemler yapıyorum. Ama bazen piyasa öyle hızlanıyor ki tüm hisselere sat vermek-al vermek veya anında stop olmak konusu istediğim hızlarda olamıyorum. ben de bu konuda şöyle bir fikir geliştirmeye çalıştım.
tek bir robottan portföy penceresini yönetmeye dayalı bir işlem aslında. Elimdeki portföy penceresinde bulunan hisse veya vadelilerdeki senet adları ve senet değerlerinin alış veya satış emir fiyatlarını çekerek bunlardan hangisi %1(değişken olabilir) zarar yaptıysa stop (izleyen stop değil) işlemi uygulansın. Ancak bunlardan Elimde uzun vadeli olarak tuttuğum hisseleri hariç olarak yapmasını istiyorum.
Yani belirlediğim hisselerde veya vadelide işlem yapma diğerlerinde %1 zarar gördün mü flata geç şeklinde olacak.
bu aslında tüm kullanıcılar için kullanışlı bir kod olacak diye düşünüyorum. Bazen kol kesmek ky için çok zor oluyor ve elindeki tüm birikimi yitiriyor yada tekrar aynı fiyata gelmesi için çok uzun süre bekliyor. bu kodla en azından kendisini belli bir zararla sınırlamış olur ve sepette tekrar yumurta alacak nakiti olur diye düşünüyorum.
Böyle bir kod yapılabilir mi bilmiyorum ama yapılabilirse herkesin işine yarayacaktır.
Bu fikre şu da olsa iyi olurdu diyebileceğiniz veya ekleyebileceğiniz değer var ise tüm ky dostları için iyi olur düşüncesindeyim.
Yardımcı olabilecek arkadaşlara şimdiden teşekkürler.
Merhaba Arkadaşlar
Kullanmak istediğim bir kodum var. Ancak istediğim gibi çalışmıyor. Bir önceki barın düşüğünü geçince satan yükseğini geçince alan bir sistem. Ancak aynı bar içinde bir işlem yapınca ikinci bir işlem yapmıyor. Örneğin bir önceki barın yükseğini geçince alıyor ama aynı bar içinde geri gelip bir önceki barın düşüğünü geçince satmıyor. Aynı barda birden fazla sinyal ürettiğinde her sinyalde işlem yapsın istiyorum. Kod şu şekilde;
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var SonYon = "";
for (int i=1; i < Sistem.BarSayisi; i++)
{
if (H[i] > H[i-1] && SonYon != "A" )
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
if (L[i] < L[i-1] && SonYon != "S" )
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
}
Aslında bunu C[i] ile yapmam lazım ama ama örneğin H[i-1] üzerinde alıyor H[i-1] eşit ve aşağıda olunca hemen satıyor bu sebeple sürekli al sat yapıyor. C[i] nin H[i-1] ile L[i-1] arasında işlem yapmasını nasıl engellerim?
Anladigim kadariyla asagidaki kod isinizi gorebilir, bir deneyiniz.
Robotunuz canli barda islem yapacak sekilde kurgulanmali. Yaklasiminiz 60 dk altinda asiri islem yapar gibi duruyor. Sistemi geriye donuk test edip getirisini kontrol etmenizi ve Sanal modda test etmedikce gercek islem yapmamanizi tavsiye ederim.PHP Code:
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var SonYon = "";
for (int i=1; i < Sistem.BarSayisi; i++)
{
if (H[i] > H[i-1] && SonYon != "A" )
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
if (H[i] > H[i-1] && C[i]<L[i-1] && SonYon == "A" )
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
if (L[i] < L[i-1] && SonYon != "S" )
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
if (L[i] < L[i-1] && C[i] > H[i-1] && SonYon == "S" )
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
Emeğinize sağlık hocam. 1 dklıkta denedim ancak (C) ile işlem yaptığımda ki sıkıntıyı yine yaşıyorum. Şöyleki bir önceki bar değeri yüksek 7.30 düşük 7.20 mesela. Aldayken aynı bar içinde 7.20 alta geçince satıyor sıkıntı yok. Yine aynı barda 7.30 yukarı geçince alıyor yine sıkıntı yok. Ama yine aynı barda geri 7.30 olunca satıyor 7.31 olunca alıyor .7.30 olunca satıyor bu şekilde o bar kapanana kadar bir önceki barın en yükseğinden (7.30) kopmadıkça alıyor satıyor. İşlemi (C) ile yapmam lazım kesinlikle bence de ama (C) ile işlem yaptığımda geri 7.30 a gelse de 7.20 aşağı geçilmedikçe satmamasını engelleyemiyoruz yine malesef.
Asagidaki kod canli bardaki L ve H nin degisimlerine bakarak her bar icin ikisi arasinda degisimi buyuk olani sectiriyor ve bulunan deger ile onceki barin L/H degerleriyle karsilastirip sinyal uretiyor. Ayni bar icerisinde hem H artar hem L duserse hangisini degisimi daha buyukse o seciliyor. Siradisi fiyat hareketlerindeki davranisini incelemenizi oneririm.
PHP Code:
var C = Sistem.GrafikFiyatSec("Kapanis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var SonYon = "";
var YF=Sistem.Liste(0);
var DF=Sistem.Liste(0);
var F=Sistem.Liste(0);
for (int i=1; i < Sistem.BarSayisi ; i++)
{
YF[i]=H[i]-H[i-1];
DF[i]=L[i-1]-L[i];
if (DF[i]>YF[i])
F[i]=L[i];
else F[i]=H[i];
}
for (int i=1; i < Sistem.BarSayisi; i++)
{
if (F[i] > H[i-1] && SonYon != "A" )
{
Sistem.Yon[i] = "A";
SonYon = "A";
}
if (F[i] < L[i-1] && SonYon != "S" )
{
Sistem.Yon[i] = "S";
SonYon = "S";
}
}
Hissede robot kurdum. Porföydeki kendi bakiyem ile alacagım lot miktarımı uygun bir şekilde ayarlayarak robotun içine yazdım. 100 tl lik porföye 90 tl lik lotu robota yazdım.
Robottan sinyal gelince bakiye yetersiz diye emri göndermiyor. Bakiye yeterli halbuki. Sorunun sebebi robot piyasa fiyatlı emir gönderince aracım kurum maliyeti tavan fşyattan hesapladığından dolayı emir bakiye yetersiz uyarısı veriyormuş .
SM-A105F cihazımdan hisse.net mobile app kullanarak gönderildi.
indikatör şeklinde test ettiğimde fiyatın 10 kademe üstünü çizdi.. emir tipi ve fiyatta ilgili değişiklikle işinizi görür diye düşünüyorum..
PHP Code:
var y = Sistem.YuzeyselVeri; //indikatör sayfadan sembolü otomatik çekiyor, diğer durumda bu satırı iptal edip alttaki satırı kullanmalısın
//var y = Sistem.YuzeyselVeriOku(Sembol);
var adim = y.PriceStep; //fiyat adımını öğrenelim
var fiyat = y.LastPrice+10*adim; //son fiyat+10 kademe
Yukarıdaki kademeden gönderince piyasa fiyatlı emir gider diye bir bilgi bende mevcut değil, sadece siz emri ne kadar üst kademeden verirseniz verin alabileceği en iyi fiyattan alır. Eğer dediğiniz gibiyse benim cahilliğim, kusura bakmayın.. Benim bildiğim piyasa fiyatı tavan veya tabandır, yani emre göre satıcı veya alıcı varsa fiyata bakmaksızın al veya sat demektir. Mantık olarak, mesela 3 kademe üstten emri gönderdiğin zamansa yalnızca o kademeye kadar alır. Ama siz çok kesin yazdığınız ve ben durumu kodda test etmediğim için kesin konuşmuyorum...
Kodun satım kısmında aynı fiyat değişkenini kullanmayacaksınız tabii ki; piyasadan satış yapabilirsiniz - satışta yetersiz bakiye hatası vermez - ya da ilkinde yaptığımın tersine fiyattan 3-5 kademe eksilten 2. bir değişken tanımlayacaksınız..
Geldik, gidiyoruz..
Sayın sonli teşekür ederim. Benim demek istedigimde aynen sizin anlattıgınız gibi, benim piyasa fiyatından kasteddiğimde kademedeki en iyi alış satış rakamıdır.
Alışta üst kademeye emir gönderme , satışta ise piyasa fiyatı emir gönderme işimi fazlasıyla çözecektir. Diğer düşündügümde aracı kurumdan 0.50 oranında gün içi alım limiti tanımlatmak olup lotları yine porftöye göre girmek şeklinde çözerim diye düşünüyorum.
/////// limitli emir örnek. /// kendi robotunuza uyarlamanız gerekir.
var Miktar = 1;
var Islem = ""; float isfiyat = 0;
var adim = Sistem.YuzeyselVeriOku(EmirSembol).PriceStep;
var kademe = adim * 2 : /// 2 kademe alta üste fiyat hazırla.
if (SonYon == "A") {Islem = "ALIS"; isfiyat = Sistem.SatisFiyat(EmirSembol) + kademe; }
if (SonYon == "S") {Islem = "SATIS"; isfiyat = Sistem.AlisFiyat(EmirSembol) - kademe; }
Sistem.EmirSembol = EmirSembol;
Sistem.EmirIslem = Islem;
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Limitli";
Sistem.EmirFiyati = isfiyat ;
Sistem.EmirGonder();
Aynen banada lazim..SM-G960F cihazımdan hisse.net mobile app kullanarak gönderildi.
Bear bull hocam bunu formüle edebilir miyiz lütfen
Yeni özellik gelmiş. KEP2 penceresi.
Tümünü iptal et tuşunun işlevini çözebilen iptal işini çözebilir sanırım.
https://www.youtube.com/watch?v=2FDkJuRb1QE
Bunu daha önce sormuştunuz, ama alış şartı olmadığından son 100 bar için indikatör şeklinde yazmıştım.. Çalışmıyor mu
https://www.hisse.net/topluluk/showthread.php?p=3516466
Geldik, gidiyoruz..
https://resmim.net/f/cEVDUJ.png
yeni kep güzel olmuş pek beğendim
boş kademelere alış veya satış emri girebilmek süper olmuş
sezai bey ve tiberius beyin emeklerine sağlık