Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1233

Добавлено: evge » 01 сен 2016, 07:14

Тема: Re: Как сложить объёмы7

Текст сообщения:

KakTak писал(а):А как прописать чтобы отсчет не каждое утро начинался а например с начала прошлой экспирации или с начала месяца?


Ниже в примере добавлен параметр PeriodType - период отсчета: 0 - календарный день, 1 - неделя, 2 - месяц

Как узнать дату экспирации предыдущего фьючерса я не знаю, скорее всего на текущий момент никак.

Код: Выделить всё

function Initialize()
{
IndicatorName = "VolumeAccumBA";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("VolumeAccum", DrawAs.Custom, Color.Blue, AxisType.ZeroBased);

AddParameter("PeriodType", 0); // период отсчета: 0 - календарный день, 1 - неделя, 2 - месяц
AddParameter("History", 1440, 1);

AddGlobalVariable("BA", Types.Double,  0);
}

function Evaluate()
{

if (PeriodType == 0 && BarDate() != BarDate(1)) BA = 0;
if (PeriodType == 1 && BarDate().DayOfWeek < BarDate(1).DayOfWeek) BA = 0;
if (PeriodType == 2 && BarDate().Month != BarDate(1).Month) BA = 0;

BA += Input.VolumeAsk - Input.VolumeBid;

VolumeAccum = BA;

if (VolumeAccum < 0)
   VolumeAccum.DrawHistogram(Color.Red);
   else
   VolumeAccum.DrawHistogram(Color.Green);
}


VolumeAccumBA-02.png
3 индикатора VolumeAccumBA с началом отсчетов: день, неделя, месяц
VolumeAccumBA-02.png (42.46 КБ) 19071 просмотр