Merhaba Arkadaþlar
Merhaba Arkadaþlar
Son düzenleme : alfaoz; 21-10-2019 saat: 15:09.
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.
Yer Ýmleri