Beispiel #1
0
def FilDelta(n_clicks, value1, lid, children):
    if (n_clicks != None) & (value1 != None) & (lid != None) & (children !=
                                                                None):
        optionsInfo_C = pd.DataFrame(
            json.loads(json.loads(children)['optionsInfo_C']))
        optionsInfo_P = pd.DataFrame(
            json.loads(json.loads(children)['optionsInfo_P']))
        optionsInfo = pd.DataFrame(
            json.loads(json.loads(children)['optionsInfo']))

        optionsInfo = optionsInfo.sort_values('STRIKE_PRC')
        optionsInfo_C = optionsInfo_C.sort_values('STRIKE_PRC')
        optionsInfo_P = optionsInfo_P.sort_values('STRIKE_PRC')

        optionsInfo.index = range(len(optionsInfo))
        optionsInfo_C.index = range(len(optionsInfo_C))
        optionsInfo_P.index = range(len(optionsInfo_P))

        # lldate=list(set(optionsInfo.EXPIR_DATE.values))
        # lldate.sort()
        lid.sort()
        lldate = lid
        Selec_C = Func.DeltaStreikFilter(optionsInfo_C, lldate, value1)
        Selec_P = Func.DeltaStreikFilter(optionsInfo_P, lldate, value1)

        callRIC = pd.DataFrame(Selec_C).T
        callRIC.columns = lldate

        call = pd.DataFrame([
            optionsInfo[optionsInfo.Instrument.isin(
                Selec_C[i])].STRIKE_PRC.values for i in range(len(Selec_C))
        ]).T
        call.columns = lldate

        putRIC = pd.DataFrame(Selec_P).T
        putRIC.columns = lldate
        put = pd.DataFrame([
            optionsInfo[optionsInfo.Instrument.isin(
                Selec_P[i])].STRIKE_PRC.values for i in range(len(Selec_P))
        ]).T
        put.columns = lldate
        RE = {
            "callRIC": callRIC.to_json(),
            "call": call.to_json(),
            "putRIC": putRIC.to_json(),
            "put": put.to_json(),
        }

        return (json.dumps(RE))
    else:
        return (None)