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 );
// ===============================================================================================
Yer İmleri