Author Topic: stakemachine  (Read 2996 times)

0 Members and 1 Guest are viewing this topic.

Offline Methodise

BTS: methodise

Offline Methodise

It seems much has changed with StakeMachine.

And OpenSSL compatibility is a pain point presently.
BTS: methodise

Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
Hello All
Looking at the last post I should clarify ... I tried running with my test account on the public testnet wss://node.testnet.bitshares.eu as well as the "test" witness node I set up  for myself witness_url: "ws://104.196.5.69:8090".
With my "test" witness I used as test accounts "makerwall" (a new account created for testing stakemachine) and the "nathan" account that is used during the "make your own witness" walkthrough.
Both had their accounts added to active and owner permissions via the webwallet with plenty of assets and lifetime membership.
If I changed the WIF key entry in the config.yml file from the key in the "active permissions" to the one from "owner permissions" I get the return error wifNotActive so I am confident I used the correct WIF ( active permissions )
  File "/usr/local/lib/python3.4/dist-packages/graphenelib-0.4.4-py3.4.egg/grapheneexchange/exchange.py", line 218, in __init__
grapheneexchange.exchange.WifNotActive

Should I be using the cli-wallet command line program to set up these test accounts instead of the web wallet or light wallet?
I wouldn't think that would make a difference and both makerwall and nathan can trade on my "test" witness node manually and an account aab-12345 on the public testnet so I am not sure what permissions are required here.

Regards and thanks again for any assistance ... John

Private key viewer active permissions makerwall

PUBLIC KEY
GPH6rZGEFVeYQ74hFCqSea58q2GSfuFKQ6FsG5ikinWtSvcYsp95E
PRIVATE KEY (WIF - WALLET IMPORT FORMAT)
5JEwbb4kxdRvo6D3EX73ztQiGpDUeQYXWnKHrgutnmP8w7H1fXa (hide)

BRAINKEY POSITION
6

Private key viewer owner permissions makerwall

PUBLIC KEY
GPH56N4qftvsG2SY2av9V4bpAUXTwjXknsGgRFj9gvq7Xf2ALgw32
PRIVATE KEY (WIF - WALLET IMPORT FORMAT)
5JNfhKTzPRCheSghMHhCkng3UtqELGiF4BEvbWPDY25ANyLySBR (hide)

BRAINKEY POSITION
5

Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
Wow had a look at http://docs.pybitshares.com/en/latest/ ... Looks very extensive .. I will definitely give it a try long term .. but meanwhile stakemachine seems to be working but am getting an authorisation error.
I am not sure what authorisation its looking for since I made an account for it and gave it owner and active permissions for the bot. I turned off "safe mode" and the account "makerwall" has 10000 BTS and 10000 BTC in its account. This all may be wrong and it may just use "nathan" as thats the account and key in the config.yml file but when I originaly got the "missing required active authority" message I just tried adding permissions to the account.
I used accounts "nathan" "id":"1.2.17" and also added permissions for "makerwall" "id":""1.2.21"

I am thinking this is a permissions problem with my account setup but I cant really see where?
Just learning one step at a time so any help is greatly appreciated.

Cheers John

vagrant@vagrant-ubuntu-trusty-64:~/stakemachine$ stakemachine -c configGU1.yml once
2017-03-31 03:11:30,346 - stakemachine - INFO - Configuration: {
    "bots": {
        "makerwall": {
            "only_sell": false,
            "only_buy": false,
            "bot": "MakerSellBuyWalls",
            "target_price_offset_percentage": 1,
            "volume_percentage": 50,
            "target_price": "last",
            "markets": [
                "BTC:BTS"
            ],
            "symmetric_sides": true,
            "spread_percentage": 5,
            "amount": {
                "type": "absolute",
                "amounts": {
                    "BTS": 2,
                    "BTC": 2
                }
            },
            "module": "stakemachine.strategies.maker"
        }
    },
    "account": "nathan",
    "market_separator": ":",
    "reserves": {
        "BTS": 1000,
        "BTC": 1000
    },
    "safe_mode": false,
    "prefix": "BTC",
    "witness_url": "ws://192.168.0.18:8090"
}
2017-03-31 03:11:30,981 - stakemachine.bot - INFO - Executing bot makerwall
2017-03-31 03:11:31,023 - stakemachine.strategies.basestrategy - INFO -  - Selling 2.000000 BTC for 20.500000 BTS @10.250000 BTS/BTC
2017-03-31 03:11:31,997 - stakemachine.strategies.basestrategy - CRITICAL - An error occured while trying to sell: 3030001 tx_missing_active_auth: missing required active authority
Missing Active Authority 1.2.17
    {"id":"1.2.17","auth":{"weight_threshold":1,"account_auths":[["1.2.17",1],["1.2.21",1]],"key_auths":[["GPH6rZGEFVeYQ74hFCqSea58q2GSfuFKQ6FsG5ikinWtSvcYsp95E",1],["GPH6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",1]],"address_auths":[]},"owner":{"weight_threshold":1,"account_auths":[["1.2.17",1],["1.2.21",1]],"key_auths":[["GPH6rZGEFVeYQ74hFCqSea58q2GSfuFKQ6FsG5ikinWtSvcYsp95E",1],["GPH6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",1]],"address_auths":[]}}
    th_a  transaction.cpp:282 verify_authority

    {"ops":[[1,{"fee":{"amount":500000,"asset_id":"1.3.0"},"seller":"1.2.17","amount_to_sell":{"amount":20000,"asset_id":"1.3.4"},"min_to_receive":{"amount":205000,"asset_id":"1.3.2"},"expiration":"2017-03-31T16:11:31","fill_or_kill":false,"extensions":[]}]],"sigs":["GPH72L4MQk2wmcPQazPyUf5umjd7pVC1LXZtRhx8DnCKaJ7Hdv7cN"]}
    th_a  transaction.cpp:297 verify_authority





Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
OOPs forgot to say I will try python-graphenelib **BELOW** 0.5.0 and see what happens then.
I will use the latest github clone and leave the code as is with the above Library.
If its still failing I will experiment with judiciously changing a little code ( blindfolded perhaps :-) one line or character at a time.

Cheers John
Since you are learning python now, you may as well write your own quick bot using pybitshares. It's really easy: http://docs.pybitshares.com/en/latest/
don't waste any of your time on python-graphenelib

Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
OOPs forgot to say I will try python-graphenelib **BELOW** 0.5.0 and see what happens then.
I will use the latest github clone and leave the code as is with the above Library.
If its still failing I will experiment with judiciously changing a little code ( blindfolded perhaps :-) one line or character at a time.

Cheers John

Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
Many Thank Xeroc .. and Permie
I did notice the recent work by Alt on  https://btsbots.com/  and it looks good but with a quick runthrough for my immediate testing and future trading  stakemachine seems to give finer control BUT you need to know what Python is doing :-\
That said I did a quick look for python videos on youtube using search terms "python tutes bitshares"  and the first 3 were [BitShares] Python Live Coding Parts I , 2 and 3 then some 56 videos on Python 3.4 Programming Tutorials.

I have gone through Parts 1 and 2 and will look at 3 later today after working on SQL stuff I need to do for my day job but the very fact that there are 56  Python 3.4 Programming Tutorials from thenewboston56 shows its got a lot of bells and whistles ... probably much more than I can handle.

I am glad I stumbled on the Bitshares Python ones as they are a good runthrough on Bitshares as well as Python.

Many Thanks again
Regards John

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
I'm not sure if this is appropriate or what you're looking for but https://btsbots.com/ works as an adroid app or in the webbrowser

I don't mean to steal your thunder Xeroc!
No worries .. :)

Offline Permie

  • Hero Member
  • *****
  • Posts: 606
  • BitShares is the mycelium of the financial-earth
    • View Profile
  • BitShares: krimduss
I'm not sure if this is appropriate or what you're looking for but https://btsbots.com/ works as an adroid app or in the webbrowser

I don't mean to steal your thunder Xeroc!
JonnyBitcoin votes for liquidity and simplicity. Make him your proxy?
BTSDEX.COM

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
stakemachine has been unmaintained for some time ... you will need to install python-graphenelib **BELOW** 0.5.0
Lot of stuff has changed since I wrote stakemachine ... give me some time to refractor it to properly work with pybitshares which is now my main focus of development

Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
Ok although I don't know Python I assumed the error  on line 255 was the colon .. but then how it could have worked for others I have no idea .. ( if that is the case ) so nothing ventured I removed the colon and reinstalled the package.
Now I get a error on line 221 BUT it seems to be running the bot MakerWall2 which is perhaps more than it was.

I will look at the github issues section for stakemachine and see if I am missing anything .. but any help here is greatly appreciated .. I am a DBA not a Python person .. Zero experience in it.

Regards John

}
2017-03-29 07:17:47,779 - stakemachine.bot - INFO - Executing bot MakerWall2
Traceback (most recent call last):
  File "/usr/local/bin/stakemachine", line 9, in <module>
    load_entry_point('stakemachine==0.0.2', 'console_scripts', 'stakemachine')()
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/__main__.py", line 142, in main
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/bot.py", line 137, in once
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/strategies/maker.py", line 221, in place
AttributeError: 'NoneType' object has no attribute 'get'


Offline j-v-h-silver

  • Newbie
  • *
  • Posts: 15
    • View Profile
Hello .. trying out the trading bot stakemachine by Xeroc ( many thanks for the work put in there ) I have it installed but when running against a test node ( before trying it out on the real exchange ) it fails at one line. Running on Ubuntu 14.04.5 LTS (Trusty Tahr) python3 in virtualenvs to make sure there are no Python version problems. Invalid syntax at   File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/strategies/maker.py", line 255
    placed_sell = self.sell(m, sell_price, sell_amount, returnID=True):

Any help greatly appreciated
John

Traceback (most recent call last):
  File "/usr/local/bin/stakemachine", line 9, in <module>
    load_entry_point('stakemachine==0.0.2', 'console_scripts', 'stakemachine')()
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/__main__.py", line 137, in main
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/bot.py", line 108, in init
  File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2222, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 2164, in _find_spec
  File "<frozen importlib._bootstrap>", line 1940, in find_spec
  File "<frozen importlib._bootstrap>", line 1916, in _get_spec
  File "<frozen importlib._bootstrap>", line 1897, in _legacy_get_spec
  File "<frozen importlib._bootstrap>", line 863, in spec_from_loader
  File "<frozen importlib._bootstrap>", line 904, in spec_from_file_location
  File "/usr/local/lib/python3.4/dist-packages/stakemachine-0.0.2-py3.4.egg/stakemachine/strategies/maker.py", line 255
    placed_sell = self.sell(m, sell_price, sell_amount, returnID=True):
                                                                      ^
SyntaxError: invalid syntax