Подсчет количества раз, когда символ уменьшился на X% в следующие 6 месяцев в Amibroker AFL

Я использую Amibroker ver6.20.1. Я хотел бы подсчитать, сколько раз цена акций упала на X% с определенного дня в течение следующих 6 месяцев, используя код AFL. Это потребует использования Ref() для ссылки на будущие значения.

https://www.amibroker.com/guide/afl/ref.html

2 ответа

Решение

Я полагаю, что вы смотрите на цену закрытия за последние 6 месяцев, поскольку не существует программного обеспечения для построения графиков, которое могло бы предоставить будущие цены. Вот предположения, которые я делаю для кода AFL ниже. 1. 6 месяцев назад цена закрытия или 26 недель / 5 дней / неделя = 130 дней 2. Сравнить X% от дневной цены закрытия 3. Цена акций упала, т. Е. Вчерашняя цена закрытия> сегодняшняя цена закрытия

// BarCount is the number of element in Close array.
// Array element start from 0 to BarCount - 1.
// Create Close_price[i] array because Amibroker does not allow Close[i] in an If statement.
// X% is set to 15%.
// Run this AFL in Exploration and select Apply To : All Symbols, From to Date : Current date of your database
Close_price=Close;
Filter = 0;
x=0.05;
j=0;
if (BarCount >= 130) { /* Scan those stocks with at least 6 months data. */
for (i = BarCount - 130; i<BarCount-1; i++){
 if (Close_price[i] > Close_price[i+1] and (1-Close_price[i+1]/Close_price[i])>0.15){
  Filter = 1;
  j++;
  }
}
AddColumn(j,"# of time drop more than 5%",1.0);
}

Вы можете подсчитать, сколько раз цена упала ниже -1,5% по сравнению с предыдущим днем ​​за последние 20 дней:

N = Sum(ROC(C,1) < -1.5, 20);

Вы также можете преобразовать его в будущие экземпляры в следующие 20 дней следующим образом:

N = Ref(Sum(ROC(C,1) < -1.5, 20), 20);

Второе решение не будет работать в реальной торговле, хотя, я уверен, вы знаете.

Другие вопросы по тегам