Author: | Roman Elizarov (original idea, text) | Time limit: | 2 sec | |
Input file: | easy.in | Memory limit: | 64 Mb | |
Output file: | easy.out |
Frank is a professional stock trader for Advanced Commercial Markets Limited (ACM Ltd). He likes 'easy trading' — using a straightforward strategy to decide when to buy stock and when to sell it.
Frank has a database of historical stock prices for each day. He uses two integer numbers m and n as parameters of his trading strategy. Every day he computes two numbers: P(m) — an average stock price for the previous m days, and P(n) — an average stock price for the previous n days. P(m) > P(n) is an indicator of the upward trend (traders call it bullish trend), and P(m) < P(n) is an indicator of the downward trend (traders call it bearish trend). In practice the values for P(m) and P(n) are never equal.
When a trend reverses from bearish to bullish it is a signal for Frank to buy stock. When a trend reverses from bullish to bearish it is a signal to sell.
Frank has different values for m and n in mind and he wants to backtest them using historical prices. He takes a set of k historical prices pi For each i (n ≤ i ≤ k) he computes Pi(m) and Pi(n) — an arithmetic average of pi-m+1 ... pi and pi-n+1 ... pi respectively.
Backtesting generates trading signals according to the following rules.
1) If Pi(m) > Pi(n) there is a bullish trend for day i and a 'BUY ON DAY i' signal is generated if i=n or there was a bearish trend on day i-1.
2) If Pi(m) < Pi(n) there is a bearish tread for day i and a 'SELL ON DAY i' signal is generated if i=n or there was a bullish trend on day i-1.
Your task is to write a program that backtests a specified strategy for Frank — you shall print a signal for the first tested day (day n) followed by the signals in increasing day numbers.
1 ≤ m < n ≤ 100.
n < k ≤ 10000.
0 < pi < 100 for 1 ≤ i ≤ k.
No. | Input file (easy.in ) |
Output file (easy.out ) |
---|---|---|
1 |
|
|