量化交易三零战法 (量化交易python公式)

首先,我们需要导入easytrader库和相关的模块,并创建一个use函数用于选择券商。这里使用的是新浪模拟交易平台。

量化交易python公式,量化交易python多久能学会

下面是一个用 easytrader库实现的红三兵的一个简单交易策略示例。

import easytrader

import time

import datetime

def use(name):

if name == 'ths':

return easytrader.use('ths')

if name == 'ht':

return easytrader.use('ht')

if name == 'xq':

return easytrader.use('xq')

if name == 'gf':

return easytrader.use('gf')

if name == 'yh':

return easytrader.use('yh')

if name == 'sina':

return easytrader.use('sina')

raise ValueError('unknown trader')

def __init__(self, symbol):

self.user = use('sina')

self.symbol = symbol

self.bars = []

self.bar_interval = 60 # bar的时间间隔,单位秒

self.pre_close_price = 0 # 当前交易日的昨收价

def handle_bar(self, bar):

# 判断当前时间是否在交易时间段内

# 早上9:30之前和下午3点之后,我们不进行交易

now = datetime.datetime.now()

if now < now.replace(hour=9, minute=25, second=0, microsecond=0):

return

if now > now.replace(hour=14, minute=57, second=0, microsecond=0):

return

# 更新历史数据

self.bars.append(bar)

# 获取当前持仓信息

position = self.user.position[self.symbol]

# 如果当前没有持仓,则判断是否需要开仓

if position['总持仓'] == 0:

# 如果最新的3个bar都是阳线,且第2个bar的收盘价高于第1个bar的收盘价,第3个bar的收盘价高于第2个bar的收盘价

if self.bars[-1]['close'] > self.bars[-1]['open'] and self.bars[-2]['close'] > self.bars[-2]['open'] and self.bars[-3]['close'] > self.bars[-3]['open'] \

and self.bars[-2]['close'] > self.bars[-3]['close'] and self.bars[-1]['close'] > self.bars[-2]['close']:

# 买入

order_price = self.bars[-1]['close']

self.user.buy(self.symbol, price=order_price, amount=100)

# 设置止损价和止盈价

stop_loss_price = order_price * 0.98

take_profit_price = order_price * 1.02

self.user.set_order_direction('sell')

self.user.set_stop_loss(self.symbol, price=stop_loss_price, amount=100)

self.user.set_take_profit(self.symbol, price=take_profit_price, amount=100)

# 如果已经持仓了,则更新止损价和止盈价

else:

if position['浮动盈亏'] < 0:

# 如果当前浮动亏损超过5%,则平仓止损

if abs(position['浮动盈亏']/position['成本价']) > 0.05:

self.user.sell(self.symbol, price=self.bars[-1]['close'], amount=position['总持仓'])

return

# 更新止损价

stop_loss_price = self.pre_close_price * 0.98

self.user.set_order_direction('sell')

self.user.adjust_stop_loss(self.symbol, price=stop_loss_price)

# 更新止盈价

take_profit_price = position['成本价'] * 1.02

self.user.set_take_profit(self.symbol, price=take_profit_price, amount=position['可卖数量'])

# 更新当日昨收价

if len(self.bars) == 1:

self.pre_close_price = bar['close']

import easyquotation

def main():

stock_code = '600000'

trader = RedThreeSoldiers(stock_code)

quotation = easyquotation.use('sina')

while True:

try:

bar = quotation.stocks(stock_code)[stock_code]

trader.handle_bar(bar)

time.sleep(trader.bar_interval)

except KeyboardInterrupt:

break

except Exception as e:

print(f"Error: {e}")

if __name__ == '__main__':

main()

量化交易python公式,量化交易python多久能学会

您可以将股票代码修改为任何您感兴趣的代码进行实际交易,但这里代码只是个示范引导学习和交流。当然,在实际交易时,请务必审慎考虑风险并设置合理的止损和止盈价。

量化交易python公式,量化交易python多久能学会