Пример #1
0
 public OkexTransferPositionByBasis(OkexFutureInstrumentType inst, OkexFutureContractType sc, OkexFutureContractType fc,
                                    OkexBasisCalcType type, OkexFutureTradeDirectionType tradeDir)
 {
     m_instrument      = inst;
     m_basisCalcType   = type;
     m_spotContract    = sc;
     m_forwardContract = fc;
     m_tradeDirection  = tradeDir;
 }
Пример #2
0
        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);
        }