deploy: 2026-03-20 07:49
This commit is contained in:
43
test_run.py
Normal file
43
test_run.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""Quick test of signal generation pipeline."""
|
||||
import os, asyncio
|
||||
os.environ['SMC_CREDIT'] = '0'
|
||||
os.environ['SANDBOX_MODE'] = 'true'
|
||||
os.environ['PYTHONIOENCODING'] = 'utf-8'
|
||||
|
||||
from execution.paper_exchange import PaperExchangeClient
|
||||
from core.data_feed import DataFeed
|
||||
from indicators.ict_engine import ICTEngine
|
||||
from indicators.multi_timeframe import MultiTimeframeAnalyzer
|
||||
from indicators.confluence import ConfluenceChecker
|
||||
from strategy.signal_generator import SignalGenerator
|
||||
from strategy.entry_rules import EntryRules
|
||||
from strategy.exit_rules import ExitRules
|
||||
|
||||
async def test():
|
||||
client = PaperExchangeClient(300)
|
||||
await client.connect()
|
||||
feed = DataFeed(client)
|
||||
await feed.connect()
|
||||
await feed.fetch_multi_timeframe('BTC/USDT')
|
||||
|
||||
engine = ICTEngine()
|
||||
mtf = MultiTimeframeAnalyzer(engine)
|
||||
confluence = ConfluenceChecker()
|
||||
sg = SignalGenerator(engine, mtf, confluence, EntryRules(), ExitRules())
|
||||
|
||||
try:
|
||||
signal = await sg.generate('BTC/USDT', feed)
|
||||
if signal:
|
||||
print(f'SIGNAL: {signal.direction.value} {signal.symbol} @ ${signal.entry_price:,.2f}')
|
||||
print(f' SL: ${signal.stop_loss:,.2f} | TP: ${signal.take_profit:,.2f}')
|
||||
print(f' R:R = {signal.risk_reward_ratio:.2f} | Confidence: {signal.confidence}/6')
|
||||
print(f' Reasons: {signal.reasons}')
|
||||
else:
|
||||
print('No signal generated (market conditions not met)')
|
||||
except Exception as e:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
await client.disconnect()
|
||||
|
||||
asyncio.run(test())
|
||||
Reference in New Issue
Block a user