config items

This commit is contained in:
Nicolás Sánchez 2025-01-05 17:38:26 -03:00
parent 1a41c23203
commit ef99063dae
5 changed files with 145 additions and 73 deletions

38
config.json Normal file
View File

@ -0,0 +1,38 @@
{
"exchanges": {
"binance": {
"currency": "USDT",
"minimum_amount_in_trading_account": 1000,
"step_size": 500,
"percentage": 0.5,
"time_between_subscriptions": 3600,
"time_between_redemptions": 0
},
"gateio": {
"currency": "USDT",
"minimum_amount_in_trading_account": 1000,
"step_size": 500,
"percentage": 0.5,
"time_between_subscriptions": 3600,
"time_between_redemptions": 0
},
"kucoin": {
"currency": "USDT",
"minimum_amount_in_trading_account": 1000,
"step_size": 500,
"percentage": 0.5,
"time_between_subscriptions": 3600,
"time_between_redemptions": 0
},
"okx": {
"currency": "USDT",
"minimum_amount_in_trading_account": 1000,
"step_size": 500,
"percentage": 0.5,
"time_between_subscriptions": 3600,
"time_between_redemptions": 0
}
},
"lap_time": 10
}

View File

@ -1,7 +1,7 @@
''' '''
https://github.com/binance/binance-connector-python/blob/master/binance/spot/_simple_earn.py https://github.com/binance/binance-connector-python/blob/master/binance/spot/_simple_earn.py
''' '''
from credentials import get_api_key from credentials import get_api_key
from binance.spot import Spot as Client from binance.spot import Spot as Client
from binance.error import ClientError from binance.error import ClientError

View File

@ -2,7 +2,6 @@
https://www.okx.com/docs-v5/en/#financial-product-simple-earn-flexible https://www.okx.com/docs-v5/en/#financial-product-simple-earn-flexible
https://github.com/okxapi/python-okx/blob/master/okx/Earning.py https://github.com/okxapi/python-okx/blob/master/okx/Earning.py
''' '''
import okx.Earning as Earning import okx.Earning as Earning

110
main.py
View File

@ -3,85 +3,53 @@ from libraries.wrappers import earn_binance
from libraries.wrappers import earn_kucoin from libraries.wrappers import earn_kucoin
from libraries.wrappers import earn_okx from libraries.wrappers import earn_okx
from libraries.wrappers import earn_gateio from libraries.wrappers import earn_gateio
from threading import Thread
import time
import json import json
kucoin = earn_kucoin.kucoin_earn() class earner:
binance = earn_binance.binance_earn() def __init__(self, connector, config):
okx = earn_okx.okx_earn() self.connector = connector
gateio = earn_gateio.gateio_earn() self.currency = config["currency"]
self.minimum_amount_in_trading_account = config["minimum_amount_in_trading_account"]
self.step_size = config["step_size"]
self.percentage = config["percentage"]
self.time_between_subscriptions = config["time_between_subscriptions"]
self.time_between_redemptions = config["time_between_redemptions"]
self.last_subscription = 0
self.last_redemption = 0
def __str__(self):
return f"Earner for {self.connector} with {self.currency} and {self.minimum_amount_in_trading_account} minimum amount in trading account and {self.step_size} step size and {self.percentage} percentage"
def run(self):
print(self)
if __name__=="__main__": if __name__=="__main__":
''' with open("config.json") as f:
Subscribe workflow in Binance: config = json.load(f)
1. Get product id
2. Subscribe
Redeem workflow in Binance connectors = {"binance": earn_binance.binance_earn(),
1. Redeem with the same product id "gateio": earn_gateio.gateio_earn(),
''' "kucoin": earn_kucoin.kucoin_earn(),
#print(binance.get_available_products("USDT")) "okx": earn_okx.okx_earn()}
#print(binance.subscribe_product("USDT001", "10", auto_subscribe=False)) earners = []
#print(binance.get_position("USDT"))
#print(binance.redeem_product("USDT001", amount="10"))
for item in config["exchanges"]:
earners.append(earner(connectors[item], config["exchanges"][item]))
while True:
''' threads = []
Subscribe workflow in Kucoin for item in earners:
1. Get product id threads.append(Thread(target=item.run))
2. Subscribe for item in threads:
item.start()
Redeem workflow in Kucoin for item in threads:
1. Get ORDER id (the order id of the position) item.join()
2. Redeem
''' time.sleep(config["lap_time"])
#print(kucoin.get_available_products("USDT"))
#print(kucoin.subscribe_product("2152", "10"))
#print(kucoin.get_position("USDT"))
#print(kucoin.redeem_product(order_id="2987632", amount="10"))
'''
Subscribe workflow in OKX
1. Transfer funds to funding account
2. Confirm transfer via transfer_id
3. Subscribe
Redeem workflow in OKX
1. Reddem product (with coin, no id is required)
2. Transfer funds to trading account
3. Confirm transfer via transfer_id
'''
#print(okx.get_available_products("USDT"))
#print(okx.transfer_to_funding("USDT","10"))
#print(okx.get_transfer_state("1064667293"))
#print(okx.subscribe_product("USDT", "10"))
#print(okx.get_position("USDT"))
#print(okx.redeem_product("USDT", "10"))
#print(okx.transfer_to_trading("USDT", "10"))
#print(okx.get_transfer_state("1064667720"))
'''
Subscribe workflow in Gate.io
1. Get minimum rate
2. Subscribe product
3. Use get_account to confirm (request returns error?)
Redeem workflow in Gate.io
1. Reddem product
2. Use get_account to confirm (request returns error?)
'''
#print(gateio.get_min_rate("USDT"))
#print(gateio.subscribe_product("USDT", "10", "0.00000452"))
#print(gateio.get_position("USDT"))
#print(gateio.redeem_product("USDT", "10"))
pass

67
notes.txt Normal file
View File

@ -0,0 +1,67 @@
'''
Subscribe workflow in Binance:
1. Get product id
2. Subscribe
Redeem workflow in Binance
1. Redeem with the same product id
'''
#print(binance.get_available_products("USDT"))
#print(binance.subscribe_product("USDT001", "10", auto_subscribe=False))
#print(binance.get_position("USDT"))
#print(binance.redeem_product("USDT001", amount="10"))
'''
Subscribe workflow in Kucoin
1. Get product id
2. Subscribe
Redeem workflow in Kucoin
1. Get ORDER id (the order id of the position)
2. Redeem
'''
#print(kucoin.get_available_products("USDT"))
#print(kucoin.subscribe_product("2152", "10"))
#print(kucoin.get_position("USDT"))
#print(kucoin.redeem_product(order_id="2987632", amount="10"))
'''
Subscribe workflow in OKX
1. Transfer funds to funding account
2. Confirm transfer via transfer_id
3. Subscribe
Redeem workflow in OKX
1. Reddem product (with coin, no id is required)
2. Transfer funds to trading account
3. Confirm transfer via transfer_id
'''
#print(okx.get_available_products("USDT"))
#print(okx.transfer_to_funding("USDT","10"))
#print(okx.get_transfer_state("1064667293"))
#print(okx.subscribe_product("USDT", "10"))
#print(okx.get_position("USDT"))
#print(okx.redeem_product("USDT", "10"))
#print(okx.transfer_to_trading("USDT", "10"))
#print(okx.get_transfer_state("1064667720"))
'''
Subscribe workflow in Gate.io
1. Get minimum rate
2. Subscribe product
3. Use get_account to confirm (request returns error?)
Redeem workflow in Gate.io
1. Reddem product
2. Use get_account to confirm (request returns error?)
'''
#print(gateio.get_min_rate("USDT"))
#print(gateio.subscribe_product("USDT", "10", "0.00000452"))
#print(gateio.get_position("USDT"))
#print(gateio.redeem_product("USDT", "10"))