Доступ к данным анализа объема из индикаторов
Используйте расширенную технику анализа объема в ваших индикаторах
Торговая платформа Quantower имеет широкий набор инструментов анализа объема, расширенную аналитическую функциональность, которая позволяет вам видеть торгуемый объем на каждом уровне цены, оценивать баланс между покупателями и продавцами и понимать намерения трейдеров относительно будущей цены.
Вы можете легко получить доступ ко всем данным анализа объемов из вашего индикатора. По умолчанию графики не загружают такие данные, так как для получения полной истории сделок требуется время. Вам необходимо уведомить график, что он нужен вашему индикатору для расчетов, и вы можете сделать это, реализовав специальный интерфейс IVolumeAnalysisIndicator:
1
public class IndicatorVolumeAnalysis : Indicator, IVolumeAnalysisIndicator
2
{
3
...
Copied!
Он содержит только один метод VolumeAnalysisData_Loaded и он будет вызван, когда все необходимые данные закончат загрузку:
1
public void VolumeAnalysisData_Loaded()
2
{
3
// Add your logic here
4
}
Copied!
Если вам нужно знать текущее состояние загрузки, вы можете использовать Прогресс расчета анализа объема из исторических данные. Если загрузка была запущена, этот объект будет установлен, и вы можете узнать текущее состояние или даже процент загруженных данных:
1
if (HistoricalData.VolumeAnalysisCalculationProgress.State != VolumeAnalysisCalculationState.Finished
2
Core.Instance.Loggers.Log(HistoricalData.VolumeAnalysisCalculationProgress.ProgressPercent.ToString());
Copied!
По завершении загрузки объект Total будет доступен для каждого HistoryItem из HistoricalData, который обеспечивает доступ к агрегированным данным анализа объема:
1
HistoricalData[0].VolumeAnalysisData.Total.Volume
2
HistoricalData[0].VolumeAnalysisData.Total.Trades
3
HistoricalData[0].VolumeAnalysisData.Total.AverageBuySize
Copied!
Список всех доступных типов данных:
Тип данных
Описание
Объем
Общий размер всех позиций, исполненных на каждом ценовом уровне или ценовом диапазоне.
Объем покупки
Общий размер всех позиций на покупку, выполненных на каждом ценовом уровне или ценовом диапазоне.
Объем продажи
Общий размер всех позиций на продажу, выполненных на каждом ценовом уровне или ценовом диапазоне.
Сделки
Количество контрактов (сделок), заключенных на каждом ценовом уровне.
Buy Сделки
Количество сделок на покупку, выполненных на каждом ценовом уровне.
Sell Сделки
Количество сделок на продажу, выполненных на каждом ценовом уровне.
Buy Объем в процентах
Показывает, сколько процентов от общего объема относится к сделкам на покупку
Sell Объем в процентах
Показывает, сколько процентов от общего объема относится к сделкам на продажу
Дельта
Показывает разницу в торговом объеме между покупателями и продавцами. Позволяет оценить, кто в данный момент контролирует цену на рынке.
Дельта-процент
Показывает разницу (%) в торговом объеме между покупателями и продавцами. Позволяет оценить, кто в данный момент контролирует цену на рынке.
Средний размер
Средний объем позиции, которая была исполнена по определенной цене или ценовому диапазону.
Средний Купить Размер
Средний объем позиции на покупку, которая была исполнена по определенной цене или в ценовом диапазоне.
Средний размер продажи
Средний объем позиции на продажу, которая была исполнена по определенной цене или ценовому диапазону.
Максимальный объем одной сделки
Показывает максимальный объем одной сделки, которая была исполнена по определенной цене или ценовому диапазону.
Максимальный объем одной сделки процент
Показывает максимальный (%) объем одной сделки, которая была исполнена по определенной цене или ценовому диапазону.
За исключением общей (агрегированной) информации, у вас есть доступ к данным анализа объема для каждой цены в баре. Он доступен в словаре PriceLevels и содержит те же типы данных, что и Total:
1
this.HistoricalData[0].VolumeAnalysisData.PriceLevels[1.2564].Volume
Copied!
В качестве примера создадим простой индикатор, который будет рисовать 2 линии в отдельном окне графика. Первый покажет AverageBuySize, а второй - AverageSellSize. Это полный исходный код:
1
using System;
2
using System.Drawing;
3
using TradingPlatform.BusinessLayer;
4
using TradingPlatform.BusinessLayer.Modules.Indicators;
5
6
namespace IndicatorVolumeAnalysis
7
{
8
public class IndicatorVolumeAnalysis : Indicator, IVolumeAnalysisIndicator
9
{
10
public IndicatorVolumeAnalysis()
11
: base()
12
{
13
// Defines indicator's name and description.
14
Name = "IndicatorVolumeAnalysis";
15
Description = "My indicator's annotation";
16
17
// Defines line on demand with particular parameters.
18
AddLineSeries("AverageBuySize", Color.CadetBlue, 1, LineStyle.Solid);
19
AddLineSeries("AverageSellSize", Color.Red, 1, LineStyle.Solid);
20
21
// By default indicator will be applied on main window of the chart
22
SeparateWindow = true;
23
}
24
25
public void VolumeAnalysisData_Loaded()
26
{
27
// Set value to all previous indicators points
28
for (int i = 0; i < this.Count; i++)
29
{
30
SetValue(this.HistoricalData[i].VolumeAnalysisData.Total.AverageBuySize, 0, i);
31
SetValue(this.HistoricalData[i].VolumeAnalysisData.Total.AverageSellSize, 1, i);
32
}
33
}
34
35
protected override void OnUpdate(UpdateArgs args)
36
{
37
// Volume analysis data not loaded yet
38
if (this.HistoricalData.VolumeAnalysisCalculationProgress == null || this.HistoricalData.VolumeAnalysisCalculationProgress.State != VolumeAnalysisCalculationState.Finished)
39
return;
40
41
// Example of access Volume Analysis data
42
SetValue(this.HistoricalData[0].VolumeAnalysisData.Total.AverageBuySize, 0);
43
SetValue(this.HistoricalData[0].VolumeAnalysisData.Total.AverageSellSize, 1);
44
}
45
}
46
}
Copied!
Когда мы построим этот индикатор и добавим его на график, мы увидим следующий результат:
Линии индикатора показывают средний размер покупки и средний размер продажи.
В этом разделе мы показали вам простой пример индикатора, основанного на данных объемного анализа. Вы можете улучшить его и создать действительно продвинутый и сложный индикатор, похожий на инструменты Volume Analysis из Quantower, например Cluster Chart. В наших следующих разделах мы предоставим пример рисования профилей объема на диаграмме.
Copy link