а, ну и смотрю список трейдеров - у большинства comment: try_trader_done
т.е. по этому не форсит. вообще зачем этот флаг ставить? получается, что вся система на 1 раз проходит весь список трейдеров и дальше не работает, а должна бесконечно по кругу работать.
переодическая раскачка трейдов
Re: переодическая раскачка трейдов
Флаг нужен чтоб одного и тогоже постоянно не долбило.dkst wrote: у большинства comment: try_trader_done
т.е. по этому не форсит. вообще зачем этот флаг ставить?
а должна бесконечно по кругу работать.
Видимо алгоритмическая ошибочка. По идее после прохода всех по кругу, флаг должен сбрасываться в ноль. А тут условие не выполнено - всех еще не прошла. А пройти всех не может - не пускает ограничение по алексе.
имхо так кажется, при первом взгляде на анамнез
Re: переодическая раскачка трейдов
Да, видимо оно, поправочка
Code: Select all
<?php
require('../includes/prepare.php');
$max_in_hits = 5;
// % of out clicks for force
$out_percent = 3;
$max_alexa_rank = 500000;
// select total outs to trade during last 24h
$total_outs = db_value('total_hits', 'select sum(ho0+ho1+ho2+ho3+ho4+ho5+ho6+ho7+ho8+ho9+ho10+ho11+ho12+ho13+ho14+ho15+ho16+ho17+ho18+ho19+ho20+ho21+ho22+ho23) as total_hits from day
WHERE h IN (SELECT td FROM traders WHERE system_trade = 0)');
$hits_to_force = round($total_outs*$out_percent/100);
if ($hits_to_force < 1) die("Not enough hits to force. Do we have out hits at all ? ");
// set 'done' flag
db_query("UPDATE traders SET tcomment = 'try_trader_done' WHERE tcomment = 'try_trader' and tff = 0 ");
// check if we alreading forcing someone
$td = db_value('td', "SELECT td FROM traders WHERE tcomment = 'try_trader' and tff != 0 ");
if ($td) {
die("We are trying trader {$td} right now ");
}
$low_traders = array();
// select _active_ trades with less then $max_in_hits during last 24h
$q = db_query("select sum(hr0+hr1+hr2+hr3+hr4+hr5+hr6+hr7+hr8+hr9+hr10+hr11+hr12+hr13+hr14+hr15+hr16+hr17+hr18+hr19+hr20+hr21+hr22+hr23) as total_hits, h, ext_info from day
JOIN traders as t on t.td = day.h
WHERE system_trade = 0 and ta = 1 and tff = 0 and tcomment != 'try_trader_done'
GROUP BY h
HAVING total_hits <= '".(int) $max_in_hits."' ");
while ($d = db_fetch_assoc($q)) {
$d['ext_info'] = unserialize($d['ext_info']);
if (!preg_match('|Alexa Rank (.*?)$|is', $d['ext_info']['alexa'], $out)) continue;
$rank = str_replace(',','',$out[1]);
if ((int) $rank > $max_alexa_rank) continue;
$low_traders[$d['h']] = db_value('SUM(uni)', "SELECT SUM(uni) FROM history WHERE trader = '{$d['h']}' ");
}
if (count($low_traders)) {
arsort($low_traders);
$force_trader = current(array_keys($low_traders));
db_query("UPDATE traders SET tff = '{$hits_to_force}', tcomment = 'try_trader' WHERE td = '{$force_trader}' ");
echo "Forcing {$hits_to_force} to trader {$force_trader} \n";
} else {
db_query("UPDATE traders SET tcomment = '' WHERE tcomment = 'try_trader_done'");
die("No traders to force");
}
Don't forget to run script update
Re: переодическая раскачка трейдов
ок. вроде заработало.
а предыдущий вопрос был - когда система будет в сам смарт встроена, а не отдельным скриптом?
а предыдущий вопрос был - когда система будет в сам смарт встроена, а не отдельным скриптом?
Re: переодическая раскачка трейдов
Ждемс отзывов от того что есть и можно добавлять в 51 )
Don't forget to run script update
Re: переодическая раскачка трейдов
ну в общем за исключением колонки с хистори ратио, которая должна быть в % - все работает как надо. жду в апдйете.
Re: переодическая раскачка трейдов
$out_percent = 3;
может ли быть дробным? 0.5 например?
может ли быть дробным? 0.5 например?
Re: переодическая раскачка трейдов
Don't forget to run script update
Re: переодическая раскачка трейдов
помоему ещё существует проблема с сайтами для которых не определена Alexa которые показывают алексу в таблице как:
Скрипт считает такие трейды как сайты с наивысшей алексой.
Code: Select all
R: