Разгон и поддержание мелких трейдеров.

Post Reply
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Разгон и поддержание мелких трейдеров.

Post by Ling »

Многих средних и мелких трейдеров не держит или трейд с ними затухает. А крупных явно переливает. Пробую профорсить всех мелких - траф на сидже возростает на 20-30%.
Но через пару дней трейд опять тухнет с ними.
Trade Poke абсолютно не справляется со своей задачей или сильно переливает явно мелкого или вобше 0-вого трейдера.

Есть предложение по поддержке средних, мелких и затухших трейдов.
Наверно в разделе Traffic Rules добавить подраздел.

Там добавляем слот(ы) для слива на трейдеров.
Условие вхождения в слот (допустим) - инов 0-5 - т.е. все трейдеры от которых инов от 0 до 5 в день.
Количество аутов в час на этот слот: % или точное число.
!Ограничение по аутам в час.
!Возможность отключать каждому трейдеру попадание в эту систему.

Пример:
--------------------------
Первый слот: Условие 0-5. Форсить 1% аутов (или N в час). Ограничение 50 в час.

Т.е. 50 аутов в час будет рандомно отослано трейдерам от которых инов от 0 до 5 в день.
--------------------------
Второй слот: Условие 6-20. Форсить 2%. Ограничение 100.
---------------------------
Третий слот: Условие 21-50. Форсить 3%. Ограничение 200.
---------------------------

Сколько слотов и какие условия вхождения, каждый уже решает сам.

Так возможно и рагонится мелкий или потухший трейд. А если трейдер реально мелкий или 0 - то ему много трафа не уйдёт (в отличии от Trade Poke) и мы всегда можем в его в настройках отключить попадание в эту систему или удалить из трейда.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Разгон и поддержание мелких трейдеров.

Post by admin »

Думаю не стоит сразу спешить добавлять 100500 новых опций
сделаем отдельный файл, если то что надо - тогда и добавим

содержимое надо сохранить в scj/bin/low_trade_support.php и запускать как

php low_trade_support.php

так часто как вы хотите что бы эти правила выполнялись

По самим правилам мне кажется вопросов не будет, я описал в коде да и по названиям параметров по идее понятно будет.

Давайте попробуем и будет ясно что делать дальше.

Code: Select all


<?php
require('../includes/prepare.php');


$rules = array(
	'rule_1' => array(
		'min_in' => 5,
		'max_in' => 10,
		'force_percent_of_total_traffic' => 2,
		'hourly_limit' => 10, // hit. So  let's say we have total 1000 out hits, a trader has 6 hits that more then 'min_in', but less then 'max_in'
						  	  //we force him 'force_percent_of_total_traffic' (1000*2% = 20 out hits total), but limit is 10
						  	  // so we force 2 hours , 10 hits each hour
	), 
	'rule_2' => array(
		'min_in' => 11,
		'max_in' => 20,
		'force_percent_of_total_traffic' => 1,
		'hourly_limit' => 10, // hit. So  let's say we have total 1000 out hits, a trader has 6 hits that more then 'min_in', 
						  	  //we force him 'force_percent_of_total_traffic' (1000*2% = 20 out hits total), but limit is 10
						  	  // so we force 2 hours , 10 hits each hour
	), 
);




$unix_hour = floor(time()/3600);
$total_day_out = db_val("SELECT sum(`out`) FROM day WHERE hour <= ".($unix_hour-23)." and trader IN (SELECT td FROM traders WHERE system_trade IN (0) )"); // replace with IN (0) with IN (0, 1) to include system traffic

$q = db_query("SELECT td FROM traders WHERE system_trade = 0");
while ($d = db_fetch_assoc($q)) {

	$daily_trader_in = db_val("SELECT sum(raw) FROM day WHERE hour <= ".($unix_hour-23)." and trader = '".addslashes($d['td'])."' "); // replace with IN (0) with IN (0, 1) to include system traffic

	foreach ($rules as $rule_name => $rule) {
		if ($daily_trader_in < $rule['min_in'] or $daily_trader_in > $rule['max_in']) continue;

		$force_amount = floor($total_day_out * $rule['force_percent_of_total_traffic'] / 100);

		if ($force_amount > $rule['hourly_limit']) {
			$hours = floor($force_amount/$rule['hourly_limit']);
			$per_hour = floor($force_amount/$hours);
		} else {
			$hours = 1;
			$per_hour = $force_amount;
		}

		print("Rule {$rule_name} trigged. Forcing {$per_hour} for {$hours} to {$d['td']} \n");

		db_query("UPDATE traders SET sforce_amount = '{$per_hour}', sforce_hours = '{$hours}' WHERE td = '{$d['td']}' ");


	}

}

Don't forget to run script update
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Re: Разгон и поддержание мелких трейдеров.

Post by Ling »

Попробовал.. Немного не то.

Слот - это как бы список урлов на трейдеров, которые подошли под его условие. И трафик рандомно раздаётся на урлы из этого списка(слота), при наличии активного слота. Количество трафика и ограничение мы выставляем сами.
Т.е. не надо персонально каждому трейдеру выставлять разовые форсы.
Надо каждые N минут пересоздавать этот список.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Разгон и поддержание мелких трейдеров.

Post by admin »

Те фактически все что надо поменять - это поделить force_percent_of_total_traffic между всему кто попал под правило, верно ?



Хоть каждую минуту - это вы как угодно часто можете запускать скрипт
Don't forget to run script update
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Re: Разгон и поддержание мелких трейдеров.

Post by Ling »

Не надо ничего делить и усложнять.
Есть слот.
Он состоит из списка трейдеров, попавших под его условие. На этот список РАНДОМНО раздаётся определённое количество трафика.
Сколько сливать трафика на слот и ограничение мы сами ставим.
-----------------------
Пример:
Слот1
Условие попадания в слот(список) : Все сайты с инами от 0 до 5 за сутки
Сливать на слот: 1% от всех аутов.
Ограничение: 200 аутов в час на слот(список).
....................
Допустим под такое условие попало 100 трейдеров (а может 167 или 234 или 300 - это не важно).
Для данного примера, мы получаем список из 100 трейдеров.
....................
Итог:
Максимум 200 аутов в час уйдёт на этот слот(список), т.е. 200 аутов РАНДОМНО раздастся этим 100 трейдерам в час.
Каждому по 2 в час или по 48 в сутки.
Понемногу, но трейд порастёт или хотя бы не стухнет.

Это как бы простейшая система фрифорсов на мелких трейдеров.
Она и не перельёт на мелкого трейдера тонну трафа, и не даст каждому трейду потухнуть.

Естессно слот(список) периодически пересчитывается и возможно через час-два в Слоте(0-5) уже будет меньше чем 100 трейдеров, потому что некоторые уже не будут попадать под условие (0-5), т.к. инов от них стало больше, чем 5, т.е. трейд с ними порос.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Разгон и поддержание мелких трейдеров.

Post by admin »

Системы слотов нет в скрипте и переделывать весь аут ради того что бы попробовать очнеь сложно, тем более что глобально разницы нет


В варианте со слотами плохореализуемо ограничение в час

например в слоте 2 трейдера (1 и 2)
им надо отдать 2% аутов с часовым лимитом 100
например за первые 3 минуты отдали трейдеру 10 хитов
но тут пересчитали и решили что отдавать надо трейдерами 2 и 3 - и тут проблема в том что надо наворачивать огромное кол-во логов и подсчетов что б понять кто был в группе за час, отдавать 90 на оставшихся и тп.

те вариант слотов может быть только в % от трафа на группу но без часовых ограничений.


А в реалиях мы хотим отдать по паре хитов выделенным трейдерам

у нас например 20к аутов
например у нас 5 трейдеров попало в слот
им надо отдать 2% с часовым ограничением 100

2% - это 400 хитов , но у нас ограничение 100 - берем 100.

100/5 = по 20 хитов каждому

и запускаем раз в час скрипт

все просто и предсказуемо куда сколько трафа пойдет и сколько его вообще туда пойдет.

Code: Select all

<?php
require('../includes/prepare.php');


$rules = array(
	'rule_1' => array(
		'min_in' => 5,
		'max_in' => 10,
		'force_percent_of_total_traffic' => 2,
		'hourly_limit' => 10, // hit. So  let's say we have total 1000 out hits, a trader has 6 hits that more then 'min_in', but less then 'max_in'
						  	  //we force him 'force_percent_of_total_traffic' (1000*2% = 20 out hits total), but limit is 10
						  	  // so we force 2 hours , 10 hits each hour
	), 
	'rule_2' => array(
		'min_in' => 11,
		'max_in' => 20,
		'force_percent_of_total_traffic' => 1,
		'hourly_limit' => 10, // hit. So  let's say we have total 1000 out hits, a trader has 6 hits that more then 'min_in', 
						  	  //we force him 'force_percent_of_total_traffic' (1000*2% = 20 out hits total), but limit is 10
						  	  // so we force 2 hours , 10 hits each hour
	), 
);




$unix_hour = floor(time()/3600);
$total_day_out = db_val("SELECT sum(`out`) FROM day WHERE hour <= ".($unix_hour-23)." and trader IN (SELECT td FROM traders WHERE system_trade IN (0) )"); // replace with IN (0) with IN (0, 1) to include system traffic
$total_per_hour = floor($total_day_out/24);


foreach ($rules as $rule_name => $rule) {

	$traders = array();

	$q = db_query("SELECT trader, sum(raw) total_raws FROM day 
		WHERE trader in (select td from traders WHERE system_trade = 0)
	group by trader
	HAVING total_raws > {$rule['min_in']} AND total_raws < {$rule['max_in']}
	");

	while ($d = db_fetch_assoc($q)) {
		$traders[] = $d['trader'];
	}

	echo "Rule {$rule_name}, got ".count($traders)." traders \n";

	if (count($traders) == 0) continue;
	print_r($traders);

	$force_amount = floor($total_day_out * $rule['force_percent_of_total_traffic'] / 100);
	$per_hour = floor($force_amount/24);
	if ($per_hour > $rule['hourly_limit']) $per_hour = $rule['hourly_limit'];
	$per_trade = ceil($per_hour/count($traders));

	echo "We have {$total_per_hour} per hour, {$rule['force_percent_of_total_traffic']}% for this slot = {$per_hour}  hits\hour, force {$per_trade} to each trader \n ";

	db_query("UPDATE traders SET tff = '{$per_trade}' WHERE td = '{$d['td']}' ");


}

Don't forget to run script update
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Re: Разгон и поддержание мелких трейдеров.

Post by Ling »

Для чего это делается?
Скрипт нихуя не держит траф!
Топовых трейдеров ПЕРЕЛИВАЕТ,а со средними и мелкими трейд убивается
Вот пример топовых
R.In. U.In. Out
7081 2912 14282
5494 1910 9055
4318 1672 8879
Вручную ставлю форсы на мелких,средних и 0-вых - траф возрастает на 20 - 30%. Через сутки трейд с ними опять затухает.
Так зачем!!! мне переливать топовых, когда я этот трафик могу использовать для поддержния и развития средних и мелких трейдов.
Можно хотя бы списки с урлами на трейдеров делать (0-5), (6-21) и т.п.?
Топлисты скрипт может делать?
Может
Нужен, практически, тот же список(топлист). Но, чтобы трейдеры попадали под условие
----------------------------------------
Топлист1: (0-5) - От 0 до 5 инов в сутки.

трейдер (0-5)
....
....
....
терейдер (0-5)

::Ссылка на список http://mysite.com/scj/0-5.php:::

--------------------------
Топлист2: (6-21) - От 6 до 21 инов в сутки.
терейдер (6-20)
....
....
....
терейдер(6-20)

::Ссылка на список http://mysite.com/scj/6-21.php:::

-----------------------

Эти списки пересоздаются как топлисты
Что тут сложного!!!!!?


По сути, эти списки как песочница ссылок на мелких трейдеров, чтобы трейд с ними не затух.

Поставил сливать 200 аутов в час на список http://mysite.com/scj/0-5.php - и траф рандомно раздаётся на всех из этого списка.
Всё очень просто.
-----------------------------------------
Сделай хотябы просто возможность сделать списки
mysite.com/scj/0-5.php
mysite.com/scj/6-20.php
mysite.com/scj/21-50.php

и т.д.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Разгон и поддержание мелких трейдеров.

Post by admin »

Я не понял, теперь надо не скрипт, а что б создавало топлисты ?
Don't forget to run script update
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Re: Разгон и поддержание мелких трейдеров.

Post by Ling »

Я имел ввиду, что не надо расчитывать форсы на каждого трейдера.
Не надо ничего усложнять.

Просто создаётся список... Я на него сливаю 100 (сколько захочу) аутов в час
--------
Пример
Список 0-5. Сливать 100 в час.
Туда попали все трейдеры от которых инов от 0 до 5 в день.
На этих трейдеров рандомно слилось 100 аутов.
ПРОСТО РАНДОМНО!!!!!!
Ну что тут сложного?
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Разгон и поддержание мелких трейдеров.

Post by admin »

И чем это отличается от скрипта выше ?
Don't forget to run script update
Post Reply