Как написать эту итерацию? - PullRequest
0 голосов
/ 05 октября 2018

Я хочу оценить стратегию, которую я делаю: купить - где K_Class равен 1 продать - где K_Class равен 0, все цены относятся к столбцу закрытия в момент времени

, например: предположим, что у меня есть суммаденег 10000, первый раз я покупаю 2017/03/13, первый раз я продаю 2017/03/17.Второй раз, когда я покупаю, это 2017/03/20, второй раз, когда я продаю, это 2017/03/22

Мой вопрос: до конца, как рассчитать сумму денег?

 Time        Close        K_Class
    0     2017/03/06  31.72        0
    1     2017/03/08  33.99        0
    2     2017/03/09  32.02        0
    3     2017/03/10  30.66        0
    4     2017/03/13  30.94        1
    5     2017/03/15  32.56        1
    6     2017/03/17  33.31        0
    7     2017/03/20  34.07        1
    8     2017/03/22  34.40        0
    9     2017/03/24  32.98        1
    10    2017/03/27  33.26        0
    11    2017/03/28  31.60        0
    12    2017/03/29  30.36        0
    13    2017/03/30  28.83        0
    14    2017/04/11  27.01        0
    15    2017/04/12  24.31        0
    16    2017/04/14  24.22        0
    17    2017/04/17  21.80        0
    18    2017/04/18  21.20        1
    19    2017/04/19  23.32        1
    20    2017/04/20  24.43        0
    21    2017/04/24  23.85        1
    22    2017/04/26  23.97        1
    23    2017/04/27  24.31        1
    24    2017/04/28  23.50        1
    25    2017/05/02  22.57        1
    26    2017/05/03  22.67        1
    27    2017/05/04  22.11        1
    28    2017/05/05  21.26        1
    29    2017/05/08  19.37        1
    ..           ...    ...      ...
    275   2018/08/01  13.38        0
    276   2018/08/03  12.49        0
    277   2018/08/06  12.50        0
    278   2018/08/07  12.78        0
    279   2018/08/09  12.93        0
    280   2018/08/10  13.15        0
    281   2018/08/13  13.14        1
    282   2018/08/14  13.15        0
    283   2018/08/15  12.80        0
    284   2018/08/17  12.29        0
    285   2018/08/21  12.39        0
    286   2018/08/22  12.15        0
    287   2018/08/23  12.27        0
    288   2018/08/24  12.31        0
    289   2018/08/27  12.47        0
    290   2018/08/29  12.31        0
    291   2018/08/30  12.13        0
    292   2018/08/31  11.69        0
    293   2018/09/03  11.60        1
    294   2018/09/04  11.65        0
    295   2018/09/05  11.45        0
    296   2018/09/07  11.42        0
    297   2018/09/10  10.71        0
    298   2018/09/11  10.76        1
    299   2018/09/12  10.74        0
    300   2018/09/13  10.85        1
    301   2018/09/14  10.79        0
    302   2018/09/18  10.58        1
    303   2018/09/19  10.65        1
    304   2018/09/21  10.73        1

Ответы [ 2 ]

0 голосов
/ 05 октября 2018
df['diff'] = df['K_Class'].diff()

stock_sell = 0
current_amount = 10000
for n in range(0, df.index.size-1):
    print(n)
    if df.iloc[n, 10] == 1:
        stock_sell = current_amount/df.iloc[n, 4]
    if df.iloc[n, 10] == -1:
        current_amount = stock_sell*df.iloc[n, 4]
print(current_amount)
0 голосов
/ 05 октября 2018

Вы можете начать с этого:

df = pd.DataFrame({'price':np.arange(10), 'class':np.random.randint(2, size=10)})
df['diff'] = -1 * df['class'].diff()
df.loc[0,['diff']] = -1 * df.loc[0,['class']].values
df['money'] = df['price']*df['diff']

, поэтому 'diff' представляет действие покупки и продажи (-1 для покупки и +1 для продажи).Продукт этого и цена дают изменения денег, которые у вас есть.Подведите итог, плюс ваши начальные деньги, вы получите свои последние деньги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...