在期货市场,价格呈现一切。几乎所有的技术分析,如均线、布林线、MACD、KDJ等等,这些都是以价格为基础,通过特定的方法计算。包括基本面分析也是如此,通过分析近期和远期价差、期货和现货升贴水、上下游库存等等数据,计算当前价格是否合理,并预估未来的价格。既然如此,为什么不直接研究价格呢?今天我们讲的菲阿里四价策略就是完全根据价格来做出卖决定。
import time # 导入库,用于转换时间格式 mp = 0 # 虚拟持仓 def trade_time(hour, minute): minute = str(minute) if len(minute) == 1: minute = "0" + minute return int(str(hour) + minute) def onTick(): _C(exchange.SetContractType, "rb888") # 订阅期货品种 bar_arr = _C(exchange.GetRecords, PERIOD_D1) # 获取日线数组 if len(bar_arr) < 2: # 如果小于2根K线 return # 返回继续等待数据 yh = bar_arr[-2]['High'] # 昨日最高价 yl = bar_arr[-2]['Low'] # 昨日最低价 today_open = bar_arr[-1]['Open'] # 当日开盘价 bar_arr = _C(exchange.GetRecords) # 获取当前设置周期K线数组 current = bar_arr[-1]['Time'] # 获取当前K线时间戳 local = time.localtime(current / 1000) # 处理时间戳 hour = int(time.strftime("%H", local)) # 格式化时间戳,并获取小时 minute = int(time.strftime("%M", local)) # 格式化时间戳,并获取分钟 price = bar_arr[-1]['Close'] # 获取最新价格 global mp # 设置多头止损 if today_open / yh > 1.005: # 如果当天开盘价大于昨天最高价 long_stop = yh # 设置多头止损价为昨天最高价 elif today_open / yh < 0.995: # 如果当天开盘价小于昨天最高价 long_stop = today_open # 设置多头止损价为当天开盘价 else: # 如果当天开盘价接近昨天最高价 long_stop = (yh + yl) / 2 # 设置多头止损为昨天中间价 # 设置空头止损 if today_open / yl < 0.995: # 如果当天开盘价小于昨天最低价 short_stop = yl # 设置空头止损价为昨天最低价 elif today_open / yl > 1.005: # 如果当天开盘价大于昨天最低价 short_stop = today_open # 设置空头止损价为当天开盘价 else: # 如果当天开盘价接近昨天最低价 short_stop = (yh + yl) / 2 # 设置多头止损为昨天中间价 # 下单交易 trading = trade_time(hour, minute) if mp > 0: # 如果当前持有多单 # 如果当前价格小于多头止损线,或者超过规定的交易时间 if price < long_stop or trading > 1450: exchange.SetDirection("closebuy") # 设置交易方向和类型 exchange.Sell(price - 1, 1) # 平多单 mp = 0 # 重置虚拟持仓 if mp < 0: # 如果当前持有空单 # 如果当前价格大于空头止损线,或者超过规定的交易时间 if price > short_stop or trading > 1450: exchange.SetDirection("closesell") # 设置交易方向和类型 exchange.Buy(price, 1) # 平空单 mp = 0 # 重置虚拟持仓 # 如果当前无持仓,并且在规定的交易时间内 if mp == 0 and 930 < trading < 1450: if price > yh: # 如果当前价格大于昨天最高价 exchange.SetDirection("buy") # 设置交易方向和类型 exchange.Buy(price, 1) # 开多单 mp = 1 # 重置虚拟持仓 elif price < yl: # 如果价格小于昨天最低价 exchange.SetDirection("sell") # 设置交易方向和类型 exchange.Sell(price - 1, 1) # 开空单 mp = -1 # 重置虚拟持仓 def main(): while True: # 无限循环 onTick() # 执行策略主函数 Sleep(1000) # 休眠1秒
时间简史 这个能导入通达信用吗
Hukybo 不能直接导入