0 Members and 1 Guest are viewing this topic.
Warning: unknown error, can't fetch priceExpecting value: line 1 column 1 (char 0)
Quote from: Gentso1 on March 20, 2015, 04:50:05 pmJust wanted to post up to bring attention to thiscurrent silver feed price median is showing as 15.7845021684$current market price from kitco(ny spot) bid SILVER bid-16.86 ask-16.96anyone else seeing a problem here?welcome in our world on metaexchange.info we have the same problems on the bitBTC pair. We should discuss if we can improve the feed prices or if we can find a better solution for it. If we want to create businesses around the BitShares ecosystem we need better feedprices.
Just wanted to post up to bring attention to thiscurrent silver feed price median is showing as 15.7845021684$current market price from kitco(ny spot) bid SILVER bid-16.86 ask-16.96anyone else seeing a problem here?
Aah i see but its averaged out amongst all delegates providing feeds right?
One more fairly obvious item you should add to the list is:Always multiply your published price by a random number that is close to 1; maybe within a quarter percent of one. It's an easy step that makes the price feed that much less predictable and improves security against precision market manipulation.
Quote from: jsidhu on March 17, 2015, 09:38:59 pmQuote from: biophil on March 17, 2015, 01:31:43 amI guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.At the very least, feed scripts should randomize update times. I'll leave it at that until I can give a better argument.Feed-prediction? if you can predict the feed you would be a trillionaire by now... do you mean feed arbitrage or some other form of manipulation?I think feed prediction is entirely possible because the feed is trailing the actual market. By closely monitoring the delegates' individual feeds it should be possible to predict when a given delegate updates his feed, from what sources he derives the feed price and what his next published price will be. Such prediction will likely be possible a couple of blocks before the publishing, and the accuracy of the predicted price will likely be high compared to the difference between the new price and the previous price published by that delegate.But since a delegate does not control the price directly I would assume that the predictable price *movement* is too small to be exploitable.
Quote from: biophil on March 17, 2015, 01:31:43 amI guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.At the very least, feed scripts should randomize update times. I'll leave it at that until I can give a better argument.Feed-prediction? if you can predict the feed you would be a trillionaire by now... do you mean feed arbitrage or some other form of manipulation?
I guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.At the very least, feed scripts should randomize update times. I'll leave it at that until I can give a better argument.
Quote from: Gentso1 on March 17, 2015, 12:32:59 pmRight now it looks like we are dependent upon many free sources. Cryptosmith accepts payment in bitgold/bitsilver so if the silver feed isn't keeping up with the live market I am sure you can see what a issue this will be, not just for myself but any merchant that wants to accept bitassets.Many sources/greater reliability is what I am advocating here Will there be a problem to Cryptosmith when the price feeds are depending on free sources?
Right now it looks like we are dependent upon many free sources. Cryptosmith accepts payment in bitgold/bitsilver so if the silver feed isn't keeping up with the live market I am sure you can see what a issue this will be, not just for myself but any merchant that wants to accept bitassets.Many sources/greater reliability is what I am advocating here
Many sources/greater reliability is what I am advocating here
Quote from: biophil on March 17, 2015, 01:31:43 amI guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.Please do, and then after you make some money to compensate you for the time spent designing the attack, please post the attack details on the forums.
I guess I should just go design a feed-prediction attack and make money myself, since people seem so hard to convince.
@Xeroc, I haven't actually designed a manipulation algorithm to exploit feed price prediction, but isn't it obvious that a noisy feed would be better than a predictable one? I'm working from this principle: if I can execute trades on btc38 and predict exactly what that will do to the price feed, then I can make money moving the price feed around. Probably a fraction of a percent per trade, but the fact is I'll be taking money from the system without providing any benefit. Doesn't that sound like something we should try to prevent?
Quote from: biophil on March 16, 2015, 02:21:32 pm@Gentso- do you believe there is any such thing as a perfectly accurate price? What's the spread at btc38? 1%? 0.5%? Which price is the price you think is "correct?" The bid or ask? The price of the last trade? I think you'll agree with me that none of those are quite right; you'd almost always be more interested in something between the bid and ask. So what do you pick? The average? A recent moving average of market prices? Those sound better, but they're still only estimates. Maybe I'm being long-winded, but I'm trying to make the point that there isn't ever 1 price and the best you can ever do is estimate it. So adding in 0.2% noise will still give an accurate price feed, especially if everybody is doing it and all the noise averages out.@Xeroc, I haven't actually designed a manipulation algorithm to exploit feed price prediction, but isn't it obvious that a noisy feed would be better than a predictable one? I'm working from this principle: if I can execute trades on btc38 and predict exactly what that will do to the price feed, then I can make money moving the price feed around. Probably a fraction of a percent per trade, but the fact is I'll be taking money from the system without providing any benefit. Doesn't that sound like something we should try to prevent?maybe we can find a compromise and have a randomness in-line with the lowest spread of your exchanges .. if btc38 says 1% you may add randomness with a spread of less than 1% with confidence >90% or so ..
@Gentso- do you believe there is any such thing as a perfectly accurate price? What's the spread at btc38? 1%? 0.5%? Which price is the price you think is "correct?" The bid or ask? The price of the last trade? I think you'll agree with me that none of those are quite right; you'd almost always be more interested in something between the bid and ask. So what do you pick? The average? A recent moving average of market prices? Those sound better, but they're still only estimates. Maybe I'm being long-winded, but I'm trying to make the point that there isn't ever 1 price and the best you can ever do is estimate it. So adding in 0.2% noise will still give an accurate price feed, especially if everybody is doing it and all the noise averages out.@Xeroc, I haven't actually designed a manipulation algorithm to exploit feed price prediction, but isn't it obvious that a noisy feed would be better than a predictable one? I'm working from this principle: if I can execute trades on btc38 and predict exactly what that will do to the price feed, then I can make money moving the price feed around. Probably a fraction of a percent per trade, but the fact is I'll be taking money from the system without providing any benefit. Doesn't that sound like something we should try to prevent?
Quote from: jsidhu on March 16, 2015, 06:41:16 amQuote from: biophil on March 16, 2015, 03:15:00 amOne more fairly obvious item you should add to the list is:Always multiply your published price by a random number that is close to 1; maybe within a quarter percent of one. It's an easy step that makes the price feed that much less predictable and improves security against precision market manipulation.Really? And this totally screws with ppl dependant on accurate feedsthe error introduced is averaged out over time ... I think it's a good idea .. if you chose a spread of .. say 0.1% or so ..
Quote from: biophil on March 16, 2015, 03:15:00 amOne more fairly obvious item you should add to the list is:Always multiply your published price by a random number that is close to 1; maybe within a quarter percent of one. It's an easy step that makes the price feed that much less predictable and improves security against precision market manipulation.Really? And this totally screws with ppl dependant on accurate feeds
5 #When attempting to write a market maker the slow movement of the feed can be difficult. 76 #I would recommend the following: 77 #if REAL_PRICE < MEDIAN and YOUR_PRICE > MEDIAN publish price 78 #if you haven't published a price in the past 20 minutes 79 # if REAL_PRICE > MEDIAN and YOUR_PRICE < MEDIAN and abs( YOUR_PRICE - REAL_PRICE ) / REAL_PRICE > 0.005 publish price 80 #The goal is to force the price down rapidly and allow it to creep up slowly. 81 #By publishing prices more often it helps market makers maintain the peg and minimizes opportunity for shorts to sell USD below the peg that the market makers then have to absorb. 82 #If we can get updates flowing smoothly then we can gradually reduce the spread in the market maker bots. 83 #*note: all prices in USD per BTS
I think the problem maybe because of USD market is out of control yesterday.delegate should adjust the weight for every market, change scale_xxx at config.json Code: [Select] "market_weight": { "common": "weight depenth on (depth * scale)", "common1": "include depth between price*(1-depth_change) and price*(1+depth_change)", "depth_change": 0.03, "scale_bts_usd": 0.5, "scale_bts_cny": 1, "scale_btc38": 1, "scale_yunbi": 1, "scale_bter": 0 },Quote from: jsidhu on March 11, 2015, 06:35:26 pmSeems most ppl use bitsuperlab's price feed scripts because it comes first in the how to guide so most ppl use it.Xeroc's feeds seem to track better and are off by 1% on average... that is a big difference. Please fix the price feed or everyone should switch to xeroc's.
"market_weight": { "common": "weight depenth on (depth * scale)", "common1": "include depth between price*(1-depth_change) and price*(1+depth_change)", "depth_change": 0.03, "scale_bts_usd": 0.5, "scale_bts_cny": 1, "scale_btc38": 1, "scale_yunbi": 1, "scale_bter": 0 },
Seems most ppl use bitsuperlab's price feed scripts because it comes first in the how to guide so most ppl use it.Xeroc's feeds seem to track better and are off by 1% on average... that is a big difference. Please fix the price feed or everyone should switch to xeroc's.
coin@minecraft:~$ /home/coin/bitshares-pytools/delegate-feed/main.py ALLLoading data: yahoo, Yunbi, BTC38, BTer, Poloniex, bittrex -- done. Calculating bts feeds prices and checking publish rules.+--------+-------------+-------------+-------------+-------------------+---------------+-----------------------+-----------------+--------------------+----------------+| asset | my price | my mean | my median | blockchain median | % change (my) | % change (blockchain) | % std exchanges | % spread exchanges | last update |+--------+-------------+-------------+-------------+-------------------+---------------+-----------------------+-----------------+--------------------+----------------+| BTC | 0.00003208 | 0.00003424 | 0.00003190 | 0.00003138 | -0.00002 | 0.00007 | -0.55994 | 34.87154 | 0:05:28.358102 || SILVER | 0.00061402 | 0.00062073 | 0.00061585 | 0.00060565 | -0.00051 | 0.00084 | 0.29749 | 1.88576 | 0:05:28.358277 || GOLD | 0.00000817 | 0.00000834 | 0.00000820 | 0.00000807 | -0.00001 | 0.00001 | 0.29749 | 3.85298 | 0:05:28.358474 || TRY | 0.02461504 | 0.02488039 | 0.02468827 | 0.02428019 | -0.01995 | 0.03348 | 0.29749 | 1.85849 | 0:05:28.358681 || SGD | 0.01307933 | 0.01322029 | 0.01311824 | 0.01290005 | -0.01107 | 0.01793 | 0.29749 | 1.85801 | 0:05:28.358855 || HKD | 0.07323128 | 0.07402157 | 0.07344913 | 0.07224605 | -0.06119 | 0.09852 | 0.29749 | 1.86086 | 0:05:28.359011 || RUB | 0.58037768 | 0.58668129 | 0.58210423 | 0.57722316 | -0.41293 | 0.31545 | 0.29749 | 1.87476 | 0:05:28.359184 || SEK | 0.08134566 | 0.08222397 | 0.08158765 | 0.08032429 | -0.06028 | 0.10214 | 0.29749 | 1.86197 | 0:05:28.359351 || NZD | 0.01309006 | 0.01323130 | 0.01312901 | 0.01289887 | -0.01081 | 0.01912 | 0.29749 | 1.86034 | 0:05:28.359521 || CNY | 0.05902441 | 0.05966100 | 0.05920000 | 0.05822609 | -0.04784 | 0.07983 | 0.29749 | 1.85955 | 0:05:28.359710 || MXN | 0.14570331 | 0.14727040 | 0.14613676 | 0.14368973 | -0.11085 | 0.20136 | 0.29749 | 1.85360 | 0:05:28.363558 || CAD | 0.01202396 | 0.01215356 | 0.01205973 | 0.01186628 | -0.00960 | 0.01577 | 0.29749 | 1.85826 | 0:05:28.363727 || CHF | 0.00950887 | 0.00961143 | 0.00953716 | 0.00938189 | -0.00896 | 0.01270 | 0.29749 | 1.85961 | 0:05:28.364509 || AUD | 0.01243169 | 0.01256575 | 0.01246867 | 0.01226248 | -0.01029 | 0.01692 | 0.29749 | 1.85938 | 0:05:28.364710 || GBP | 0.00630906 | 0.00637712 | 0.00632783 | 0.00623020 | -0.00517 | 0.00789 | 0.29749 | 1.85992 | 0:05:28.364915 || JPY | 1.14388392 | 1.15645820 | 1.14728685 | 1.12845345 | -1.15104 | 1.54305 | 0.29749 | 1.90103 | 0:05:28.365074 || EUR | 0.00893483 | 0.00903126 | 0.00896141 | 0.00882361 | -0.00868 | 0.01112 | 0.29749 | 1.86095 | 0:05:28.365246 || USD | 0.00942220 | 0.00952382 | 0.00945023 | 0.00929769 | -0.00776 | 0.01245 | 0.29749 | 1.85955 | 0:05:28.365432 || KRW | 10.73171087 | 10.82715000 | 10.76363650 | 10.58601807 | -8.69817 | 14.56928 | 0.29749 | 1.48115 | 0:05:28.365597 |+--------+-------------+-------------+-------------+-------------------+---------------+-----------------------+-----------------+--------------------+----------------+
The issue with the feed scripts currently is that too few BTS pairs are traded on exchanges .. if there were more BTS/CNY, BTS/USD, BTS/BTC and BTS/EUR .. taking the 'average price' for gold silver etc. would smooth out more ..also the volatility of BTC makes it difficult IMHO .. atm we should run the feed script more often to track the price better