burada arşivde de vardı diye hatırlıyorum
veya twitterda erol mutlu bey yakın zamanda paylaşmıştı sanırım,
biraz araştırırsanız çıkar herhalde. volume profile nedir bilemiyorum ama vwap kolayca bulabilirsiniz.
Printable View
cevabınız için çok teşekkür ediyorum. forumun ayrıntılı arama özelliğiyle bulamadım, ben becerememiş de olabilirim.
şöyle bir çözüm ürettim;
info yatırım ile çalışıyorum, daha önceden aklımda kalmış, viopta metatrader ile işlem yapılıyordu. aradım sordum, hala kullanılabiliyormuş. aktif hesabımı mt5 için de tanımladılar. yine iki ayrı platform oldu ama en azından ikisiyle de işlem yapabiliyorum. tw üyeliğini yenilemeyi düşünmüyorum. mt5 ile piyasa fiyatlı işlemde ideale göre kayma daha az olduğunu söyleyebilirim ayrıca.
selamlar.
Herkese Merhaba,
bu işlerde yeniyim.
İdeal ya da İdeal Algo programını kullanarak örneğin 10 farklı indikatör ya da hazır stratejilerin ve bu indikatörlerin/stratejilerin bazılarının periyotlarını ve/veya parametrelerini değiştirerek al-sat robotu için sistem/strateji yapmak istiyorum.
Bunu yapabilir miyim? elbette kod yazmayı, kod dillleri vs bilmiyorum.
Sorunumla alakalı eğitim videosu varsa link paylaşmanızı rica ederim..
Kod:var Bars = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
var RSI = Sistem.RSI(140);
var Cum = 0.0;
var Maliyet = 0.0;
var Miktar = 0;
var TP = 1.05f; //YÜZDE 5 KAR AL
var SonYon = "";
var Pozisyon = Sistem.SayiListesi;
var OrtalamaMaliyet = Sistem.Liste(0);
var ToplamMaliyet = Sistem.Liste(0);
var MiktarList = Sistem.Liste(0);
int alisCount = 0;
for (int i = 1; i<Sistem.BarSayisi; i++)
{
Pozisyon[i] = Sistem.SayiListesi[i-1]; // robot kodunda bu listeyi okumal için sayı listesi olarak tanımlamak gerek
if (RSI[i-1] < 60 && RSI[i] >= 60 && RSI[i] > RSI[i-1] && alisCount <=20) //AL KOŞULUMUZ
{
SonYon = "A";
Sistem.Yon[i] = "A";
Miktar = 1;
MiktarList[i] = Miktar;
Cum = Cum + Miktar * C[i];
ToplamMaliyet[i] = (float)Cum;
Pozisyon[i] += Miktar;
Maliyet = (float) Cum / Pozisyon[i];
OrtalamaMaliyet[i] = (float)Maliyet ;
alisCount++;
}
else if (RSI[i-1] < 60 && RSI[i] >= 60 && RSI[i] < RSI[i-1] ) //SAT KOŞULU
{
SonYon = "F";
Sistem.Yon[i] = "F";
Miktar = 1;
MiktarList[i] = Miktar;
Cum = Cum + Miktar * C[i];
ToplamMaliyet[i] = (float)Cum;
Pozisyon[i] -= Miktar;
Maliyet = (float) Cum / Pozisyon[i];
OrtalamaMaliyet[i] = (float)Maliyet ;
alisCount--;
}
else if (RSI[i-1] > 40 && RSI[i] < 40 && SonYon != "F") // KOMPLE SAT.
{
SonYon = "F";
Sistem.Yon[i] = "F";
MiktarList[i] = 0;
Miktar = 0;
Cum = 0.0;
Maliyet = 0.0;
Pozisyon[i] = 0;
OrtalamaMaliyet[i] = 0;
ToplamMaliyet[i] = 0;
alisCount = 0;
}
else
OrtalamaMaliyet[i] = OrtalamaMaliyet[i-1];
}
Sistem.Cizgiler[0].Deger = Pozisyon;
Sistem.Cizgiler[0].Aciklama = "Pozisyon";
Sistem.Cizgiler[1].Deger = OrtalamaMaliyet;
Sistem.Cizgiler[1].Aciklama = "Ortalama Maliyet";
Sistem.Cizgiler[2].Deger = MiktarList;
Sistem.Cizgiler[2].Aciklama = "Miktar";
Sistem.Cizgiler[3].Deger = ToplamMaliyet;
Sistem.Cizgiler[3].Aciklama = "Cum";
Sistem.Cizgiler[4].Deger = RSI;
Sistem.Cizgiler[4].Aciklama = "RSI";
else if (RSI[i-1] > 60 && RSI[i] <= 60 && RSI[i] < RSI[i-1] ) //SAT KOŞULU
abi teşekkür ederim cevabınız için.
Al koşulu : rsı > 60 iken stok :max 40 olur
her rsı >rsi-1 de 1 lot alsın
her rsı <rsi-1 de 1 lot satsın. ( bu kısımda 1 lot satmıyor abi - direk flat şartına geçiyor.)
rsı < 40 ise flat olsun (hepsi flat.a geçer)
şeklinde yapmaya çalıştık.
Kod:var V = Sistem.GrafikVerileri;
var HHV = Sistem.HHV(6, "Yuksek");
var LLV = Sistem.LLV(6, "Dusuk");
var H1st = Sistem.Liste(0);
var L1st = Sistem.Liste(0);
for (int i = 1 ; i < Sistem.BarSayisi; i++)
{
if (V[i].Date.Hour == 09 && V[i].Date.Minute == 10)
{
H1st[i] = HHV[i];
L1st[i] = LLV[i];
}
else
{
H1st[i] = H1st[i-1];
L1st[i] = L1st[i-1];
}
}
var atr = Sistem.AverageTrueRange(13);
var _A1 = Sistem.Liste(0);
var _A2 = Sistem.Liste(0);
var _A3 = Sistem.Liste(0);
var _F1 = Sistem.Liste(0);
var _F2 = Sistem.Liste(0);
var _F3 = Sistem.Liste(0);
var A1 = Sistem.Liste(0); var A2 = Sistem.Liste(0); var A3 = Sistem.Liste(0);
var F1 = Sistem.Liste(0); var F2 = Sistem.Liste(0); var F3 = Sistem.Liste(0);
for (int i = 1 ; i < Sistem.BarSayisi; i++)
{
_A1[i] = (H1st[i]+2*atr[i]*0.8f)/0.025f+0.50f;
_A2[i] = (H1st[i]+atr[i]*0.8f)/0.025f+0.50f;
_A3[i] = (H1st[i]-2*atr[i]*0.8f)/0.025f+0.50f;
_F1[i] = (L1st[i]+2*atr[i]*0.8f)/0.025f+0.50f;
_F2[i] = (L1st[i]-atr[i]*0.8f)/0.025f+0.50f;
_F3[i] = (L1st[i]-2*atr[i]*0.8f)/0.025f+0.50f;
A1[i] = _A1[i]*0.025f;
A2[i] = _A2[i]*0.025f;
A3[i] = _A3[i]*0.025f;
F1[i] = _F1[i]*0.025f;
F2[i] = _F2[i]*0.025f;
F3[i] = _F3[i]*0.025f;
}
Sistem.Cizgiler[0].Deger = A1 ;
Sistem.Cizgiler[1].Deger = A2 ;
Sistem.Cizgiler[2].Deger = A3 ;
Sistem.Cizgiler[3].Deger = F1 ;
Sistem.Cizgiler[4].Deger = F2 ;
Sistem.Cizgiler[5].Deger = F3 ;
Buyrun VWAP ve Pivot
Kod:var gV = Sistem.GrafikVerileriniOku( Sistem.Sembol, "G");
var V = Sistem.GrafikVerileri;
var O = Sistem.GrafikFiyatSec("Acilis");
var H = Sistem.GrafikFiyatSec("Yuksek");
var L = Sistem.GrafikFiyatSec("Dusuk");
var C = Sistem.GrafikFiyatSec("Kapanis");
var TipikFiyat = Sistem.GrafikFiyatSec("Tipik" );
var Lot = Sistem.GrafikFiyatSec("Lot");
// ============================= vWAP Periyot ========================================================
// int Len = Sistem.Parametreler[0].Length ;
// Len = Len - 13;
// String lv_VWAP_Periyot = Sistem.Parametreler[0].Substring(13, Len);
// var vwV_tmp = Sistem.GrafikVerileriniOku(Sistem.Sembol, lv_VWAP_Periyot );
// var vwV = Sistem.DonemCevir(V, vwV_tmp , vwV_tmp); // DonemCevir(Veriler, UstDonemVerileri, UstDonemCevrilecekData)
// ============================= vWAP =================================================================
var Lot_Fiyat = Sistem.Liste(0);
var Sum_Lot_Fiyat = Sistem.Liste(0);
var VWAP = Sistem.Liste(0);
var Sum_Lot = Sistem.Liste(0);
var R1 = Sistem.Liste(V.Count, 0.0f);
var R2 = Sistem.Liste(V.Count, 0.0f);
// var R3 = Sistem.Liste(V.Count, 0);
var S1 = Sistem.Liste(V.Count, 0.0f);
var S2 = Sistem.Liste(V.Count, 0.0f);
// var S3 = Sistem.Liste(V.Count, 0);
var sq = Sistem.Liste(V.Count, 0.0f);
var sqr = Sistem.Liste(V.Count, 0.0f);
var vwG = Sistem.Liste(gV.Count, 0.0f);
for(int i= 5; i < Sistem.BarSayisi; i++)
{
// Her gün için yeniden hesaplasın
if ( V[i].Date.Day != V[i-1].Date.Day )
{
Lot_Fiyat[i] = Lot[i] * TipikFiyat[i];
Sum_Lot_Fiyat[i] = Lot_Fiyat[i] ;
Sum_Lot[i] = Lot[i];
VWAP[i] = ( Sum_Lot_Fiyat[i] / Sum_Lot[i] );
sq[i] = Lot[i] * ( TipikFiyat[i] ) * ( TipikFiyat[i] - VWAP[i] );
}
else
{
Lot_Fiyat[i] = Lot[i] * TipikFiyat[i];
Sum_Lot_Fiyat[i] = Sum_Lot_Fiyat[i-1] + Lot_Fiyat[i] ;
Sum_Lot[i] = Sum_Lot[i-1] + Lot[i];
VWAP[i] = ( Sum_Lot_Fiyat[i] / Sum_Lot[i] );
sq[i] = sq[i-1] + Lot[i] * ( TipikFiyat[i] - VWAP[i-1] ) * ( TipikFiyat[i] - VWAP[i] );
}
// https://www.tradingview.com/script/EaBACrDi/
// fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
// fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
// t = time(reso)
// debut = na(t[1]) or t > t[1]
// addsource = hlc3 * volume
// addvol = volume
// addsource := debut ? addsource : addsource + addsource[1]
// addvol := debut ? addvol : addvol + addvol[1]
// VWAP = addsource / addvol
// sn = 0.0
// sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
// sd = sqrt(sn / addvol)
// Fibp2 = VWAP + fib2 * sd
// Fibp1 = VWAP + fib1 * sd
// Fibm1 = VWAP - fib1 * sd
// Fibm2 = VWAP - fib2 * sd
sqr[i] = (float)Math.Sqrt( sq[i] / Sum_Lot[i] );
R2[i] = VWAP[i] + 2.618f * sqr[i];
R1[i] = VWAP[i] + 1.618f * sqr[i] ;
S1[i] = VWAP[i] - 1.618f * sqr[i];
S2[i] = VWAP[i] - 2.618f * sqr[i] ;
Sistem.Debug( Lot[i].ToString() );
}
// ===============================================================================================
var gHigh = Sistem.Liste(V.Count, 0);
var gLow = Sistem.Liste(V.Count, 0);
var gC = Sistem.Liste(V.Count, 0);
var gO = Sistem.Liste(V.Count, 0);
var pivot = Sistem.Liste(V.Count, 0);
var buy_line = Sistem.Liste(V.Count, 0);
var sell_line = Sistem.Liste(V.Count, 0);
var pR5 = Sistem.Liste(V.Count, 0);
var pR4 = Sistem.Liste(V.Count, 0);
var pR3 = Sistem.Liste(V.Count, 0);
var pR2 = Sistem.Liste(V.Count, 0);
var pR1 = Sistem.Liste(V.Count, 0);
var pPP = Sistem.Liste(V.Count, 0);
var pS1 = Sistem.Liste(V.Count, 0);
var pS2 = Sistem.Liste(V.Count, 0);
var pS3 = Sistem.Liste(V.Count, 0);
var pS4 = Sistem.Liste(V.Count, 0);
var pS5 = Sistem.Liste(V.Count, 0);
var uC = Sistem.GrafikFiyatOku(gV, "Kapanis") ;
var uH = Sistem.GrafikFiyatOku(gV, "Yuksek") ;
var uL = Sistem.GrafikFiyatOku(gV, "Dusuk") ;
var uO = Sistem.GrafikFiyatOku(gV, "Acilis") ;
var gP3_tmp = Sistem.Liste(gV.Count, 0);
gHigh = Sistem.DonemCevir(V, gV, Sistem.Ref(uH, -1 ) );
gLow = Sistem.DonemCevir(V, gV, Sistem.Ref(uL, -1 ) );
gC = Sistem.DonemCevir(V, gV, Sistem.Ref(uC, -1 ) );
gO = Sistem.DonemCevir(V, gV, Sistem.Ref(uO, -1 ) );
for (int i = 5; i < Sistem.BarSayisi ; i++)
{
// Traditional Pivot Noktaları
if ( V[i].Date.DayOfYear == V[V.Count-1].Date.DayOfYear )
{
pPP[i] = (gHigh[i] + gLow[i] + gC[i]) / 3.0f;
pR1[i] = pPP[i] * 2 - gLow[i] ;
pS1[i] = pPP[i] * 2 - gHigh[i];
pR2[i] = pPP[i] + (gHigh[i] - gLow[i] );
pS2[i] = pPP[i] - (gHigh[i] - gLow[i] );
pR3[i] = pPP[i] * 2 + (gHigh[i] - 2 * gLow[i] );
pS3[i] = pPP[i] * 2 - (2 * gHigh[i] - gLow[i] );
pR4[i] = pPP[i] * 3 + (gHigh[i] - 3 * gLow[i] );
pS4[i] = pPP[i] * 3 - (3 * gHigh[i] - gLow[i] );
pR5[i] = pPP[i] * 4 + (gHigh[i] - 4 * gLow[i] );
pS5[i] = pPP[i] * 4 - (4 * gHigh[i] - gLow[i] ) ;
}
}
// ===============================================================================================
Sistem.Cizgiler[0].Deger = VWAP;
Sistem.Cizgiler[0].Aciklama = "VWAP";
Sistem.Cizgiler[1].Deger = Lot_Fiyat;
Sistem.Cizgiler[1].Aciklama = "Lot x Fiyat";
Sistem.Cizgiler[4].Deger = R1;
Sistem.Cizgiler[4].Aciklama = "R1";
Sistem.Cizgiler[5].Deger = R2;
Sistem.Cizgiler[5].Aciklama = "R2";
Sistem.Cizgiler[6].Deger = S1;
Sistem.Cizgiler[6].Aciklama = "S1";
Sistem.Cizgiler[7].Deger = S2;
Sistem.Cizgiler[7].Aciklama = "S2";
Sistem.Cizgiler[11].Deger = pR1;
Sistem.Cizgiler[11].Aciklama = "R1";
Sistem.Cizgiler[12].Deger = pR2;
Sistem.Cizgiler[12].Aciklama = "R2";
Sistem.Cizgiler[13].Deger = pR3;
Sistem.Cizgiler[13].Aciklama = "R3";
Sistem.Cizgiler[14].Deger = pR4;
Sistem.Cizgiler[14].Aciklama = "R4";
Sistem.Cizgiler[15].Deger = pR5;
Sistem.Cizgiler[15].Aciklama = "R5";
Sistem.Cizgiler[16].Deger = pS1;
Sistem.Cizgiler[16].Aciklama = "S1";
Sistem.Cizgiler[17].Deger = pS2;
Sistem.Cizgiler[17].Aciklama = "S2";
Sistem.Cizgiler[18].Deger = pS3;
Sistem.Cizgiler[18].Aciklama = "S3";
Sistem.Cizgiler[19].Deger = pS4;
Sistem.Cizgiler[19].Aciklama = "S4";
Sistem.Cizgiler[20].Deger = pS5;
Sistem.Cizgiler[20].Aciklama = "S5";
Sistem.Cizgiler[21].Deger = pPP;
Sistem.Cizgiler[21].Aciklama = "PP";
Sistem.Cizgiler[22].Deger = Lot;
Sistem.Cizgiler[22].Aciklama = "Lot";
// Sistem.DolguEkle(4, 5, Color.FromArgb(80, 200, 200, 200), Color.FromArgb(80, 200, 200, 200));
// Sistem.DolguEkle(6, 7, Color.FromArgb(80, 200, 200, 200), Color.FromArgb(80, 200, 200, 200));
//==================================================================================================
//Pivot text
Sistem.YaziEkle("R1", 1, Sistem.BarSayisi , pR1[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("R2", 1, Sistem.BarSayisi , pR2[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("R3", 1, Sistem.BarSayisi , pR3[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("R4", 1, Sistem.BarSayisi , pR4[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("R5", 1, Sistem.BarSayisi , pR5[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("PP", 1, Sistem.BarSayisi , pPP[Sistem.BarSayisi -1], Color.Yellow,"Tahoma", 8 );
Sistem.YaziEkle("S1", 1, Sistem.BarSayisi , pS1[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("S2", 1, Sistem.BarSayisi , pS2[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("S3", 1, Sistem.BarSayisi , pS3[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("S4", 1, Sistem.BarSayisi , pS4[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
Sistem.YaziEkle("S5", 1, Sistem.BarSayisi , pS5[Sistem.BarSayisi -1], Color.White,"Tahoma", 8 );
// ===============================================================================================