Общие вопросы по разработке > Индикатор накопления всплесков, надо переписать

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Индикатор накопления всплесков, надо переписать

Непрочитанное сообщение KakTak » 23 янв 2017, 23:03

вообщем суть индикатора в том, чтобы ловить всплески объёмов прошедших сделок и складывать в течении дня отдельно по Ask и по Bid при этом вычитая из этих всплесков противоположные значения ask или bid
всплеск - это например Ask > Bid на 150 контрактов( ABCD)
но при этом их значения могут быть например Ask = 857, Bid = 100
Следующий всплеск Опять Ask > Bid на 150 контрактов, Ask = 1500, Bid = 1100
индикатор должен сделать следующее - (857 - 100) + (1500 - 1100)
и это будет только line Ask
тоже самое по биду отдельно.

То что ниже конечно лажа, но моих знаний пока не хватает для того чтобы индикатор запоминал бары.
ПРОШУ ПОСОДЕЙСТВОВАТЬ!

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

function Initialize()
{
IndicatorName = "VolumeBidAskAccum724";
PriceStudy = false;
AddInput("Input1", Inputs.Candle);
AddSeries("Bid", DrawAs.Line, Color.White);
AddSeries("Ask", DrawAs.Line, Color.Red);
AddParameter("Period", 50, 1);
AddParameter("PeriodType", 0); // период отсчета: 0 - календарный день, 1 - неделя, 2 - месяц
AddGlobalVariable("VABid", Types.Double,  0);
AddGlobalVariable("VAAsk", Types.Double,  0);
AddGlobalVariable("a", Types.Double,  0);
AddGlobalVariable("b", Types.Double,  0);
AddGlobalVariable("i", Types.Double,  0);
AddGlobalVariable("o", Types.Double,  0);
AddParameter("ABCD", 150, 0);

}

function Evaluate()
{
if (PeriodType == 0 && BarDate() != BarDate(1)) VABid = 0;
if (PeriodType == 1 && BarDate().DayOfWeek < BarDate(1).DayOfWeek) VABid = 0;
if (PeriodType == 2 && BarDate().Month != BarDate(1).Month) VABid = 0;
if (PeriodType == 0 && BarDate() != BarDate(1)) VAAsk = 0;
if (PeriodType == 1 && BarDate().DayOfWeek < BarDate(1).DayOfWeek) VAAsk = 0;
if (PeriodType == 2 && BarDate().Month != BarDate(1).Month) VAAsk = 0;

a = (Input.VolumeAsk[0] + ABCD);
b = (Input.VolumeBid[0] + ABCD);
i = Input.VolumeAsk[0];
o = Input.VolumeBid[0];
{
if (i > b);
VAAsk += i;

if (o > a);
VABid += o;

Bid = VABid;
Ask = VAAsk;

}
}

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Индикатор накопления всплесков, надо переписать

Непрочитанное сообщение KakTak » 23 янв 2017, 23:11

конкретно не знаю че делать c i и o переменными

KakTak
Сообщения: 128
Зарегистрирован: 21 мар 2016, 17:55

Re: Индикатор накопления всплесков, надо переписать

Непрочитанное сообщение KakTak » 23 янв 2017, 23:13

И как вообще заставить индикатор считать только всплески. а не все подряд??


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 8 гостей