Re: Как сложить объёмы7
Добавлено: 30 авг 2016, 09:28
Вообщем так и не понял я как сделать то что я хочу сделать.
Неофициальный форум клиентского терминала Альфа-Инвестиции (Альфа-Директ 4). Обсуждение терминала, обмен опытом, разработка скриптов индикаторов и стратегий.
https://www.alfadirect4.ru/
Код: Выделить всё
function Initialize()
{
IndicatorName = "VolumeAccumBA";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("VolumeAccum", DrawAs.Custom, Color.Blue, AxisType.ZeroBased);
AddParameter("History", 1440, 1);
AddGlobalVariable("BA", Types.Double, 0);
}
function Evaluate()
{
if (BarDate() != BarDate(1)) BA = 0;
BA += Input.VolumeAsk - Input.VolumeBid;
VolumeAccum = BA;
if (VolumeAccum < 0)
VolumeAccum.DrawHistogram(Color.Red);
else
VolumeAccum.DrawHistogram(Color.Green);
}
KakTak писал(а):А как прописать чтобы отсчет не каждое утро начинался а например с начала прошлой экспирации или с начала месяца?
Код: Выделить всё
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);
}