Whitetrade / engine.cpp
VinpolarX's picture
Update engine.cpp
16b228d verified
raw
history blame contribute delete
857 Bytes
#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; // انتظار
}
}