准时下班系列_Excel合集之第2集—VBA填充百万行公式,怎么写最快?

Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉,祝大家一切安好!

作为VBA课程的答疑老师,有个同学问了我一个很值得一写的问题:

文字总结一下问题:这位同学的表格有15万行数据,使用VBA循环给表格添加公式,程序执行时Excel软件会卡住很久。

我提供了两种解决思路:

1. 循环前将Excel计算模式改成手动计算

2. 放弃循环填充方式,改用公式自动填充方式实现

接下来用实际案例来测试各种优化方案的执行效率:

  • 首先测一下最简单直白的循环实现方案

如上图所示:自动计算模式下使用循环填充15万行SUM求和公式,耗时4m56s;

    <
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要确定期货品种、买入时间、买入数量等参数。假设我们选择了两个期货品种,分别为黄金(Gold)和银(Silver),每个品种买入数量为10手,买入时间为每个交易日的开盘价。 接下来,我们需要使用Python编代码实现该策略。以下是一个简单的示例: ```python import time import datetime import pandas as pd from kiteconnect import KiteConnect # 初始化KiteConnect客户端 kite = KiteConnect(api_key="your_api_key", access_token="your_access_token") # 定义期货品种和买入数量 symbols = ["GOLDM21JUNFUT", "SILVERM21JUNFUT"] quantity = 10 # 获取当天交易日的开盘价 today = datetime.date.today().strftime("%Y-%m-%d") ohlc = kite.ohlc(symbols) open_prices = {symbol: ohlc[symbol]["ohlc"]["open"] for symbol in symbols} # 计算需要买入的总金额 total_amount = sum([quantity * open_prices[symbol] for symbol in symbols]) # 检查账户余额是否充足 balance = kite.margins()["equity"]["available"] if balance < total_amount: print("账户余额不足") exit() # 下单买入期货品种 for symbol in symbols: order_id = kite.place_order( variety=kite.VARIETY_REGULAR, exchange=kite.EXCHANGE_MCX, tradingsymbol=symbol, transaction_type=kite.TRANSACTION_TYPE_BUY, quantity=quantity, order_type=kite.ORDER_TYPE_MARKET, product=kite.PRODUCT_MIS, validity=kite.VALIDITY_DAY, )["order_id"] print(f"下单买入 {symbol},订单号为 {order_id}") # 等待下单完成 time.sleep(5) # 获取当前持仓 positions = kite.positions()["net"] for position in positions: if position["tradingsymbol"] in symbols: print(f"当前持有 {position['tradingsymbol']},仓位为 {position['quantity']}") ``` 需要注意的是,该示例仅供参考,实际使用时还需要根据实际情况进修改和完善。同时,在实际交易中,还需要考虑风险管理等因素。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值