public void update() { foreach (var keyVal in m_strategies) { OkexStrategy s = keyVal.Value; if (s != null) { s.update(); } } }
public void runStrategy(string strategyFile) { string str = System.IO.File.ReadAllText(strategyFile); JObject jo = (JObject)JsonConvert.DeserializeObject(str); string type = (string)jo["StrategyType"]; string info = jo["StrategyInfo"].ToString(); OkexStrategy s = generateStrategy(type, info); if (s != null) { m_strategies.Add(strategyFile, s); } }
public OkexStrategy generateStrategy(string type, string info) { OkexStrategy s = null; if (type == "TPByBasis") { JObject jo = (JObject)JsonConvert.DeserializeObject(info); string strInst = (string)jo["Instrument"]; OkexFutureInstrumentType fi = strInstrumentMap[strInst]; string strSC = (string)jo["SpotContract"]; OkexFutureContractType sc = strContractMap[strSC]; string strFC = (string)jo["ForwardContract"]; OkexFutureContractType fc = strContractMap[strFC]; string strDir = (string)jo["Direction"]; OkexFutureTradeDirectionType dir = OkexFutureTradeDirectionType.FTD_Sell; if (strDir.Equals("buy", StringComparison.OrdinalIgnoreCase)) { dir = OkexFutureTradeDirectionType.FTD_Buy; } else if (strDir.Equals("sell", StringComparison.OrdinalIgnoreCase)) { dir = OkexFutureTradeDirectionType.FTD_Sell; } OkexBasisCalcType bc = OkexBasisCalcType.BC_Ratio; string strType = (string)jo["Type"]; if (strType.Equals("ratio", StringComparison.OrdinalIgnoreCase)) { bc = OkexBasisCalcType.BC_Ratio; } else if (strType.Equals("diff", StringComparison.OrdinalIgnoreCase)) { bc = OkexBasisCalcType.BC_Diff; } s = new OkexTransferPositionByBasis(fi, sc, fc, bc, dir); //double boardLot = (double)jo["BoardLot"]; double basis = (double)jo["Basis"]; double safe = (double)jo["Safe"]; double limit = (double)jo["Limit"]; uint count = (uint)jo["Count"]; double param = (double)jo["Param"]; ((OkexTransferPositionByBasis)s).init(basis, safe, limit, count, param); } return(s); }