commit
This commit is contained in:
@@ -46,7 +46,7 @@ def main():
|
||||
# pick? Also, you will need to send more orders over time.
|
||||
# --- 설정 ---
|
||||
BOND_FAIR_VALUE = 1000 # BOND fair value (고정)
|
||||
BOND_ORDER_SIZE = 50 # BOND 주문당 수량 (한도 초과 방지)
|
||||
BOND_ORDER_SIZE = 50 # BOND 주문당 수량
|
||||
XLF_CONVERSION_FEE = 100 # XLF 변환 비용
|
||||
VALE_CONVERSION_FEE = 10 # VALE 변환 비용
|
||||
VALE_ARB_SIZE = 10 # VALE 차익거래 단위
|
||||
@@ -74,7 +74,6 @@ def main():
|
||||
active_orders = {} # BOND 전용 {order_id: {"dir": ..., "price": ...}}
|
||||
|
||||
last_refresh = time.time()
|
||||
vale_last_print = time.time()
|
||||
|
||||
def next_id():
|
||||
return om.next_order()
|
||||
@@ -161,6 +160,8 @@ def main():
|
||||
profit1 = xlf_bid * 10 - basket_ask - XLF_CONVERSION_FEE
|
||||
if profit1 > 0 and om.check_pos_limit("XLF"):
|
||||
print(f" XLF 차익(바스켓→XLF) 시작, 예상수익:{profit1}")
|
||||
# BOND 주문 먼저 취소 (XLF용 BOND 매수가 기존 매도에 상쇄되지 않도록)
|
||||
cancel_all_bond_orders()
|
||||
xlf_state = "BUYING_BASKET"
|
||||
xlf_direction = "BASKET_TO_XLF"
|
||||
xlf_arb_size = 10
|
||||
@@ -175,6 +176,7 @@ def main():
|
||||
profit2 = basket_bid - xlf_ask * 10 - XLF_CONVERSION_FEE
|
||||
if profit2 > 0 and om.check_pos_limit("XLF"):
|
||||
print(f" XLF 차익(XLF→바스켓) 시작, 예상수익:{profit2}")
|
||||
cancel_all_bond_orders()
|
||||
xlf_state = "BUYING_XLF"
|
||||
xlf_direction = "XLF_TO_BASKET"
|
||||
xlf_arb_size = 10
|
||||
@@ -318,6 +320,7 @@ def main():
|
||||
xlf_state = "IDLE"
|
||||
xlf_pending.clear()
|
||||
xlf_direction = None
|
||||
place_bond_orders()
|
||||
if oid in vale_pending:
|
||||
print(" VALE 주문 reject → IDLE 복귀")
|
||||
vale_state = "IDLE"
|
||||
@@ -325,7 +328,7 @@ def main():
|
||||
vale_direction = None
|
||||
|
||||
elif message["type"] == "ack":
|
||||
# XLF 변환 ack 처리 - om.positions 직접 수정
|
||||
# XLF 변환 ack 처리
|
||||
if xlf_state == "CONVERTING":
|
||||
print(" XLF 변환 완료 → 매도 시작")
|
||||
if xlf_direction == "BASKET_TO_XLF":
|
||||
@@ -356,7 +359,7 @@ def main():
|
||||
)
|
||||
xlf_pending[oid] = qty
|
||||
|
||||
# VALE 변환 ack 처리 - om.positions 직접 수정
|
||||
# VALE 변환 ack 처리
|
||||
elif vale_state == "CONVERTING":
|
||||
print(" VALE 변환 완료 → 매도 시작")
|
||||
if vale_direction == "VALBZ_TO_VALE":
|
||||
@@ -406,6 +409,8 @@ def main():
|
||||
print(" XLF 차익거래 완료 → IDLE 복귀")
|
||||
xlf_state = "IDLE"
|
||||
xlf_direction = None
|
||||
# XLF 완료 후 BOND 주문 재배치
|
||||
place_bond_orders()
|
||||
|
||||
# VALE state machine 체결 처리
|
||||
handle_vale_fill(oid, sym, dir_, qty)
|
||||
|
||||
Reference in New Issue
Block a user