from all_utils import emotional_stability_utils
from domain.configuration import Configuration
# 计算一天的交易数据
# transaction_data 保存所有的交易数据
# date_value 日期
# date_init_list 一天所有的原始csv数据
# sample_observation_begin_index 样本观察开始索引
# sample_observation_end_index 样本观察结束索引
# finish_index 收盘平仓时的索引
def calculate_transaction_data(transaction_data, date_value, date_init_list, sample_observation_begin_index,
sample_observation_end_index, finish_index):
# 根据样本观察索引区间获取样本数据
sample_observation = date_init_list[sample_observation_begin_index:sample_observation_end_index]
print("样本长度为:" + str(len(sample_observation)))
# 根据样本数据计算情绪平稳度
emotional_stability = emotional_stability_utils.calculate_emotional_stability(sample_observation)
# 情绪平稳度小于阈值,决定开仓
if emotional_stability < Configuration.emotional_stability_threshold:
print("情绪平稳度小于阈值,决定开仓")
# 样本观察收盘价
sample_observation_end_close = date_init_list[sample_observation_end_index - 1]["close"]
# 样本观察开盘价
sample_observation_begin_open = date_init_list[sample_observation_begin_index]["open"]
# 在样本观察之后的下一分钟开盘买入
buy_price = date_init_list[sample_observation_end_index]["open"]
# 如果样本观察的收盘价大于样本观察开盘价,则做多
if sample_observation_end_close > sample_observation_begin_open:
print("开始做多")
long = 1
else:
print("开始做空")
long = 0
for i_value in range(sample_observation_end_index + 1, finish_index):
# 在开盘之后判断是否需要止损
sell_price = date_init_list[i_value]["open"]
# 如果做多,则用卖出价格减去买入价格
if long == 1:
percent = (sell_price - buy_price) / buy_price
# 如果做空,则用买入价格减去卖出价格
else:
percent = (buy_price - sell_price) / sell_price
# 如果损失大于止损阈值,则平仓止损
if percent < 0 and abs(percent) > Configuration.stop_loss_threshold:
print("平仓止损")
transaction_data["money"] = transaction_data["money"] * (1 + percent - Configuration.service_charge)
transaction_data["details"].append(
dict(date=date_value, money=transaction_data["money"]))
return
print("收盘平仓")
sell_price = date_init_list[finish_index - 1]["close"]
# 如果做多,则用卖出价格减去买入价格
if long == 1:
percent = (sell_price - buy_price) / buy_price
# 如果做空,则用买入价格减去卖出价格
else:
percent = (buy_price - sell_price) / sell_price
transaction_data["money"] = transaction_data["money"] * (1 + percent - Configuration.service_charge)
transaction_data["details"].append(
dict(date=date_value, money=transaction_data["money"]))
return
else:
print("情绪平稳度大于阈值,决定不开仓")
transaction_data["details"].append(dict(date=date_value, money=transaction_data["money"]))
return
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
基于市场情绪平稳度的股指期货日内交易策略源码(基于python实现) (1087个子文件)
0091bac069b326aebc404cb8d9e176cd5b42df 144B
0136a8d5c807d69e387bdb87b2a7317b4588c9 1KB
0168cac14d080b45ac693b2ceda1ec59f712b5 4KB
01747f56cc77845159f2c5fee2d0ce114259af 286B
0176d341ec037e72399b43709aaa837f9c4744 4KB
02647595465ee48dfb9014c528375f34ad20db 9KB
0265cbfa008ac703a0013d71d5cd6ca85e0d40 86B
02c91bc35b6e29210683a7065c7555cb30f88a 2KB
036886734e619d6cff4c10a9fb0cfddf85e136 3KB
039334bb34aacde631cc3ff4c7d9b253d193ef 2KB
03974420e41ee5a786c463a6d5ccfa89787fca 2KB
039b22b0d185278ae06afcc179c49c909d3b01 490B
03afb38b13bf56998d43aa542dcea9839d8132 2KB
044e4bc8f5a9775d82be0ecf387ce752732507 6KB
0493f2b131b32378612044f30173eabbfbc3f4 1KB
049fe65e0f33d80b81388b467811cbed89c758 5KB
04f001eed2c83eef820dfe303540ebb7ea17e2 2KB
04f81fc9f968d665a9bc6f86c0d19efca09304 78KB
055992e331774b84e0cb200cdd48ab586c905a 2KB
056221c9daad18a7acdfd11935e5708915fce6 3KB
05a29b15d5f8a3565a52796c4e39cc6b826ffc 754B
05e3aa63914b6f33303d3cfb789a5797714a49 19KB
061633efb6b03f6ca845ec5b0e69c90c25fdb8 12KB
061bf82d08cd7375c8d43a6a916ce0449ea950 4KB
063e7542586c05c3af21d31cd917ebd1118272 2KB
066f8c861eaa25c541a206057dd13e5a18c75d 28KB
0676b3cd7fe2fdf0855691f09814188e6c8b46 579B
0693b4b010a8c42e34f89ab8fa1e18b5bae1cc 663B
06b15dc30335002f75f2d7fdc2d48926aaa66b 82B
07b4078f997b5c6005c042ac178282c49fd5e7 335B
08344b7bf29dd50beb0f3d2436a62d4de056e8 11KB
0846e927fe65da39a2ce61e12e85ce3cb90d19 18KB
08a2509c71cf743f41860b818075c5317cd61b 2KB
08d5b8820eadf8a1ebe4851c984c6033c289bd 291B
097036832067ffbd1032cf6c4a70770adaeecd 1KB
09722a93d261ba6840e2a1d18a96ac5b71f7b8 21B
097f3038e8ce25518f1256640f17c1d18a466e 965B
09b05e701491cb9c0fa1dfc6c6d4bd114e91ec 1KB
09c8f6dfe33429cab574fb763052e0e85cf8b8 99KB
09f873b146349dc1191e5683c5d1604d76dc36 2KB
0a0e5a3138cf2445ef281a293b1e02123e6247 362B
0a4c7006812ad3b40b16b36557ba64044cb3c4 3KB
0aa53de9af5b1e30768fe2c211e1a8e56791d8 5KB
0abe75e0c00cbfcb2a310d872866f320977d0a 921B
0ac95885524a736369d8b4a9229d0148f5bc82 2KB
0bb80b7e7b64cb79f7e7cdf3e42819fe3471fe 481B
0bbe7059836921dab855fa395b9dd346b18d6c 84B
0c0239cd7d7af82a6e0cbc8d68053fa2e3dfaf 8KB
0c0682096ea95b3dd3ae3e555a5982e9f1bdad 2KB
0c2cb9be06e633b26c7205d6efe42827835910 2KB
0c4bf42cfe25c7c417c3776b7d5844417b9186 2KB
0c51a5dde15a0bb610a48cd0ca11770c914dae 40KB
0c959d2a7127633cd696f86844d1f356a0bc83 10KB
0cbe564c97271c52a659befc9e1c565849c987 240B
0ce5967b174348703b1b6c6c779e1088111b99 8KB
0d0668727cd0521270a52c962867907d743b34 718B
0d0e1f5613f7a4f19966c2137e1e44a8672da1 15KB
0d285a632b6c31331b0c45f56b07637f170a05 1KB
0d3787bb4d1f6799637e85e32df571c3fa4ca5 9KB
0d5c5588c99dc216cdea5084da440efb641945 449B
0d64378fe52100102cec093185f463dc576dc0 1KB
0db1596beea02ae102cb3d07aa6512e99f09af 3KB
0dc5a1acbe1025f2d10a6d79d5d47fac6bb6d7 964B
0e5e5feee14f8df7f7494c74261f12e5c0e999 81B
0e6280d3ca9c9b57e75f84c6f333000c219d0b 897B
0e7c92dc7f1688c86c345b47656b3561d71373 6KB
0e9790d5d0764f2ca005ae955d644bc2098d75 2KB
0ec205254512a3821e2729cb1d870a473bc1d9 3KB
0ec9a10ecd7bc3c90a94c62cedac3c5b96ccb4 5KB
0f54817f986885cae1ab399e859fde5535bb16 3KB
0fe442d9ca499466df9438df16eca405c5f102 5KB
100cabb9b8d7113111d1b09a7b84da2895e2a0 799B
101f4fe549a46c40744c2fa5ba55ea59cbd961 2KB
10252f952453bd217c432e2efc86c5cf6d8834 660B
1042441384693dbeeb9424c78dedf3bdbb8a3d 1KB
10c10f077788dd9cfd0beb2cd957ef36f057d6 6KB
10c242926064f0eda701c95b85c3adf9038c7c 2KB
1136b639e57a46acd72d2b6b7142a61979d694 1KB
115531911af77f5eab69775c7cdd8e43b47e1d 3KB
11832f24620f57f6fdcca40a1327490c40d971 543B
12584b45995d35110f75af00193fdad0fa10f4 543B
128348189a5a252f319e16e3b550bd9564c19f 465B
12a99cccf98a1be4bc463bce29c402ff634e62 4KB
1342f491e865d814ee9419d806e7cdfb0d806d 1KB
13727ca006977f3fb2df30fd1a25bb1670cf3e 996B
13748b5b4742ade3aca8f5170369806f32c556 234B
137891791fe96927ad78e64b0aad7bded08bdc 16B
139dbf9400b7bc0b64e6756ce17b4eb5fd7436 51KB
13b211448fd39447ef0ab3194276670cb44538 2KB
13e176d506845343d4bdd1172cab64eb66432e 5KB
1404750eb719433f8f9038bec786dcafb7f7e8 336B
1441212179d4c2d8c4c9cbfac9680d5aa6b9b7 46KB
14b17b2fdbc2307a87ebdbcdd75486795e454e 661B
1537e4032617d294b26db09db1d85af4ad0dc2 2KB
1557335218d46c53ce0933536f3bf5418c0efa 1KB
156a69c08d635f9969df59cdd9b3d898882c73 631B
157a1f78c26829ffbe1bd2463f7735b636d16f 4KB
1593c4bdcd11bb22411294735917fe5b46876b 613B
15b2202b0fcc8da2dc0f0e13f2eb0a95373de5 3KB
15bf42405e541b5154de307c54df47b9b7e2ec 384B
共 1087 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
永远喜欢薇尔莉特
- 粉丝: 19
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0