コード例 #1
0
    def __init__(self,
                 loopr,
                 highSlice,
                 initial,
                 lowSlice,
                 price="BA",
                 complete_policy="high",
                 mult=1.0):
        self.looper = loopr
        self.highSlice = highSlice
        self.lowSlice = lowSlice
        self.initial = round(initial * mult)
        self.price = price

        self.highSliceFreq = frequency(self.highSlice)
        self.lowSliceFreq = frequency(self.lowSlice)
        self.initialLow = self.highSliceFreq / self.lowSliceFreq

        self.highLC = None
        self.lowLC = None
        self.complete_policy = complete_policy
        if (not (complete_policy in ["high", "low", "both", "none"])):
            raise ValueError(
                "DualLiveCandles: complete_policy must be either high, low or both"
            )
コード例 #2
0
 def setTrailingSpecShrinker(self, factor=0.9, cfreq=None, shrinker=None):
     if (shrinker is not None):
         self.trailingSpecShrinker = shrinker
     else:
         from myt_support import frequency, TrailSpecShrinker
         if (cfreq is None):
             freq1 = frequency(self.lowSlice) * self.kijunSize
             freq2 = frequency(self.highSlice) * self.tenkanSize
             freq = round(0.5 (freq1 + freq2) if
                          (freq1 > freq2 * 2 or freq2 > freq1 * 2) else
                          (freq2 if (freq2 > freq1) else freq1)) + 60
             self.trailingSpecShrinker = TrailSpecShrinker(freq, factor)
         else:
             freq = round(cfreq * frequency(self.highSlice))
             self.trailingSpecShrinker = TrailSpecShrinker(freq, factor)
コード例 #3
0
    def __init__(self,
                 loopr,
                 slice,
                 initial,
                 price="BA",
                 since=None,
                 require_complete=False,
                 waitMin=0.5,
                 waitMax=60,
                 duration=None,
                 name='nameless'):
        self.slice = slice
        self.looper = loopr
        self.frequency = frequency(slice)
        self.initial = initial
        self.price = price

        self.backlog = []
        self.lastGiven = None
        self.lastTimeGiven = None
        self.require_complete = require_complete
        self.waitMin = waitMin
        self.waitMax = waitMax

        self.timeLimit = None
        self.nextLimit = None
        self.expired = False
        self.since = since
        self.duration = duration
        self.name = name
        self.islive = False
コード例 #4
0
    def weightedFrequencies(self, fibseed=[10, 15]):
        frequencies = sorted(list(
            set(map(lambda s: (frequency(s), s), self.slices))),
                             key=lambda f: -f[0])
        # use some Fibonacci technic to help beef-up the amount of time we scan the past
        fib = list(filter(lambda f: f >= 10, fibseed))

        if (len(fib) < 1): fib.append(10)
        if (len(fib) < 2): fib.append(int(1.5 * fib[-1]))
        while (len(fib) < len(frequencies)):
            fib.append(fib[-2] + fib[-1])

        return list([(frequencies[i][0], frequencies[i][1], fib[i])
                     for i in range(len(fib))])
コード例 #5
0
ファイル: Alfred.py プロジェクト: yml980322037/oanda-musings
    def pause(self, factor=1.05, tick=True):
        if(not self.simulation):

            from myt_support import frequency
            import time
            now = time.time()
            if(self.lastTick is None):
                if(not tick):
                    raise RuntimeError("calling unticked pause on uninitialized heart beat")
                else:
                    self.lastTick = now
                    return

            freq = frequency(self.lowSlice)
            p = (now - lastTick)
            if(p>freq):
                time.sleep(p-freq)
            if(tick):
                self.lastTick = time.now()
コード例 #6
0
ファイル: myq2.py プロジェクト: yml980322037/oanda-musings
    askc = currentCandle.ask.c

    position = "(none)"
    currentProfit = ""
    if (pos1 is not None):
        position = "[BUY]" if (pos1.forBUY) else "[SELL]"
        currentProfit = pos1.quoteProfit(currentCandle)

    print "{} -- {} -- {} (recent close) - RSI:{} -{} ; {}".format(round(deltaTime,1), currentCandle.time[0:19], \
       formatTwoNumberWith("base:{} -- bid:{} -- ask:{}",bidc,askc), rsiLowMaker.RSI, position, currentProfit)
    # print "{} -- {} -- base: {} --  bid: {} -- ask: {} (recent close) - RSI:{}".format(round(deltaTime,1), currentCandle.time[0:15], base, currentCandle.bid.c,currentCandle.ask.c, rsiLowMaker.RSI)


PrintCurrentStats()

loopFrequency = float(frequency(slicing[1]))
flushFrequency = float(frequency(slicing[0]))

lastPush = time.time()
kwargsHigh['count'] = 2
kwargsLow['count'] = 4

loopStart = time.time()
tradeErrorMax = 10
tradeErrorSleep = 600
tradeErrorCount = 0
lastBanner = 1

# v20.errors.V20Timeout

while (True):