python30行代码_30行代码带你进入量化投资世界(python版本)

30行代码带你进入量化投资世界(python版本)

30行代码带你进入量化投资世界(python版本)

Author: shindou, Created: 2016-12-25 19:08:32, Updated: 2017-01-02 13:15:54

class _const:

"""这个类的实例实现常量功能.

"""

class ConstError(TypeError):pass

def __setattr__(self, name, value):

if self.__dict__.has_key(name):

raise self.ConstError, "Can't rebind const (%s)" %name

self.__dict__[name]=value

const = _const()

def main():

const.STATE_IDLE = -1 # 常量,标志空闲状态

state = const.STATE_IDLE # 状态变量 state, 初始化为 空闲状态

opAmount = 0 # 交易量, 初始化为0

initAccount = ext.GetAccount() # 获取账户当前信息

Log(initAccount) # 输出当前账户信息

while true:

if state == const.STATE_IDLE: # 触发开仓条件一: 空闲状态

n = ext.Cross(FastPeriod, SlowPeriod) # 返回 EMA 指标 快线、慢线交叉结果

if abs(n) >= EnterPeriod: # 触发开仓条件二: n 的绝对值 >= 入市观察期(默认2)

opAmount = round(float(initAccount.Stocks) * float(PositionRatio), 3) # 账户币数 × 仓位比例

if n > 0: # EMA 快线上穿慢线,多头信号,买入

obj = ext.Buy(opAmount)

else: # EMA 快线下穿慢线,空头信号,卖出

obj = ext.Sell(opAmount)

if obj: # 如果 obj 不为 None,即已开仓

opAmount = obj['amount']

if n > 0: # 如果为多头仓位

state = PD_LONG # 将状态变量改为 多头标志

else: # 否则为空头仓位

state = PD_SHORT # 将状态变量改为 空头标志

Log("开仓详情", obj, "交叉周期", n) # 输出开仓信息

else: # 非空闲状态,检测平仓条件并处理之

n = ext.Cross(ExitFastPeriod, ExitSlowPeriod)

# 如果 n >= 离市观察期,当 EMA快线下穿慢线并持有多头仓位 或 EMA快线上穿慢线并持有空头仓位 时,触发离市

if abs(n) >= ExitFastPeriod and ((state == PD_LONG and n < 0) or (state == PD_SHORT and n > 0)):

if state == PD_LONG: # 平多头仓位

ext.Sell(opAmount)

else: # 平空头仓位

ext.Buy(opAmount)

state = const.STATE_IDLE # 返回空闲状态

nowAccount = ext.GetAccount()

LogProfit(nowAccount.Balance - initAccount.Balance, '钱', nowAccount.Balance, '币', nowAccount.Stocks, '平仓详情:', obj, '交叉周期', n)

Sleep(Interval * 1000);

更多内容

phoenix7978 这个代码根本运行不了,直接就报错,请看看,如何修复一下

不是我干的 学习了

小小梦 支持 ^^

小小梦 这个 是一个 用户 发的 帖子, 这个代码我看了下, 使用了 python 版的 数字货币交易类库 , 还有一些 参数 要添加到策略 上,比如 FastPeriod,SlowPeriod 这些是 策略 界面参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值