【问题标题】:Calculating signals in stock trading计算股票交易中的信号
【发布时间】:2021-04-07 17:11:45
【问题描述】:

预描述

我正在分析股票价格。

  • 价差值是一对的值。
  • 一对是两只股票,例如 Amazon_Tesla
  • 如果信号为1,则表示必须卖出股票。
  • 如果信号为0,表示该股票必须买入。

输入

  1. 标准值:浮点数
  2. 传播:列表或熊猫系列

输出

  1. 信号 1
  2. 信号 2

信号如何变化?

信号根据传播阈值变化。在此示例中,阈值是标准偏差(值=1)。在指数 2 中,我们卖出亚马逊股票并买入特斯拉股票。第一笔交易开始时,点差必须超过标准值。信号值的变化与样本数据一样。

结果

使用输入获得示例输出的最简单方法是什么?

要访问示例数据: https://gist.github.com/birdalugureren/05ea6995a9f31478599e9c062e9cd452

【问题讨论】:

  • 请同时发布预期的输出。
  • 实现什么?我不明白你在问什么。您需要算法、程序、程序帮助吗?你想达到什么目标?
  • 输入值:std和spread值 输出值:signal1, signal2

标签: python pandas data-science data-analysis finance


【解决方案1】:

实现这一点的一种方法是使用与spread values 相关的standard deviation 值来描述每个信号的函数,以产生股票行动将转向的点。之后,用ffill转发填充库存操作没有变化的地方。

import pandas as pd
import numpy as np

d = {'index': {i:i for i in range(20)},
  'spread': {0: 0.4, 1: 0.6, 2: 1.1, 3: 0.8, 4: 1.5, 5: 0.6, 6: -0.01, 7: -1.4,
  8: 0.1, 9: 0.4, 10: 1.4, 11: -1.5, 12: -0.4, 13: 0.3, 14: 0.6, 15: 1.2, 16: 0.7,
  17: -0.3, 18: -0.8, 19: -1.9}}

df = pd.DataFrame(d)
print(df)

std_dev = 1

func_sig1 = lambda x: 1 if x > std_dev else 0 if x < 0 else np.NAN
func_sig2 = lambda x: 1 if x < -std_dev else 0 if x > 0 else np.NAN

df["Signal-1"] = df["spread"].map(func_sig1).ffill()
df["Signal-2"] = df["spread"].map(func_sig2).ffill()

print(df)

df的输出

    index  spread  Signal-1  Signal-2
0       0    0.40       NaN       0.0
1       1    0.60       NaN       0.0
2       2    1.10       1.0       0.0
3       3    0.80       1.0       0.0
4       4    1.50       1.0       0.0
5       5    0.60       1.0       0.0
6       6   -0.01       0.0       0.0
7       7   -1.40       0.0       1.0
8       8    0.10       0.0       0.0
9       9    0.40       0.0       0.0
10     10    1.40       1.0       0.0
11     11   -1.50       0.0       1.0
12     12   -0.40       0.0       1.0
13     13    0.30       0.0       0.0
14     14    0.60       0.0       0.0
15     15    1.20       1.0       0.0
16     16    0.70       1.0       0.0
17     17   -0.30       0.0       0.0
18     18   -0.80       0.0       0.0
19     19   -1.90       0.0       1.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多