-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquick_signal_test.py
More file actions
115 lines (102 loc) Β· 3.91 KB
/
quick_signal_test.py
File metadata and controls
115 lines (102 loc) Β· 3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/env python3
"""
QUICK SIGNAL TEST
Test cepat untuk semua sistem
"""
def test_all_systems():
"""Test semua sistem dengan signal test"""
print("π QUICK SIGNAL SYSTEM TEST")
print("=" * 60)
# Test data
test_signal = {
'LevelFibo': 'B_0',
'Type': 'BUY',
'SessionEurope': 1,
'SessionUS': 0,
'SessionAsia': 0,
'OpenPrice': 2650.0,
'TP': 2655.0,
'SL': 2648.0,
'Volume': 0.1
}
print(f"Test Signal: {test_signal}\n")
results = {}
# 1. Test Fibonacci
try:
from fibonacci_signal_detector import FibonacciSignalDetector
fib = FibonacciSignalDetector()
result = fib.detect_signal(test_signal)
results['fibonacci'] = {
'status': 'SUCCESS',
'recommendation': result.get('recommendation', 'UNKNOWN'),
'win_rate': result.get('expected_win_rate', 0),
'strength': result.get('signal_strength', 'UNKNOWN')
}
print("β
Fibonacci: SUCCESS")
except Exception as e:
results['fibonacci'] = {'status': 'ERROR', 'error': str(e)}
print(f"β Fibonacci: {e}")
# 2. Test Ensemble
try:
from ensemble_signal_detector import EnsembleSignalDetector
ensemble = EnsembleSignalDetector()
if ensemble.load_ensemble_model():
result = ensemble.predict_signal_strength(test_signal)
results['ensemble'] = {
'status': 'SUCCESS',
'recommendation': result.get('recommendation', 'UNKNOWN'),
'probability': result.get('ensemble_probability', 0),
'strength': result.get('signal_strength', 'UNKNOWN')
}
print("β
Ensemble: SUCCESS")
else:
results['ensemble'] = {'status': 'NO_MODEL'}
print("β οΈ Ensemble: No model")
except Exception as e:
results['ensemble'] = {'status': 'ERROR', 'error': str(e)}
print(f"β Ensemble: {e}")
# 3. Test Fixed Optimizer
try:
from fixed_advanced_signal_optimizer import FixedAdvancedSignalOptimizer
optimizer = FixedAdvancedSignalOptimizer()
if optimizer.load_model():
result = optimizer.get_signal_strength(test_signal)
results['optimizer'] = {
'status': 'SUCCESS',
'recommendation': result.get('recommendation', 'UNKNOWN'),
'probability': result.get('win_probability', 0),
'strength': result.get('signal_strength', 'UNKNOWN')
}
print("β
Optimizer: SUCCESS")
else:
results['optimizer'] = {'status': 'NO_MODEL'}
print("β οΈ Optimizer: No model")
except Exception as e:
results['optimizer'] = {'status': 'ERROR', 'error': str(e)}
print(f"β Optimizer: {e}")
# Summary
print(f"\nπ RESULTS SUMMARY:")
print("=" * 60)
working_systems = 0
for system, result in results.items():
status = result['status']
if status == 'SUCCESS':
working_systems += 1
rec = result.get('recommendation', 'N/A')
strength = result.get('strength', 'N/A')
prob = result.get('probability', result.get('win_rate', 0))
print(f"{system.upper():<12}: β
{rec} ({strength}) - {prob:.1%}" if prob else f"{system.upper():<12}: β
{rec} ({strength})")
elif status == 'NO_MODEL':
print(f"{system.upper():<12}: β οΈ Model not available")
else:
print(f"{system.upper():<12}: β Error")
print(f"\nWorking Systems: {working_systems}/3")
if working_systems >= 2:
print("π System is ready for trading!")
elif working_systems >= 1:
print("β οΈ System partially ready")
else:
print("π¨ System needs fixes")
return results
if __name__ == "__main__":
test_all_systems()