Selam arkadaslar:
5 veya daha uzun yillik grafikte 50 sma nin 2 tepe noktasina ideal de otomatik cizgiyi cizebilirmiyiz? Otomatik cizdermek cok fantazi mi olur?
Sagolun...
|
|
Teşekkür ederim cevap için. Denedim ama olmadı. 2 tane şart belirtmem gerekiyo sanırım.
if (DIP[i] > DIM[i] && C[i] > EH[i]) Sinyal = "A"; alım yönünde iken c küçük eh olursa flat olsun, satım yönünde iken c büyük eh olursa flat olsun. ama virgüller parantezler bi türlü oturtamadım.
Son düzenleme : vbhamza; 03-07-2019 saat: 20:20. Sebep: düzeltme
Selam arkadaslar:
5 veya daha uzun yillik grafikte 50 sma nin 2 tepe noktasina ideal de otomatik cizgiyi cizebilirmiyiz? Otomatik cizdermek cok fantazi mi olur?
Sagolun...
Merhabalar, kodlamayla ilgili bir sorum olacak, tomayla basit bir şekilde al sat yazdırdım,C[i-1]>TOMA[i-1] gibi ,bazı yerlerinde ihlaller oluyor bunu nasıl düzeltebilirim acaba?
herkese selamlar,
daha önce sorulup cevaplanmadıysa sorum şu:
matriks/metastock dilinde yazılmış vwap (hacim ağırlıklı ortalama fiyat) formulünü ideal'e nasıl çevirebiliriz?
basit formül (serinin başından itibaren vwap değerini hesaplıyor)
pv:=c*v;
cumtp:=Cum(pv);
x:=Cum(v);
y:=cumtp/x;
Cum(1);y
iki tarih arası vwap hesaplayan formül:
{period input}
sd:=Input("starting day of month",1,31,1);
sm:=Input("starting month",1,12,1);
sy:=Input("starting year",1980,2100,2019);
sh:=Input("hour", 1,24,9);
se:=Input("minute",0,60,30);
start:= sd=DayOfMonth() AND sm=Month() AND sy=Year() AND sh=Hour() AND se=Minute();
{mid price}
pv:=W*V;
{vwap calculation}
d:= If(Cum(V)-ValueWhen(1,start,Cum(V))=0,1,Cum(V)-ValueWhen(1,start,Cum(V)));
vwap:=If(BarsSince(start),(Cum(pv)-ValueWhen(1,start,Cum(pv)))/d,W);
vwap
teşekkürler
wvap indikatörü
int n = 5;// kaç barlık wvap
var Tipik = Sistem.GrafikFiyatSec("Tipik");
var K = Sistem.GrafikFiyatSec("Kapanis");
var V = Sistem.GrafikFiyatSec("Hacim");
var SumV = Sistem.Sum(V,n); //cumulative V
var ma = Sistem.MA(1, "Weighted", "Kapanis");
var x = Sistem.Liste(0);
var y = Sistem.Liste(0);
var IND = Sistem.Liste(0);
for (int i=1; i < Sistem.BarSayisi; i++)
x[i] = Tipik[i] * V[i] ;
var SumX = Sistem.Sum(x,n); //Cumulative(Tipik * Volume)
for (int i=1; i < Sistem.BarSayisi; i++)
IND[i] = SumX[i] / SumV[i] ;
var x1 = Sistem.Liste(V.Count, 0);
for (int i = 1; i < V.Count; i++)
x1[i] = ma[i] > IND[i] ? 1 : ma[i] < IND[i] ? -1 : x1[i-1] ;
// sistem
var SonYon = "";
for (int i = 1; i<V.Count; i++)
{
if ( x1[i] == 1 && SonYon != "A" ) // AL
{
Sistem.Yon[i] = "A";
SonYon = Sistem.Yon[i];
}
else if ( x1[i] == -1 && SonYon != "S" ) // SAT
{
Sistem.Yon[i] = "S";
SonYon = Sistem.Yon[i];
}
else if ( x1[i] == 0 && (SonYon == "A" || SonYon == "S") ) // FLAT
{
Sistem.Yon[i] = "F";
SonYon = Sistem.Yon[i];
}
}
Sistem.GetiriHesapla("01.01.2015", 0.035);
Sistem.Cizgiler[0].Deger = IND;
Sistem.Cizgiler[1].Deger = V;
Sistem.Cizgiler[2].Deger = ma;
Sistem.Cizgiler[3].Deger = Sistem.GetiriKZ;
Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
Sokrates twit @erhanacikgoz1
en basit sorumuza bile dönüş olmuyor, forumda kimseye bişey mi yaptık acaba diye eski iletilerime baktım bişeyde göremedim.
Her yerde sistem aynı birinden bişey almıyosan ona verecek pek bişeyinde yoktur, olsada olur olmasa olur. Hepimiz insanız ama.
Forum yönetilerinden ricam bu hesabı disable etsinler, kendim yapıcaktım ama bulamadım.
sorunuza bir cevap gelmediyse sorunuz tam anlaşılmadığından olabilir
formulu paylaşın grafiği paylaşın
sorunu veya yapmak istediğinizi net paylaşın net söyleyin
alış şartı şu olsun
satış şartı şu olsun
alış ta iken flat şartı şu olsun
satış ta iken flat şartı şu olsun gibi
|
|
Tam anlamamakla birlikte aşağıdaki gibi düzenledim.
Kod:var V = Sistem.GrafikVerileri ; var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ; var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ; var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ; var O = Sistem.GrafikFiyatOku(V,"Acilis") ; var DIP = Sistem.DirectionalIndicatorPlus(740); var DIM = Sistem.DirectionalIndicatorMinus(740); var EH = Sistem.TOMA(100,2.1) ; var SonYon = ""; var Sinyal = ""; double SonFiyat = 0.0; for (int i = 100; i < V.Count; i++) { // Strateji if (DIP[i] > DIM[i] && C[i] > EH[i]) Sinyal = "A"; if (DIP[i] < DIM[i] && C[i] < EH[i]) Sinyal = "S"; if (SonYon=="A" && DIP[i] > DIM[i] && C[i] < EH[i]) Sinyal = "F"; /// al yönünde C<EH durumunda flat if (SonYon=="S" && DIP[i] < DIM[i] && C[i] > EH[i]) Sinyal = "F"; /// sat yönünde C>EH durumunda flat // Yön Kalıbı if (Sinyal == "A" && SonYon != "A" ) //&& FiltreUP) { Sistem.Yon[i] = "A"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; } if (Sinyal == "S" && SonYon != "S" )//&& FiltreDN) { Sistem.Yon[i] = "S"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; } if (Sinyal == "F" && SonYon != "F") { Sistem.Yon[i] = "F"; SonYon = Sistem.Yon[i]; SonFiyat = V[i].Close; } }
Yer İmleri