Spaces:
Runtime error
Runtime error
File size: 857 Bytes
6d00bc3 16b228d 6d00bc3 16b228d 6d00bc3 | 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 | #include <iostream>
#include <vector>
extern "C" {
// حساب RSI بلغة C++ (أسرع بـ 100 مرة من بايثون)
double calculate_rsi(double* prices, int size) {
if (size <= 14) return 50.0;
double gains = 0, losses = 0;
for (int i = 1; i <= 14; i++) {
double diff = prices[size-i] - prices[size-i-1];
if (diff > 0) gains += diff; else losses -= diff;
}
if (losses == 0) return 100.0;
double rs = (gains / 14.0) / (losses / 14.0);
return 100.0 - (100.0 / (100.0 + rs));
}
int get_signal(double rsi, double current, double open) {
double change = ((current - open) / open) * 100.0;
if (rsi < 30 && change > 0) return 1; // شراء
if (rsi > 70 && change < 0) return -1; // بيع
return 0; // انتظار
}
}
|