def tick(self):
        self._data.append(self._client.get_ask(self._instrument))
        short_mavg = talib.SMA(np.array(self._data), timeperiod=5)
        long_mavg = talib.SMA(np.array(self._data), timeperiod=25)

        res = True
        if short_mavg[-2] < long_mavg[-2] and short_mavg[-1] > long_mavg[-1]:
            print(datetime.datetime.now(), "Buy signal", self._instrument,
                  self._data[-1])
            res = self.buy()
        elif short_mavg[-2] > long_mavg[-2] and short_mavg[-1] < long_mavg[-1]:
            print(datetime.datetime.now(), "Sell signal", self._instrument,
                  self._data[-1])
            res = self.sell()
        if not res:
            print("Fail to operate position.")
        print("Balance:", self._client.get_balance())

        short_mavg[np.isnan(short_mavg)] = short_mavg[np.isfinite(
            short_mavg)][0]
        long_mavg[np.isnan(long_mavg)] = long_mavg[np.isfinite(long_mavg)][0]
        rc.update_data(
            {
                "close": self._data,
                "short_mavg": short_mavg,
                "long_mavg": long_mavg
            }, True)
    def tick(self):
        self._data.append(self._client.get_ask(self._instrument))
        short_mavg = talib.SMA(np.array(self._data), timeperiod = 5)
        long_mavg = talib.SMA(np.array(self._data), timeperiod = 25)

        res = True
        if short_mavg[-2] < long_mavg[-2] and short_mavg[-1] > long_mavg[-1]:
            print datetime.datetime.now(), "Buy signal", self._instrument, self._data[-1]
            res = self.buy()
        elif short_mavg[-2] > long_mavg[-2] and short_mavg[-1] < long_mavg[-1]:
            print datetime.datetime.now(), "Sell signal", self._instrument, self._data[-1]
            res = self.sell()
        if not res:
            print "Fail to operate position."
        print "Balance:", self._client.get_balance()

        short_mavg[np.isnan(short_mavg)] = short_mavg[np.isfinite(short_mavg)][0]
        long_mavg[np.isnan(long_mavg)] = long_mavg[np.isfinite(long_mavg)][0]
        rc.update_data({"close": self._data,
                        "short_mavg": short_mavg,
                        "long_mavg": long_mavg}, True)
"""
An example plotting time series currency.
"""
import sys
import time
import forexconnect
import lib.login_manager as lm
import lib.realtime_chart as rc

if len(sys.argv) < 2:
    print "Usage: python tick_animation.py instrument(etc. 'EUR/USD')"
    sys.exit()

instrument = sys.argv[1]
username, password, connection = lm.get_login_params()
try:
    client = forexconnect.ForexConnectClient(username,
                                             password,
                                             connection)
except:
    lm.clear_cache()
    sys.exit()
rc.add_data(instrument, [client.get_ask(instrument)] * 100)
rc.init("Real time chart")
while True:
    rc.update_data({instrument: client.get_ask(instrument)})
    time.sleep(1)
示例#4
0
"""
An example plotting time series currency.
"""
import sys
import time
import forexconnect
import lib.login_manager as lm
import lib.realtime_chart as rc

if len(sys.argv) < 2:
    print("Usage: python tick_animation.py instrument(etc. 'EUR/USD')")
    sys.exit()

instrument = sys.argv[1]
username, password, connection = lm.get_login_params()
try:
    client = forexconnect.ForexConnectClient(username, password, connection)
except:
    lm.clear_cache()
    sys.exit()
rc.add_data(instrument, [client.get_ask(instrument)] * 100)
rc.init("Real time chart")
while True:
    rc.update_data({instrument: client.get_ask(instrument)})
    time.sleep(1)