def isABuyPoint(macd, modifiedSignalLine, upPoint, t):
    iup = macd.index.get_loc(upPoint)
    i = macd.index.get_loc(t)
    if i <= iup and isAnUpCrossingPoint(macd, modifiedSignalLine, t):
        return True
    else:
        return False
Ejemplo n.º 2
0
def getModifiedSignalLine(macd, signalLine, K):
    periods = getTradingPeriods(macd, signalLine)
    modifiedSignalLine = pd.Series(float('nan'), index=signalLine.index)

    for period in periods:
        avmin = getAvailablyMinimumPointsInAPeriod(macd, signalLine, period)
        avmax = getAvailablyMaximumPointsInAPeriod(macd, signalLine, period)
        dmin = getMinimumCertainties(macd, signalLine, period)
        dmax = getMaximumCertainties(macd, signalLine, period)
        upCrossingPoint = None
        for t in period:
            if upCrossingPoint is None and isAnUpCrossingPoint(
                    macd, signalLine, t):
                upCrossingPoint = t

            if upCrossingPoint is None:
                hMinimum = macd[avmin[t]] - signalLine[avmin[t]]
                modifiedSignalLine[t] = signalLine[t] + hMinimum * (dmin[t]**K)
            elif t == period[-1]:
                modifiedSignalLine[t] = signalLine[t]
            else:
                hMaximum = macd[avmax[t]] - signalLine[avmax[t]]
                modifiedSignalLine[t] = signalLine[t] + hMaximum * (dmax[t]**K)

    return modifiedSignalLine
def isABuyPoint(macd, modifiedSignalLine, upPoint, t):
    iup = macd.index.get_loc(upPoint)
    i = macd.index.get_loc(t)
    if i <= iup and isAnUpCrossingPoint(macd, modifiedSignalLine, t):
        return True
    else:
        return False
Ejemplo n.º 4
0
def isABuyPoint(macd, signalLine, t):
    i = macd.index.get_loc(t)
    if (i >=2 and 
        macd.ix[i] > signalLine.ix[i] and
        macd.ix[i-1] > signalLine.ix[i-1] and
        isAnUpCrossingPoint(macd, signalLine, macd.index[i-2])):
        return True
    else:
        return False
Ejemplo n.º 5
0
def isABuyPoint(pricesData, macd, signalLine, t):
    i = macd.index.get_loc(t)
    if (i >= 2 and macd.ix[i] > signalLine.ix[i]
            and macd.ix[i - 1] > signalLine.ix[i - 1]
            and isAnUpCrossingPoint(macd, signalLine, macd.index[i - 2]) and
        (macd.ix[i] - signalLine.ix[i]) / float(pricesData.ix[i]) >= 0.005):
        return True
    else:
        return False
def isABuyPoint(macd,modifiedSignalLineWithK , t):
    i = macd.index.get_loc(t)
    if (i >=2 and 
        macd.ix[i] > modifiedSignalLineWithK.ix[i] and
        macd.ix[i-1] > modifiedSignalLineWithK.ix[i-1] and
        isAnUpCrossingPoint(macd, modifiedSignalLineWithK, macd.index[i-2])):
        return True
    else:
        return False
def isABuyPoint(macd, modifiedSignalLineWithK, t):
    i = macd.index.get_loc(t)
    if (i >= 2 and macd.ix[i] > modifiedSignalLineWithK.ix[i]
            and macd.ix[i - 1] > modifiedSignalLineWithK.ix[i - 1]
            and isAnUpCrossingPoint(macd, modifiedSignalLineWithK,
                                    macd.index[i - 2])):
        return True
    else:
        return False
Ejemplo n.º 8
0
def getAvailablyMinimumPointsInAPeriod(macd, signalLine, period):
    avialablyMinimumPoints = pd.Series('', index=period)
    for t in period:
        if isAnUpCrossingPoint(macd, signalLine, t):
            avialablyMinimumPoints[t] = macd[period[0]:t].idxmin()
            break
        
        avialablyMinimumPoints[t] = macd[period[0]:t].idxmin()
    
    return avialablyMinimumPoints
def isABuyPoint(pricesData, macd, modifiedSignalLineWithK, t):
    i = macd.index.get_loc(t)
    if (i >=2 and 
        macd.ix[i] > modifiedSignalLineWithK.ix[i] and
        macd.ix[i-1] > modifiedSignalLineWithK.ix[i-1] and
        isAnUpCrossingPoint(macd, modifiedSignalLineWithK, macd.index[i-2]) and
        (macd.ix[i] - modifiedSignalLineWithK.ix[i])/float(pricesData.ix[i]) >= 0.005):
        return True
    else:
        return False
Ejemplo n.º 10
0
def getAvailablyMinimumPointsInAPeriod(macd, signalLine, period):
    avialablyMinimumPoints = pd.Series('', index=period)
    for t in period:
        if isAnUpCrossingPoint(macd, signalLine, t):
            avialablyMinimumPoints[t] = macd[period[0]:t].idxmin()
            break

        avialablyMinimumPoints[t] = macd[period[0]:t].idxmin()

    return avialablyMinimumPoints
Ejemplo n.º 11
0
def getAvailablyMaximumPointsInAPeriod(macd, signalLine, period):
    avialablyMaximumPoints = pd.Series('', index=period)
    upCrossingPoint = None
    for t in period:
        if upCrossingPoint is None and isAnUpCrossingPoint(macd, signalLine, t):
            upCrossingPoint = t
        
        if upCrossingPoint is not None:
            avialablyMaximumPoints[t] = macd[upCrossingPoint:t].idxmax()
    
    return avialablyMaximumPoints
Ejemplo n.º 12
0
def getAvailablyMaximumPointsInAPeriod(macd, signalLine, period):
    avialablyMaximumPoints = pd.Series('', index=period)
    upCrossingPoint = None
    for t in period:
        if upCrossingPoint is None and isAnUpCrossingPoint(
                macd, signalLine, t):
            upCrossingPoint = t

        if upCrossingPoint is not None:
            avialablyMaximumPoints[t] = macd[upCrossingPoint:t].idxmax()

    return avialablyMaximumPoints
Ejemplo n.º 13
0
def getMinimumCertainties(macd, signalLine, period):
    avmin = getAvailablyMinimumPointsInAPeriod(macd, signalLine, period)
    minimumCertainties = pd.Series('', index=period)
    for t in period:
        if isAnUpCrossingPoint(macd, signalLine, t):
            minimumCertainties[t] = 1
            break
        
        hCurrent = macd[t] - signalLine[t]
        hMinimum = macd[avmin[t]] - signalLine[avmin[t]]
        minimumCertainties[t] = 1 - (hCurrent/float(hMinimum)) if hMinimum != 0 else 1
        
    return minimumCertainties
Ejemplo n.º 14
0
def getMinimumCertainties(macd, signalLine, period):
    avmin = getAvailablyMinimumPointsInAPeriod(macd, signalLine, period)
    minimumCertainties = pd.Series('', index=period)
    for t in period:
        if isAnUpCrossingPoint(macd, signalLine, t):
            minimumCertainties[t] = 1
            break

        hCurrent = macd[t] - signalLine[t]
        hMinimum = macd[avmin[t]] - signalLine[avmin[t]]
        minimumCertainties[t] = 1 - (hCurrent /
                                     float(hMinimum)) if hMinimum != 0 else 1

    return minimumCertainties
Ejemplo n.º 15
0
def getMaximumCertainties(macd, signalLine, period):
    avmax = getAvailablyMaximumPointsInAPeriod(macd, signalLine, period)
    maximumCertainties = pd.Series('', index=period)
    upCrossingPoint = None
    for t in period:
        if t == period[-1]:
            maximumCertainties[t] = 1
            break
        
        if upCrossingPoint is None and isAnUpCrossingPoint(macd, signalLine, t):
            upCrossingPoint = t
        
        if upCrossingPoint is not None:
            hCurrent = macd[t] - signalLine[t]
            hMaximum = macd[avmax[t]] - signalLine[avmax[t]]
            maximumCertainties[t] = 1 - (hCurrent/float(hMaximum)) if hMaximum != 0 else 1
        
    return maximumCertainties
Ejemplo n.º 16
0
def getMaximumCertainties(macd, signalLine, period):
    avmax = getAvailablyMaximumPointsInAPeriod(macd, signalLine, period)
    maximumCertainties = pd.Series('', index=period)
    upCrossingPoint = None
    for t in period:
        if t == period[-1]:
            maximumCertainties[t] = 1
            break

        if upCrossingPoint is None and isAnUpCrossingPoint(
                macd, signalLine, t):
            upCrossingPoint = t

        if upCrossingPoint is not None:
            hCurrent = macd[t] - signalLine[t]
            hMaximum = macd[avmax[t]] - signalLine[avmax[t]]
            maximumCertainties[t] = 1 - (
                hCurrent / float(hMaximum)) if hMaximum != 0 else 1

    return maximumCertainties
Ejemplo n.º 17
0
def getModifiedSignalLine(macd, signalLine, K):
    periods = getTradingPeriods(macd, signalLine)
    modifiedSignalLine = pd.Series(float('nan'), index=signalLine.index)

    for period in periods:
        avmin = getAvailablyMinimumPointsInAPeriod(macd, signalLine, period)
        avmax = getAvailablyMaximumPointsInAPeriod(macd, signalLine, period)    
        dmin = getMinimumCertainties(macd, signalLine, period)
        dmax = getMaximumCertainties(macd, signalLine, period)
        upCrossingPoint = None
        for t in period:
            if upCrossingPoint is None and isAnUpCrossingPoint(macd, signalLine, t):
                upCrossingPoint = t
                
            if upCrossingPoint is None:
                hMinimum = macd[avmin[t]] - signalLine[avmin[t]]
                modifiedSignalLine[t] = signalLine[t] + hMinimum*(dmin[t]**K)
            elif t == period[-1]:
                modifiedSignalLine[t] = signalLine[t]
            else:
                hMaximum = macd[avmax[t]] - signalLine[avmax[t]]
                modifiedSignalLine[t] = signalLine[t] + hMaximum*(dmax[t]**K)
      
    return modifiedSignalLine
def isABuyPoint(macd, signalLine, t):
    if isAnUpCrossingPoint(macd, signalLine, t):
        return True
    else:
        return False
def isABuyPoint(macd,modifiedSignalLineWithK, t):
    if isAnUpCrossingPoint(macd, modifiedSignalLineWithK, t):
        return True
    else:
        return False
def isABuyPoint(macd, signalLine, t):
    if isAnUpCrossingPoint(macd, signalLine, t):
        return True
    else:
        return False
def isABuyPoint(macd, modifiedSignalLineWithK, t):
    if isAnUpCrossingPoint(macd, modifiedSignalLineWithK, t):
        return True
    else:
        return False