// #CREATETRADEINFO_ITEMADD public static TradeInfo CreateTradeInfo(clsHITM_TRADEINFO_TB tb) { int type = tb.FP_MASTER_TYP; TradeInfo ti = new UnknownType_TradeInfo(); if (type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.Kospi200_IndexFutures) { ti = new Kospi200FuturesTradeInfo(); } else if (type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.Kospi200_IndexOption_Call || type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.Kospi200_IndexOption_Put) { ti = new Kospi200OptionTradeInfo(); } else if (type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.VanillaIRS) { ti = new VanillaIRSTradeInfo(); } else if (type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.VanillaSwap) { ti = new Vanilla_SwapTradeInfo(); } else if (type == (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.Ftp_DepositLoan) { ti = new Ftp_DepositLoanTradeInfo(); } else { //fi = new Unknown_instrument(); } ti.DAO_ = tb; //fi.baseDAO_ = tb; //fi.loadDetail(tb.INSTRUMENT_ID); return ti; }
public static Kospi200OptionTradeInfo makeKospi200f_tradeInfo(DateTime tradeDate, string availableTradeCD, int quantity, double tradeIndex) { Kospi200OptionTradeInfo ifti = new Kospi200OptionTradeInfo(); Kospi200Index_option index_option = Kospi200Index_option.CreateKOSPI200_Option(tradeDate, availableTradeCD, quantity, tradeIndex); index_option.Index_ = tradeIndex; ifti.Financial_instrument_ = index_option; // index multiplier clsTRADABLE_KRX_INDEXOPTION_TB clstb = new clsTRADABLE_KRX_INDEXOPTION_TB(); clstb.INST_KRX_CD = availableTradeCD; clstb.SelectOwn(); double indexMultiplier = clstb.INDEX_MULTIPLIER; // trade fee //clsITEM_FP_TRADE_FEE_TB clstb_tradeFee = new clsITEM_FP_TRADE_FEE_TB(); //clstb_tradeFee.TRADE_CD = availableTradeCD; //clstb_tradeFee.SelectOwn(); //double tradeFeeRate = clstb_tradeFee.TRADE_FEE; double tradeFeeRate = 0.0015; // 키움꺼임. double strike = index_option.indexOptionDAO_.STRIKE; ifti.DAO_ = new clsHITM_TRADEINFO_TB(); ifti.DAO_.TRADE_ID = IDGenerator.getNewTradeID(TradeInfo.TradeType.Dynamic_Hedge, index_option.InstrumentType_, tradeDate); ifti.DAO_.INSTRUMENT_ID = index_option.indexOptionDAO_.INSTRUMENT_ID; ifti.DAO_.TRADE_DT = tradeDate.ToString("yyyyMMdd"); ifti.DAO_.TRADE_TM = DateTime.Now.ToString("HHmmss"); ifti.DAO_.TRADE_SEQ = IDGenerator.getTradeSeq(tradeDate); ifti.DAO_.TRADE_TYP = Convert.ToInt32(TradeInfo.TradeType.Dynamic_Hedge); ifti.DAO_.FP_MASTER_TYP = index_option.baseDAO_.FP_MASTER_TYP; ifti.DAO_.TRADE_UNIT = Convert.ToInt32(tradeIndex * indexMultiplier); ifti.DAO_.TRADE_MULTIPLIER = indexMultiplier; ifti.DAO_.TRADE_CURR = "KRW"; ifti.DAO_.CURR_RATE = 1.0; ifti.DAO_.TRADE_INDEX = tradeIndex; ifti.DAO_.TRADE_INDEXUNIT = 1.0; ifti.DAO_.TRADE_QNT = quantity; ifti.DAO_.TRADE_NOTIONAL_AMT = Math.Round(Math.Abs(Convert.ToDouble(quantity * strike * indexMultiplier))); //ifti.DAO_.ACCOUNT_AMT = tradeIndex * quantity * indexMultiplier; ifti.DAO_.ACCOUNT_AMT = 0.0; ifti.DAO_.TRADE_FEE = Math.Round(Math.Abs(ifti.DAO_.ACCOUNT_AMT * tradeFeeRate)); ifti.DAO_.TRADE_PL = 0.0; ifti.DAO_.TRADE_FEE_PAYMENT_DT = tradeDate.ToString("yyyyMMdd"); ifti.DAO_.COUNTER_ID = "KRX"; ifti.DAO_.BOOKED_FLAG = 0; return ifti; }