fixes
This commit is contained in:
@@ -99,13 +99,16 @@ def run_ticker_lifecycle(client, yf_ticker, t212_ticker, tz):
|
|||||||
for attempt in range(3):
|
for attempt in range(3):
|
||||||
try:
|
try:
|
||||||
account_info = client.get_account_info()
|
account_info = client.get_account_info()
|
||||||
virtual_balance = float(os.getenv("VIRTUAL_STARTING_BALANCE", 0))
|
# Trading212 returns totalValue for the account equity
|
||||||
|
actual_balance = float(account_info.get('totalValue', 5000.0))
|
||||||
|
|
||||||
if virtual_balance > 0:
|
# Simulate starting with 250 by subtracting the demo excess (4750)
|
||||||
risk_amount = virtual_balance * 0.01
|
virtual_balance = max(0, actual_balance - 4750.0)
|
||||||
else:
|
|
||||||
available_cash = account_info.get('cash', {}).get('availableToTrade', 1000)
|
# Risk 1% of this adjusted virtual balance
|
||||||
risk_amount = available_cash * 0.01
|
risk_amount = virtual_balance * 0.01
|
||||||
|
|
||||||
|
logger.info(f"Account: {actual_balance:.2f} | Virtual Balance: {virtual_balance:.2f} | Risk (1%): {risk_amount:.2f}")
|
||||||
break # Success
|
break # Success
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if '429' in str(e):
|
if '429' in str(e):
|
||||||
@@ -140,7 +143,10 @@ def run_ticker_lifecycle(client, yf_ticker, t212_ticker, tz):
|
|||||||
logger.info(f"Waiting {wait_seconds:.0f} seconds until 11:00 EST forced exit...")
|
logger.info(f"Waiting {wait_seconds:.0f} seconds until 11:00 EST forced exit...")
|
||||||
time.sleep(wait_seconds)
|
time.sleep(wait_seconds)
|
||||||
|
|
||||||
# 3. 11:00 EST - Cleanup
|
# 3. 11:00 EST - Cleanup (with jitter to prevent 429s from parallel threads)
|
||||||
|
import random
|
||||||
|
time.sleep(random.uniform(0.1, 5.0))
|
||||||
|
|
||||||
logger.info(f"Time exit reached for {yf_ticker}. Cleaning up.")
|
logger.info(f"Time exit reached for {yf_ticker}. Cleaning up.")
|
||||||
if execution.is_in_position:
|
if execution.is_in_position:
|
||||||
exit_price = execution.close_all(t212_ticker)
|
exit_price = execution.close_all(t212_ticker)
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ class ExecutionManager:
|
|||||||
self.params = params
|
self.params = params
|
||||||
ticker = params['ticker']
|
ticker = params['ticker']
|
||||||
direction = params['direction']
|
direction = params['direction']
|
||||||
entry_price = params['entry_price']
|
entry_price = round(params['entry_price'], 2)
|
||||||
stop_loss = params['stop_loss']
|
stop_loss = round(params['stop_loss'], 2)
|
||||||
|
|
||||||
# Calculate Risk per share
|
# Calculate Risk per share
|
||||||
risk_per_share = abs(entry_price - stop_loss)
|
risk_per_share = abs(entry_price - stop_loss)
|
||||||
@@ -70,8 +70,8 @@ class ExecutionManager:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
ticker = params['ticker']
|
ticker = params['ticker']
|
||||||
tp_price = params['target_price']
|
tp_price = round(params['target_price'], 2)
|
||||||
sl_price = params['stop_loss']
|
sl_price = round(params['stop_loss'], 2)
|
||||||
quantity = getattr(self, 'current_quantity', 1.0)
|
quantity = getattr(self, 'current_quantity', 1.0)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user