量化交易/合约交易系统开发策略详细,合约交易/量化交易系统开发(案例设计)及源码
量化交易,又称为自动化交易,英文全称为“Quantitative Trading”,指以机器人替代人为的主观判断,参考海量的历史数据制定交易策略,Reduce the impact of investor sentiment fluctuations and avoid making irrational investment decisions in extreme market frenzy or pessimism.
量化交易主要有三大优势:
1、速度和准确性。定量分析是建立在事先编制好的程式与运算法则之上,当系统侦测到符合交易准则时,便会精确地执行指令。
2、不受人为情绪影响。用计算机程序和编写好的算法来保证一个特定的交易结果,而且这个过程是被自动地、严格地进行的,这样就可以对情绪进行控制,避免过度交易。
3、回测能力。通过对历史行情及交易数据的分析,可以判断该模型在目前行情下的表现。
#coding:utf-8
import os,sys
import pandas as pd
import numpy as np
import math
#写一个趋势跟踪策略量化交易程序
if len(sys.argv)==2:
code=sys.argv[1]
else:
print('usage:python ma20_ma60.py stockcode')
sys.exit(1)
if len(code)!=6:
print('stock code length:6')
sys.exit(2)
df=pd.read_csv(f'{code}.csv')
#计算移动平均线
df['ma20']=df['close'].rolling(window=20).mean()
df['ma60']=df['close'].rolling(window=60).mean()
df=df[df['date']>'2020-01-01']
cost=100000
cash=cost
stock=0
fee=0.0005
for index,row in df.iterrows():
if row['ma20']>row['ma60']and stock==0:
date=row['date']
price=row['close']
stock=math.floor(cash*(1-fee)/price/100)*100
cash=cash-stock*price*(1+fee)
print(f'{date}:cash={cash:.2f},stock={stock}x{price:.2f}')
#如果短期移动平均线下穿长期移动平均线,则卖出
elif row['ma20']<row['ma60']and stock>0:
date=row['date']
price=row['close']
cash=cash+stock*price*(1-fee)
stock=0
print(f'{date}:cash={cash:.2f},stock={stock}x{price:.2f}')
#计算最终收益
price=df.iloc[-1]['close']
profit=cash+stock*price-cost
print(f'profit={profit:.2f},stock={stock}x{price:.2f}')