Сделал робота по корреляции для БО binary на основе StochasticDifferentPairs мт5 и Kiosotto мт5
Пока тесты были, там сделки открывались сами собой не по условиям, пока не устранил все косяки. Но даже с этим учётом, результат хороший на демо:
Посмотреть вложение 365992
Сигнал на открытие за 3 сек до начала м5 свечи на 5 минут, раздвижка 98/2, DIFF 98%, подтверждение по Kio уровень больше 10.
один раз StochasticDifferentPairs вывалился с ошибкой array вне диапазона, не понял почему, что-то вроде сделал в советнике, который его вызывает, больше не выпадал так. Но явно где-то косяк, при вызове функции Correlation(). Строки, на которые ругались, подсветил. Видимо при вызове что-то не то прилетело.
double Correlation(double &x[], double &y[], int x_shift = 0, int y_shift = 0, int count = -1)
{
if (AlertOn) Print(x_shift," ",y_shift," ",count);
int n = MathMin(ArraySize(x)-x_shift,ArraySize(y)-y_shift);
if(n>count && count>0)
n=count;
if(n<2)
return(-2);
double sum_sq_x=0,
sum_sq_y=0,
sum_coproduct=0,
mean_x = x[x_shift],
mean_y = y[y_shift];
for(int i = 0; i < n; i++)
{
double sweep = i / (i+1.0),
delta_x = x[i+x_shift] - mean_x,
delta_y = y[i+y_shift] - mean_y;
sum_sq_x += delta_x*delta_x * sweep;
sum_sq_y += delta_y*delta_y * sweep;
sum_coproduct += delta_x*delta_y * sweep;
mean_x += delta_x / (i+1.0);
mean_y += delta_y / (i+1.0);
}
double pop_sd_x = MathSqrt(sum_sq_x/n),
pop_sd_y = MathSqrt(sum_sq_y/n),
cov_x_y = sum_coproduct / n;
if(pop_sd_x*pop_sd_y != 0.0)
return(cov_x_y / (pop_sd_x*pop_sd_y));
return(-3);
}
Я пока что продолжаю с БО разбираться, надеюсь на следующей неделе уже запущу роботов на реал и можно будет вернуться к теме советников для форы. Очень хочется уже грааль для форы соорудить, с разгонным потенциалом