根据上篇实际跑出来的结果,发现有些明明已经获利但获利回吐,所以适时的停损停利才能保持获利相对最大化
position = 0
position_price = 0
reward = 0
reward_list = []
sig = []
total_reward = 0
hold_reward = []
ROI = []
for i in range(1,300):
price = df['Close'][i]
if position == 1:
reward = price - position_price
elif position == -1:
reward = position_price - price
else:
reward = 0
reward_list.append(reward)
print("ts =", df['ts'][i], "position_price =", position_price, "now_price =", price, "reward =", reward, "total_reward =", total_reward)
# 5MA往上穿越10MA call
if ma_dif[i-1] < 0 and ma_dif[i] > 0:
if position == 0: # call
position += 1
sig.append(1)
position_price = price
hold_reward.append(reward)
print("ts =", df['ts'][i], "buy =", price)
elif position == -1: # close
position += 1
sig.append(1)
reward = position_price - price
total_reward += reward
reward_list.clear()
ROI.append(reward/position_price)
position_price = 0
print("ts =", df['ts'][i], "buy =", price, "reward =", reward)
# 5MA往下穿越10MA put
elif ma_dif[i-1] > 0 and ma_dif[i] < 0:
if position == 1: # close
position -= 1
sig.append(-1)
reward = price - position_price
total_reward += reward
reward_list.clear()
ROI.append(reward/position_price)
position_price = 0
print("ts =", df['ts'][i], "sell =", price, "reward =", reward)
elif position == 0: # put
position -= 1
sig.append(-1)
position_price = price
print("ts =", df['ts'][i], "sell =", price)
else:
for j in range(1,len(reward_list)):
if (reward_list[j] < reward_list[j-1]) and (reward_list[j] < max(reward_list)):
if position == 1: # close
position -= 1
sig.append(-1)
reward = price - position_price
total_reward += reward
reward_list.clear()
ROI.append(reward/position_price)
position_price = 0
print("ts =", df['ts'][i], "sell =", price, "reward =", reward)
elif position == -1: # close
position += 1
sig.append(1)
reward = position_price - price
total_reward += reward
reward_list.clear()
ROI.append(reward/position_price)
position_price = 0
print("ts =", df['ts'][i], "buy =", price, "reward =", reward)
sig.append(0)
成果似乎还可以在精进
ts = 2021-09-01 02:48:00 position_price = 0 now_price = 17325.0 reward = 0 total_reward = 0
ts = 2021-09-01 02:54:00 position_price = 0 now_price = 17325.0 reward = 0 total_reward = 0
ts = 2021-09-01 03:11:00 position_price = 0 now_price = 17321.0 reward = 0 total_reward = 0
ts = 2021-09-01 03:23:00 position_price = 0 now_price = 17320.0 reward = 0 total_reward = 0
ts = 2021-09-01 03:54:00 position_price = 0 now_price = 17341.0 reward = 0 total_reward = 0
ts = 2021-09-01 03:57:00 position_price = 0 now_price = 17345.0 reward = 0 total_reward = 0
ts = 2021-09-01 03:58:00 position_price = 0 now_price = 17352.0 reward = 0 total_reward = 0
ts = 2021-09-01 04:22:00 position_price = 0 now_price = 17343.0 reward = 0 total_reward = 0
ts = 2021-09-01 04:36:00 position_price = 0 now_price = 17342.0 reward = 0 total_reward = 0
ts = 2021-09-01 04:58:00 position_price = 0 now_price = 17333.0 reward = 0 total_reward = 0
ts = 2021-09-01 05:00:00 position_price = 0 now_price = 17332.0 reward = 0 total_reward = 0
ts = 2021-09-01 08:46:00 position_price = 0 now_price = 17342.0 reward = 0 total_reward = 0
ts = 2021-09-01 08:47:00 position_price = 0 now_price = 17346.0 reward = 0 total_reward = 0
ts = 2021-09-01 08:47:00 sell = 17346.0
ts = 2021-09-01 08:48:00 position_price = 17346.0 now_price = 17342.0 reward = 4.0 total_reward = 0
ts = 2021-09-01 08:49:00 position_price = 17346.0 now_price = 17341.0 reward = 5.0 total_reward = 0
ts = 2021-09-01 08:50:00 position_price = 17346.0 now_price = 17337.0 reward = 9.0 total_reward = 0
ts = 2021-09-01 08:50:00 buy = 17337.0 reward = 9.0
ts = 2021-09-01 08:51:00 position_price = 0 now_price = 17340.0 reward = 0 total_reward = 9.0
ts = 2021-09-01 08:52:00 position_price = 0 now_price = 17339.0 reward = 0 total_reward = 9.0
ts = 2021-09-01 08:53:00 position_price = 0 now_price = 17342.0 reward = 0 total_reward = 9.0
ts = 2021-09-01 08:54:00 position_price = 0 now_price = 17333.0 reward = 0 total_reward = 9.0
ts = 2021-09-01 08:54:00 sell = 17333.0
ts = 2021-09-01 08:55:00 position_price = 17333.0 now_price = 17323.0 reward = 10.0 total_reward = 9.0
ts = 2021-09-01 08:56:00 position_price = 17333.0 now_price = 17309.0 reward = 24.0 total_reward = 9.0
ts = 2021-09-01 08:57:00 position_price = 17333.0 now_price = 17311.0 reward = 22.0 total_reward = 9.0
ts = 2021-09-01 08:57:00 buy = 17311.0 reward = 22.0
ts = 2021-09-01 08:58:00 position_price = 0 now_price = 17317.0 reward = 0 total_reward = 31.0
ts = 2021-09-01 08:59:00 position_price = 0 now_price = 17327.0 reward = 0 total_reward = 31.0
ts = 2021-09-01 09:00:00 position_price = 0 now_price = 17320.0 reward = 0 total_reward = 31.0
ts = 2021-09-01 09:01:00 position_price = 0 now_price = 17324.0 reward = 0 total_reward = 31.0
ts = 2021-09-01 09:02:00 position_price = 0 now_price = 17333.0 reward = 0 total_reward = 31.0
ts = 2021-09-01 09:02:00 buy = 17333.0
ts = 2021-09-01 09:03:00 position_price = 17333.0 now_price = 17342.0 reward = 9.0 total_reward = 31.0
ts = 2021-09-01 09:04:00 position_price = 17333.0 now_price = 17355.0 reward = 22.0 total_reward = 31.0
ts = 2021-09-01 09:05:00 position_price = 17333.0 now_price = 17356.0 reward = 23.0 total_reward = 31.0
ts = 2021-09-01 09:07:00 position_price = 17333.0 now_price = 17350.0 reward = 17.0 total_reward = 31.0
ts = 2021-09-01 09:07:00 sell = 17350.0 reward = 17.0
ts = 2021-09-01 09:08:00 position_price = 0 now_price = 17372.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:09:00 position_price = 0 now_price = 17373.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:10:00 position_price = 0 now_price = 17375.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:11:00 position_price = 0 now_price = 17380.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:12:00 position_price = 0 now_price = 17389.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:13:00 position_price = 0 now_price = 17392.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:14:00 position_price = 0 now_price = 17390.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:15:00 position_price = 0 now_price = 17376.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:16:00 position_price = 0 now_price = 17364.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:17:00 position_price = 0 now_price = 17367.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:18:00 position_price = 0 now_price = 17382.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:19:00 position_price = 0 now_price = 17401.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:20:00 position_price = 0 now_price = 17400.0 reward = 0 total_reward = 48.0
ts = 2021-09-01 09:21:00 position_price = 0 now_price = 17384.0 reward = 0 total_reward = 48.0
接下来串个 backtrader 跑个长时间资料看看这个策略是否能长期稳定获利
<<: Day 17 - WooCommerce 测试环境建立 (上)
人的科技文明发展始终来自於人性 在科技的发展之下以及人们对於未来的科技运用与想像,在很多的领域都可以...
有时我们背景需要一些定时任务,Odoo同样也可以设定,依照惯例我们来写一个范例,每半年学生的成绩就要...
Kernel里面除了前述几种物件之外,我们以下介绍其他几种比较重要的物件,首先我们来看所谓的pipe...
本系列文章经过重新编排和扩充,已出书为ECMAScript关键30天。原始文章因当时准备时程紧迫,...
先建立游戏组件,以便加入後续内容。 src\components\window-app-cat-vs...