我有一个小程序,我用于算法股票交易.代码必须在我的8核桌面计算机上循环大约192万亿次.我想租用一台64核机器来运行它,但这不符合成本效益.
这只是代码.但for循环必须在每个要计算的条上循环(大约180万),然后循环检查匹配的列表大约是800k项.
我现在能想到加速它的唯一方法是删除匹配的项目,因为它只发生一次(DateTime).
有没有其他人有办法加快这段代码的速度?这需要我的桌面野兽大约45个小时来完成程序的一次迭代.
基本上我正在做的是计算每个条形图,寻找当前条形DateTime是否与我手工创建的CSV文件中的DateTime相匹配.然后从列表对象中,我抓住交易方向并设置一个bool来占据一个位置.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using PowerLanguage.Function;
using ATCenterProxy.interop;
using System.IO;
using System.IO.Compression;
namespace PowerLanguage.Strategy
{
public class Ecal_v1 : SignalObject
{
public List<Trades> tradeList = new List<Trades>();
public List<string> csvList = new List<string>();
public bool exitOn24 = false;
public string ecalPath = @"C:\Users\Skynet\OneDrive\Trading\Economic Calendars\backtest1.csv";
PowerLanguage.Indicator.Bollinger_Bands bb;
public Ecal_v1(object _ctx):base(_ctx){}
//[Input]
//public bool exitOn24 { get; set; }
[Input]
public double bbTopOffset { get; set; }
775
[Input]
public double bbBotOffset { …Run Code Online (Sandbox Code Playgroud)