这里分享第二个策略 - 菲阿里四价策略
菲阿里四价指的是:昨日高点、昨日低点、昨天收盘、今天开盘四个价格。
菲阿里四价上下轨的计算非常简单。昨日高点为上轨,昨日低点为下轨。当价格突破上轨时,买入开仓;当价格突破下轨时,卖出开仓。
作法
第一步:获取昨日最高价、最低价、收盘价、开盘价四个数据。
第二步:计算上轨和下轨。当价格上穿上轨时,买入开仓;当价格下穿下轨时,卖出开仓。
第三步:当日平仓。
from shioaji.data import Kbars
kbars = api.kbars(api.Contracts.Futures.TXF['TXF202110'], start="2021-09-29", end="2021-09-29")
df = pd.DataFrame({**kbars})
df.ts = pd.to_datetime(df.ts)
nwedf = df.drop(df[(df['ts'] < "2021-09-29 08:45:00") | (df['ts'] > "2021-09-29 13:45:00")].index).reset_index()
open = nwedf['Open'][0]
close = nwedf['Close'][0]
column = nwedf['High']
max_value = column.max()
column = nwedf['Low']
min_value = column.min()
minute_close = pd.Series()
stock = 0
price = 0
reward = 0
sig = []
for i in range(0,700):
# 抓snapshot
snapshots = api.snapshots(contracts)
# 存到分k收盘价的series
minute_close = minute_close.append(pd.Series(
[snapshots[0].close],
index=[pd.to_datetime(snapshots[0].ts, unit='ns')]
))
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
# 当价格上穿上轨时,买入开仓
if snapshots[0].close > max_value and stock == 0:
stock += 1
price = snapshots[0].close
sig.append(1)
print("Current Time =", current_time, "buy :", price)
# 当价格下穿下轨时,卖出开仓
elif snapshots[0].close < min_value and stock == 1:
stock -= 1
reward = price - snapshots[0].close
sig.append(-1)
print("Current Time =", current_time, "sell :", price, "reward :", reward)
else:
sig.append(0)
time.sleep(60)
# 当日平仓
if stock > 0:
reward = price - snapshots[0].close
sig.append(-1)
print("Current Time =", current_time, "sell :", price, "reward :", reward)
elif stock < 0:
reward = price - snapshots[0].close
sig.append(-1)
print("Current Time =", current_time, "buy :", price, "reward :", reward)
实际跑了一下策略,发现这个策略适合用在多头市场,假如市场转空,应该把策略反过来操作
相信各位也看了 N 个介绍 MVVM 的文章了吧,不知道你们有没有觉得大家所描述的 MVVM 是不是...
DAY 5 ROS 通讯架构1 前言 在前几天我们将我们的 ROS 环境给搭建起来了,并且知道了大部...
完整专案原始码(Github) 文章脉络与 commit 的程序码变化是一致的,可以对照着看 若文章...
"参考allenchen大大的铁人30天搞懂Python" "如有任何...
原来我发现我其实想要做的是模拟使用者的行为来测试网站是否顺利运行 而不是对单一function测试 ...