commit
This commit is contained in:
19
prac.py
19
prac.py
@@ -11,7 +11,7 @@ team_name = "HanyangFloorFunction"
|
|||||||
# ==================== 설정 ====================
|
# ==================== 설정 ====================
|
||||||
ORDER_SIZE = 2
|
ORDER_SIZE = 2
|
||||||
MAX_POS = 20
|
MAX_POS = 20
|
||||||
ARB_THRESHOLD = 40 # 🔥 보수적으로 (중요)
|
ARB_THRESHOLD = 40
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
class Dir(str, Enum):
|
class Dir(str, Enum):
|
||||||
@@ -47,7 +47,7 @@ def main():
|
|||||||
if bid is None or ask is None:
|
if bid is None or ask is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
if ask - bid <= 2: # 🔥 스프레드 너무 좁으면 패스
|
if ask - bid <= 2:
|
||||||
return
|
return
|
||||||
|
|
||||||
pos = positions.get(sym, 0)
|
pos = positions.get(sym, 0)
|
||||||
@@ -113,16 +113,13 @@ def main():
|
|||||||
|
|
||||||
pos = positions.get("XLF", 0)
|
pos = positions.get("XLF", 0)
|
||||||
|
|
||||||
# 🔥 포지션 제한
|
|
||||||
if abs(pos) > 10:
|
if abs(pos) > 10:
|
||||||
return
|
return
|
||||||
|
|
||||||
# 🔥 케이스 1
|
|
||||||
profit1 = xlf_bid * 10 - basket_ask
|
profit1 = xlf_bid * 10 - basket_ask
|
||||||
if profit1 > ARB_THRESHOLD:
|
if profit1 > ARB_THRESHOLD:
|
||||||
exchange.send_add_message_ioc(next_id(), "XLF", Dir.SELL, xlf_bid, 10)
|
exchange.send_add_message_ioc(next_id(), "XLF", Dir.SELL, xlf_bid, 10)
|
||||||
|
|
||||||
# 🔥 케이스 2
|
|
||||||
profit2 = basket_bid - xlf_ask * 10
|
profit2 = basket_bid - xlf_ask * 10
|
||||||
if profit2 > ARB_THRESHOLD:
|
if profit2 > ARB_THRESHOLD:
|
||||||
exchange.send_add_message_ioc(next_id(), "XLF", Dir.BUY, xlf_ask, 10)
|
exchange.send_add_message_ioc(next_id(), "XLF", Dir.BUY, xlf_ask, 10)
|
||||||
@@ -159,7 +156,6 @@ def main():
|
|||||||
|
|
||||||
state.update_bid_ask_price(sym, bid, ask)
|
state.update_bid_ask_price(sym, bid, ask)
|
||||||
|
|
||||||
# 🔥 모든 주문 취소 (핵심)
|
|
||||||
for oid in list(active_orders.keys()):
|
for oid in list(active_orders.keys()):
|
||||||
exchange.send_cancel_message(oid)
|
exchange.send_cancel_message(oid)
|
||||||
del active_orders[oid]
|
del active_orders[oid]
|
||||||
@@ -212,11 +208,20 @@ class ExchangeConnection:
|
|||||||
# ====================
|
# ====================
|
||||||
def parse_arguments():
|
def parse_arguments():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--test", default="prod-like")
|
|
||||||
|
group = parser.add_mutually_exclusive_group(required=True)
|
||||||
|
group.add_argument("--production", action="store_true")
|
||||||
|
group.add_argument("--test", type=str, default="prod-like")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.production:
|
||||||
|
args.exchange_hostname = "production"
|
||||||
|
args.port = 25000
|
||||||
|
else:
|
||||||
args.exchange_hostname = "test-exch-" + team_name
|
args.exchange_hostname = "test-exch-" + team_name
|
||||||
args.port = 22000
|
args.port = 22000
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user