Show Posts
|
Pages: [1]
|
Спасибо imhoneer, что откликнулись. Решение прояснилось, задача вроде-бы из области бухгалтерии, но им легче - они распутывают клубок учёта с начала. А в моём случае в этом клубке начала нет.
|
|
|
When we have a complete history of trading, then to calculate the profit is not a problem. But suppose, we want to calculate the profit in the time interval from 13:42 to 20:00
+------------------+------+---------+------------+--------+ | date | type | fiat | coin | price | +------------------+------+---------+------------+--------+ | 2017-12-03 13:42 | buy | 3610,28 | 0,011587 | 311580 | | 2017-12-03 13:43 | buy | 3128,47 | 0,010032 | 311849 | | 2017-12-03 14:30 | _sell | 1956,82 | 0,00612102 | 319689 | | 2017-12-03 14:31 | _sell | 236381 | 0,74101 | 318999 | | 2017-12-03 14:38 | buy | 2975,82 | 0,009432 | 315502 | | 2017-12-03 14:57 | buy | 1050,15 | 0,003292 | 319001 | | 2017-12-03 14:58 | buy | 5024,27 | 0,01575 | 319001 | | 2017-12-03 18:49 | buy | 16692 | 0,051662 | 323100 | | 2017-12-03 19:10 | buy | 32045,8 | 0,099114 | 323323 | | 2017-12-03 19:31 | _sell | 5102,79 | 0,015701 | 324998 | | 2017-12-03 19:32 | _sell | 324,998 | 0,001 | 324998 | | 2017-12-03 19:36 | buy | 2720,62 | 0,008397 | 323999 | | 2017-12-03 19:36 | buy | 119698 | 0,369439 | 323999 | | 2017-12-03 19:41 | _sell | 4479,86 | 0,0137546 | 325699 | | 2017-12-03 19:43 | buy | 9164,49 | 0,028344 | 323331 | | 2017-12-03 19:46 | _sell | 13999 | 0,043074 | 324999 | | 2017-12-03 19:51 | buy | 10412,4 | 0,032137 | 324001 | | 2017-12-03 19:56 | buy | 456,841 | 0,00141 | 324001 | +------------------+------+---------+------------+--------+
But when we begin to reduce the balance of purchases / sales, we will see such things: | 2017-12-03 14:31 | _sell | 236381 | 0,74101 | 318999 | - sale of coins purchased earlier, and not included in our sample | 2017-12-03 19:36 | buy | 119698 | 0,369439 | 323999 | - purchase, sale of these coins will occur later
And as a result of such calculations, we will constantly receive a loss, well, it's logical - sales go after purchases, and next to the purchases we can have sales of coins purchased earlier. What to do in this case - do a sample of sales with a certain time lag after purchases , because neither the FIFI nor the LIFO method will help here.
|
|
|
Когда у нас есть полная история торгов, то посчитать прибыль не составляет проблемы. Но допустим, мы хотим подсчитать прибыль на временном промежутке с 13:42 до 20:00
+------------------+------+---------+------------+--------+ | date | type | fiat | coin | price | +------------------+------+---------+------------+--------+ | 2017-12-03 13:42 | buy | 3610,28 | 0,011587 | 311580 | | 2017-12-03 13:43 | buy | 3128,47 | 0,010032 | 311849 | | 2017-12-03 14:30 | _sell | 1956,82 | 0,00612102 | 319689 | | 2017-12-03 14:31 | _sell | 236381 | 0,74101 | 318999 | | 2017-12-03 14:38 | buy | 2975,82 | 0,009432 | 315502 | | 2017-12-03 14:57 | buy | 1050,15 | 0,003292 | 319001 | | 2017-12-03 14:58 | buy | 5024,27 | 0,01575 | 319001 | | 2017-12-03 18:49 | buy | 16692 | 0,051662 | 323100 | | 2017-12-03 19:10 | buy | 32045,8 | 0,099114 | 323323 | | 2017-12-03 19:31 | _sell | 5102,79 | 0,015701 | 324998 | | 2017-12-03 19:32 | _sell | 324,998 | 0,001 | 324998 | | 2017-12-03 19:36 | buy | 2720,62 | 0,008397 | 323999 | | 2017-12-03 19:36 | buy | 119698 | 0,369439 | 323999 | | 2017-12-03 19:41 | _sell | 4479,86 | 0,0137546 | 325699 | | 2017-12-03 19:43 | buy | 9164,49 | 0,028344 | 323331 | | 2017-12-03 19:46 | _sell | 13999 | 0,043074 | 324999 | | 2017-12-03 19:51 | buy | 10412,4 | 0,032137 | 324001 | | 2017-12-03 19:56 | buy | 456,841 | 0,00141 | 324001 | +------------------+------+---------+------------+--------+
Но когда мы начнём сводить баланс покупок/продаж, то всплывут такие вещи : | 2017-12-03 14:31 | _sell | 236381 | 0,74101 | 318999 | - продажа монет купленных ранее, и не попавшие в нашу выборку | 2017-12-03 19:36 | buy | 119698 | 0,369439 | 323999 | - покупка , продажа тоже в выборку не попала, она случилась позже
И в итоге таких расчётов мы постоянно будем получать убыток, ну логично же - продажи идут позже покупок, и рядом с покупками у нас могут идти продажи монет купленных ранее . Что делать в таком случае - делать выборку продаж с неким временным лагом после покупок ?
|
|
|
In theory, to build a candle chart, we need :
1. get trade data - for example
+---------+---------------------+-----------+------------+-------------+-----------+ | Deal_ID | DATE | Deal_Type | Amount_USD| Amount_Coin | Price_USD | +---------+---------------------+-----------+------------+-------------+-----------+ | 1 | 2017-12-01 07:00:00 | sell | 2000 | 2 | 1000 | | 2 | 2017-12-01 07:00:55 | buy | 2000 | 2 | 1000 | | 3 | 2017-12-01 07:01:00 | sell | 6000 | 5 | 1200 | | 4 | 2017-12-01 07:01:20 | buy | 6000 | 5 | 1200 | | 5 | 2017-12-01 07:02:00 | buy | 9000 | 10 | 900 | | 6 | 2017-12-01 07:02:10 | sell | 9000 | 10 | 900 | | 7 | 2017-12-01 07:03:00 | sell | 6600 | 6 | 1100 | | 8 | 2017-12-01 07:03:43 | buy | 6600 | 6 | 1100 | | 9 | 2017-12-01 07:04:00 | sell | 3900 | 3 | 1300 | | 10 | 2017-12-01 07:04:22 | buy | 3900 | 3 | 1300 | | 11 | 2017-12-01 07:05:00 | sell | 2500 | 2 | 1250 | | 12 | 2017-12-01 07:05:11 | buy | 2500 | 2 | 1250 | | 13 | 2017-12-01 07:06:00 | sell | 1400 | 1 | 1400 | | 14 | 2017-12-01 07:06:00 | buy | 1400 | 1 | 1400 | | 15 | 2017-12-01 07:07:00 | buy | 4050 | 3 | 1350 | | 16 | 2017-12-01 07:07:03 | sell | 4050 | 3 | 1350 | | 17 | 2017-12-01 07:08:00 | sell | 4800 | 4 | 1200 | | 18 | 2017-12-01 07:08:00 | buy | 4800 | 4 | 1200 | | 19 | 2017-12-01 07:09:00 | sell | 3300 | 3 | 1100 | | 20 | 2017-12-01 07:09:00 | buy | 3300 | 3 | 1100 | | 21 | 2017-12-01 07:10:00 | sell | 5500 | 5 | 1100 | | 22 | 2017-12-01 07:10:00 | buy | 5500 | 5 | 1100 | | 23 | 2017-12-01 07:11:00 | buy | 7800 | 6 | 1300 | | 24 | 2017-12-01 07:11:00 | sell | 7800 | 6 | 1300 | | 25 | 2017-12-01 07:12:00 | buy | 6250 | 5 | 1250 | | 26 | 2017-12-01 07:12:05 | sell | 6250 | 5 | 1250 | +---------+---------------------+-----------+------------+-------------+-----------+
2. merge buy / sell deal into one transaction +---------------------+-------------+-----------+ | date | amount_coin | price_usd | +---------------------+-------------+-----------+ | 2017-12-01 07:00:00 | 2 | 1000 | | 2017-12-01 07:01:00 | 5 | 1200 | | 2017-12-01 07:02:00 | 10 | 900 | | 2017-12-01 07:03:00 | 6 | 1100 | | 2017-12-01 07:04:00 | 3 | 1300 | | 2017-12-01 07:05:00 | 2 | 1250 | | 2017-12-01 07:06:00 | 1 | 1400 | | 2017-12-01 07:07:00 | 3 | 1350 | | 2017-12-01 07:08:00 | 4 | 1200 | | 2017-12-01 07:09:00 | 3 | 1100 | | 2017-12-01 07:10:00 | 5 | 1100 | | 2017-12-01 07:11:00 | 6 | 1300 | | 2017-12-01 07:12:00 | 5 | 1250 | +---------------------+-------------+-----------+
3. we obtain OHLC data for the interval of 180 seconds +---------------------+------------+--------+------+------+------+-------+ | date | timestamp | volume | open | high | low | close | +---------------------+------------+--------+------+------+------+-------+ | 2017-12-01 07:00:00 | 1512104400 | 26 | 1000 | 1300 | 900 | 1300 | | 2017-12-01 07:05:00 | 1512104700 | 13 | 1250 | 1400 | 1100 | 1100 | | 2017-12-01 07:10:00 | 1512105000 | 16 | 1100 | 1300 | 1100 | 1250 | +---------------------+------------+--------+------+------+------+-------+
Everything is simple and clear.
but here we have REAL data from the poloniex exchange
TradeID Date Type Price in BTC Amount in NXT Total in BTC
21387 2014-09-12 05:21:26 buy 0.00008943 1.27241180 0.00011379 21386 2014-09-12 05:21:26 buy 0.00008943 1.27241180 0.00011379 21385 2014-09-12 05:21:26 buy 0.00008943 238.28433663 0.02130976 21384 2014-09-12 05:21:26 buy 0.00008937 237.24284436 0.02120239 21383 2014-09-12 05:21:26 buy 0.00008937 222.40780368 0.01987658 21382 2014-09-12 05:20:50 sell 0.00008937 222.40777437 0.01987658 21380 2014-09-12 05:20:48 sell 0.00008937 15.87653295 0.00141888 21378 2014-09-12 05:20:45 sell 0.00008937 1409.86957705 0.12600004 21377 2014-09-12 05:20:45 buy 0.00008937 100.00000000 0.00893700 21376 2014-09-12 05:20:45 buy 0.00008936 2.00000000 0.00017872 21375 2014-09-12 05:20:45 buy 0.00008930 592.90881062 0.05294675 21374 2014-09-12 05:20:45 buy 0.00008900 34.45002070 0.00306605 21373 2014-09-12 05:20:45 buy 0.00008900 100.00000000 0.00890000 21372 2014-09-12 05:20:45 buy 0.00008900 71.28118327 0.00634402 21371 2014-09-12 05:20:45 buy 0.00008900 10.00000000 0.00089000 21370 2014-09-12 05:20:45 buy 0.00008850 468.00000000 0.04141800 21369 2014-09-12 05:20:45 buy 0.00008830 1000.00000000 0.08830000 21368 2014-09-12 05:20:45 buy 0.00008828 24.76164861 0.00218595 21367 2014-09-12 05:20:45 buy 0.00008796 2332.07990187 0.20512974 21366 2014-09-12 05:15:37 sell 0.00008809 247.29947465 0.02178461 21365 2014-09-12 04:49:13 sell 0.00008676 240.30574117 0.02084892 21364 2014-09-12 04:49:07 sell 0.00008813 77.09953900 0.00679478 21362 2014-09-12 04:48:59 sell 0.00008813 79.57717018 0.00701313 21360 2014-09-12 04:48:56 sell 0.00008813 3.28064742 0.00028912 21358 2014-09-12 04:48:54 sell 0.00008813 100.00000000 0.00881300 21356 2014-09-12 04:48:51 buy 0.00008813 240.04264340 0.02115495
The big question is - how to get data for candlestick charts from this mash ?
|
|
|
Прошу оценить инструментарий для анализа торгов на бирже btc-trade.com.ua. Делал его в качестве саморазвития и опыта работы с public API . А идея была в том, что если не умеешь торговать сам - смотри как это делают другие. Все данные мной используемые есть на бирже в открытом виде, я просто упорядочиваю их и делаю более наглядными. Вот пример - торги одного из участников. Фоном идёт свечной график, красный сплайн - продажи, зелёный - покупки. Видим что торгует он всегда в плюс, ошибок нет. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fimgur.com%2Fa%2FuxGeb&t=663&c=4sva7OXHSHE_kg) А вот пример неудачных торгов - зелёный сплайн практически всегда выше красного, участник покупает когда дорого, а продаёт когда дёшево. ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fimgur.com%2Fa%2FiBVbx&t=663&c=gCMFTZkCbUjWuA)
|
|
|
|