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);
}