20.03.2022
0
4
50
100

On Balance Volume, fiyatlardaki değişimin yönüyle işlem hacmini ilişkilendiren bir göstergedir.

Basit bir şekilde senedin kapanışının bir önceki kapanışın üzerinde olmasıyla o gün yaratılan işlem hacmi

pozitif olarak işleme dahil edilirken, kapanışın bir önceki kapanışın altında kaldığı günlerde hacim

negatif olarak hesaba katılmaktadır.


Hesaplanması ise aşağıdaki şekildedir :


Bugünkü kapanış bir önceki günün kapanışından büyükse ;

OBV = Bir önceki günkü OBV + Bugünkü işlem hacmi


Bugünkü kapanış bir önceki günün kapanışından küçükse ;

OBV = Bir önceki günkü OBV - Bugünkü işlem hacmi


Bugünkü kapanış bir önceki günün kapanışına eşitse ;

OBV = Bir önceki günkü OBV


Genel kanı, OBV deki değişimlerin fiyatlardaki değişimlerden önce olduğu şeklindedir. Bunun ardında

yatan varsayım ise diğer volume index göstergelerinde olduğu gibi fiyatlardaki salınımların ve hacmin

azaldığı dönemlerde bilinçli yatırımcının alıma geçmesi ile OBV nin yükselmeye başlamasıdır. Fiyatların

yükselişi ile senede ilgisi artan küçük yatırımcınında gelmesiyle OBV deki artış hızlanacaktır.

Fiyatların aşırı yükselerek artışın yavaşladığı bölgelerde ise yine ilk satıma geçerek OBV nin düşmesine

sebep olanda yine bilinçli yatırımcıdır. OBV bu döngüyü yakalamak amacındadır.


OBV nin fiyatlarla uyum içinde olması beklenir. Yani OBV deki artışı fiyatlardaki artışın, düşüşü de

fiyatlardaki düşüşün izlemesi gerekir. Gösterge ile fiyatlar arasındaki uyumsuzluklar trendin kısa bir

süre sonra gösterge yönünde değişeceği şeklinde yorumlanır.


Bir diğer uyumsuzluksa fiyatlardaki yükselişe OBV nin yeni tepelerle düşüşe de yeni diplerle eşlik

edememesidir. Çünkü yükselen bir piyasada OBV daki yeni oluşan dip ve tepelerin bir önceki dip ve

tepelerden daha yüksekte oluşması beklenirken, alçalan bir piyasada da OBV daki dip ve tepelerin bir

önceki dip ve tepelerden daha aşağıda oluşması beklenir. Bunun gerçekleşmediği durumlar uyumsuzluk olarak

kabul edilir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using Matriks.Data.Identifiers;
using Matriks.Data.Symbol;
using Matriks.Engines;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
/*
Denge İşlem Hacmi (OBV)
Denge İşlem Hacmi göstergesi (OBV), teknik analizde alım satım baskısını ölçmek için kullanılır. 
Kümülatif bir göstergedir; fiyatın yükseldiği günlerde, o günün hacmi toplam OBV toplamına eklenir. 
Fiyat düştüyse o günün hacmi OBV toplamından çıkarılır. OBV değeri, daha kolay yorum için bir çizgi olarak çizilir. 
Denge İşlem Hacmi öncelikle genel fiyat eğilimlerini teyit etmek veya tanımlamak veya ayrışmalardan sonra fiyat hareketlerini öngörmek için kullanılır.
*/
namespace Matriks.Lean.Algotrader
{
	//Ilk parametre indikatörün adı, sınıfın adıyla aynı olmalıdır.
	//Ikinci parametre indikatörün Dataserisinin üzerine mi yeni pencereye mi ekleneceğini belirtir. Yeni pencere için ->IndicatorDrawingArea.NewWindow , Data Serisi için IndicatorDrawingArea.OnDataSeries
	[IndicatorInformationAttribute("OBVKripex", IndicatorDrawingArea.NewWindow)]
	//Indikatörün çizgilerinin isimleri
	[IndicatorLineInformationAttribute(new []
		{
			"OBV"
		}
	)]

	public class OBVKripex : MatriksIndicator
	{
		public sealed override void OnInit()
		{

		}

		decimal obv = 0;

		public override void OnDataUpdate(int currentBar, decimal inputValue, DateTime barDateTime)
		{
			var barDataModel = GetBarData();

			if (currentBar < 1)
			{
				SetLine(0, currentBar, 0);
				return ;
			}

			var close = Instrument.SymbolBarData.Close[currentBar];
			var prevClose = Instrument.SymbolBarData.Close[currentBar -1];
			var volume = Instrument.SymbolBarData.Volume[currentBar];

			if (close>prevClose)
			{
				obv += volume;
			}else if (close<prevClose)
			{
				obv -= volume;
			}

			SetLine(currentBar, obv);

		}
	}
}

0 Yorum