HERTZ FBA Created!

3 months ago
66 in bitshares

Hertz Chart

What is Hertz?

Hertz is a Formula Based Asset (FBA) which is pegged against the [USD|XDR] and modified to oscillate between rising the price feed and decreasing it in a predictable manner, thus we create phases of buying and selling pressure constantly back and forth forever.


Formula price feed script:


Haskell script



Surrendered FBA settings

  • Disable confidential transactions:
  • Require holders to be white-listed:
  • Issuer may transfer asset back to himself:
  • Issuer must approve all transfers

TODO

  • We need to create a reliable implementation of the above pseudocode into the witness price feed scripts.
  • We need 7 witnesses to commit to publishing the price feed.
  • We need to decide whether to base it on USD or XDR/SDR
  • We need to decide upon the Amplitude value, is 0.5 (50%) acceptable?
  • We need to decide upon a the BlockPeriod (quantity of blocks representing 1 full oscillation).
  • Discuss optimal Smartcoin settings.

Links


CRYPTOFRESH HERTZ details
Openledger HERTZ details
Bitsharestalk thread
Original Steemit thread
Consider voting for Customminer as proxy!

Best regards,
Customminer.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  trending
66
  ·  3 months ago

·
66
  ·  3 months ago

The middle wave above could be implemented by implementing a price feed limit at certain ranges of x and increasing the Amplitude value to 0.75 to maintain a peak of 0.5 change.

·
66
  ·  3 months ago

chart

Rather than a simple sin wave, we could have a sin wave with a period on the way down where the asset would be equal to the backing asset for about a week?

What do you think about the use of Fourier series? https://en.wikipedia.org/wiki/Fourier_series

Think wave interference would be simpler? Combining a triangle/sawtooth wave with a sin wave to get the above desired effect?

Thoughts?

55
  ·  3 months ago

but what is purpose for all that FBA stuff ?
see no real use cases , except to show that BitShares can do everything, even such a wow asset :D

·
66
  ·  3 months ago

It has the purpose of the backing asset plus incentivized buy and sell support, I see a real use case there.

57
  ·  3 months ago

Congratulations @cm-steem! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

If you want to support the SteemitBoard project, your upvote for this notification is welcome!

·
66
  ·  3 months ago

Awesome, that's pretty cool getting notified of awards/achievements :D

·
·
57
  ·  3 months ago

Steem on!

65
  ·  3 months ago

This is really cute. How about a period of exactly one week? Is that in line with what you're picturing? That way the period is much longer than the force settle delay which makes settlement timing less pressing.

·
66
  ·  3 months ago

HERO by comparison only increases 5% per year, I think that one week is far too fast, I was thinking in the month+ range per cycle at least.

·
·
65
  ·  3 months ago

Ah got it.

By the way, I think another great formula asset would be SUPERHERO: rather than growing at a measly 5% annually, why not grow at 100%? At that rate, there can't be any doubt that it will trade at a premium to the price feed, and it would be fascinating to see how high that premium might be.

·
·
·
66
  ·  3 months ago

There's nothing stopping you from creating an MPA with such a price feed formula, would it be 100% at the very end of the year or incrementally over the year?

·
·
·
·
65
  ·  3 months ago

Sure, I could create one, but then I'd have to go find feed producers etc. Sadly that's rather low on my list of priorities at the moment.

Oh, incrementally. Just like HERO, it would increase continuously.

·
·
·
·
·
66
  ·  3 months ago

I thought it only increased at the end of the year, it increasing incrementally throughout the year makes it more interesting for sure.

·
·
·
·
·
66
  ·  3 months ago

You're right though, chasing up price feeds is going to be an uphill battle. First step is to get the witnesses to acknowledge your existence, haha!

·
·
·
·
·
56
  ·  2 months ago

For the token to exist you would have to bet that bitshares would increase more than 100% a year, which is pretty risky. People would much rather short the dollar or the Hero so I don't think you'd have much of a market.

·
·
·
·
·
·
65
  ·  2 months ago

If the token trades at the price feed, then you're right. However, my bet is that the token wouldn't trade at the price feed - it would trade much higher. Probably 10x higher or something like that. In this way, the market would set the effective interest rate - just as it will with HERO.

·
·
·
·
·
·
·
56
  ·  2 months ago

Because there is a shortage of tokens. Nobody would create the tokens if that were true, meaning an illiquid market. An illiquid market will be plagued with price swings and margin calls, plus a huge loss of money to the issuers.. especially if it were trading at 10x the price feed, which I don't think could be sustained due to the price fluctuations

·
55
  ·  3 months ago

customminer CM tweeted @ 18 May 2017 - 09:28 UTC

Announcement thread for $HERTZ Formula Based Asset (#FBA) steemit.com/bitshares/@cm-… #Bitshares #Cryptocurrency @bitshares @Beyond_Bitcoin

Disclaimer: I am just a bot trying to be helpful.
66
  ·  3 months ago

Oscillation period discussion

  • 3 secs per block (estimated)
  • 28800 blocks per day
  • 10512000 blocks per year (not accounting for leap years)
  • 876000 per month (year/12)

I think that the block period per oscillation should be 876,000 blocks so as to represent one month per cycle.

If you think one month is too quick, do post an alternative.

66
  ·  3 months ago

Formula refining

X_Period = MOD((CurrentBlock - AssetGenesisBlock),BlocksInPeriod)/BlocksInPeriod

The final division by 'BlocksInPeriod' was initially proposed to reduce the MOD value from xxxx to 0.xxxx, however a better approach would simply be taking the length of the MOD value then moving the decimal place left that many values. This would give a more straightforwards value from the MOD to aply against the reference asset.

·
66
  ·  3 months ago

Formula refined & Beta price feed script available!

https://github.com/grctest/HERTZ-Price-feed-script/

57
  ·  3 months ago

How do I benefit from this. Can it indicate entry and exit price.

·
66
  ·  3 months ago

You could sell the token at a high feed price, then buy back at a lower value then sell it on the way back up. You could buy it on the way down then sell it at a higher value on the way back up.

The hope is that this drives up liquidity significantly.

57
  ·  3 months ago

how can it be installed in a computer

·
66
  ·  3 months ago

It's an MPA - an asset issued on the Bitshares DEX. The Witnesses produce the price feeds, not the users. You can run the script with Haskell, go check out the github repo linked in the main post.

66
  ·  3 months ago

Regarding existing price feed scripts written in python such as bitshares-pricefeed by xeroc: https://github.com/xeroc/bitshares-pricefeed/

Reference hero file: https://github.com/xeroc/bitshares-pricefeed/blob/master/bitshares_pricefeed/examples/hero.yaml

hero formula (line 41):
formula: 1.05 ** ((date.today() - date(1913, 12, 23)).days / 365.2425) / {quoteSettlement_price}

The haskell script could be replicated in python, or we could use the haskell script to precompute a large CSV of blocknumbers to modify the latest price feed value with.
formula: quoteSettlement_price + read_CSV_For_Wave_Value(BlockNumber)

The python price feed script uses time/dates instead of block numbers, so perhaps there will be a difference in computed values between haskell and python.

python implementation? (I don't know python)

import math
import date

quoteSettlement_price = XDR
Time_In_Period = one month duration
amplitude = 0.5

x_value = (remainder of ((date.today() - date(Asset_Genesis_Date_Timestamp))/Time_In_Period) divided by 1.00)  // to return 0.xx

feed_price = quoteSettlement_price + (((quoteSettlement_price * amplitude)*(sin((x_value * Time_In_Period)) * ((2*math.pi)/Time_In_Period) ))))