Bitcoin Forum
November 02, 2024, 11:25:41 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 »
  Print  
Author Topic: bitfloor needs your help!  (Read 177445 times)
SgtSpike
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
December 10, 2012, 06:51:31 PM
 #681

I received a little over 1.7% of my held balance back.

If the exchange rate goes up much more that would make it harder on BitFloor.  It is like taking out a  BTC loan and then having to repay from dollar-based income.

No, because the transaction fees are a percentage so it scales up. The only way to make it harder or easier for Bitfloor to pay back its debts is to change its volume.

Right, and for all of us doing dollar cost averaging increase in price means decrease in volume.
OTOH, if Bitcoin goes to $1,000, you can bet on there being a lot higher volume, just because an increase in price generally correlates with an increase in interest.
bb113
Hero Member
*****
Offline Offline

Activity: 728
Merit: 500


View Profile
January 10, 2013, 06:42:39 AM
 #682

Apparently that 1.5% satisfied everyone. I wonder what he has in store next. It'd be nice to see some kind of indicator that "fills up" until the threshold is reached.
SgtSpike
Legendary
*
Offline Offline

Activity: 1400
Merit: 1005



View Profile
January 10, 2013, 07:21:12 AM
 #683

Apparently that 1.5% satisfied everyone. I wonder what he has in store next. It'd be nice to see some kind of indicator that "fills up" until the threshold is reached.
Well, it's better than nothing in that it shows SOME progress...
BoardGameCoin
Sr. Member
****
Offline Offline

Activity: 283
Merit: 250



View Profile
January 10, 2013, 07:31:58 AM
 #684

I keep rough tabs on the intake in terms of revenue for bitfloor to guess about how long it'll take to be paid back. I'm still a little surprised they were able to make the payment they did, but certainly grateful for it. I think outside investment might have been or be involved. On a relatively high-volume day like today, they make ~ 5BTC. It would take 13 years of days like today's to provide enough revenue to cover the debt.

My hope is that they can become an exchange to rival Gox. If they split Gox's current market share and there wasn't additional growth, then they could pay their debt with 1.5 years worth or revenue.

We'll see. One thing is certain: they need to continue to communicate and find ways to make deposits quicker/easier. I appreciate their approach, and am probably about a month of stability away from starting to use them again, though this time with a lot less BTC floating on the exchange.

I'm selling great Minion Games like The Manhattan Project, Kingdom of Solomon and Venture Forth at 4% off retail starting June 2012. PM me or go to my thread in the Marketplace if you're interested.

For Settlers/Dominion/Carcassone etc., I do email gift cards on Amazon for a 5% fee. PM if you're interested.
bb113
Hero Member
*****
Offline Offline

Activity: 728
Merit: 500


View Profile
January 10, 2013, 10:40:32 AM
 #685

Ok this summarizes it pretty well. Data is from: http://bitcoincharts.com/markets/bitfloorUSD.html


http://i47.tinypic.com/107uql0.png

This R script will generate the above updated according to the bitcoin charts schedule. If someone knows how to host it and have it update in this thread automatically that would be cool:
Code:

#Set the estimated proportion payed back
est.payed.back<-.017

#Get Data from bitcoincharts
bitfloor<-read.table("http://bitcoincharts.com/t/trades.csv?symbol=bitfloorUSD&start=0",
                     sep=","
)

##Convert Times from Unix
times=matrix(nrow=nrow(bitfloor), ncol=6)
time.string=NULL
for(i in 1:nrow(bitfloor)){
  timeStamp<-ISOdatetime(1970,1,1,0,0,0) + bitfloor[i,1]
  
  date<-strsplit(as.character(timeStamp), " ")[[1]][1]
  yr<-as.numeric(strsplit(date, "-")[[1]][1])
  mo<-as.numeric(strsplit(date, "-")[[1]][2])
  day<-as.numeric(strsplit(date, "-")[[1]][3])
  
  ToD<-strsplit(as.character(timeStamp), " ")[[1]][2]
  hr<-as.numeric(strsplit(ToD, ":")[[1]][1])
  min<-as.numeric(strsplit(ToD, ":")[[1]][2])
  sec<-as.numeric(strsplit(ToD, ":")[[1]][2])
  
  times[i,]<-cbind(yr,mo,day,hr,min,sec)
  time.string<-rbind(time.string,as.character(timeStamp))
}

bitfloor<-cbind(times,bitfloor)
colnames(bitfloor)<-c("Yr","Mo","Day","Hr","Min","Sec","UnixT","Price","Vol")

##Set First Timestamp bitfloor was open after hack
post.hack.open.time<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==9 & bitfloor[,3]==21),],
  1)[7])

##Divide into pre and post hack data
pre.hack.bitfloor<-bitfloor[which(bitfloor[,7]<post.hack.open.time),]
post.hack.bitfloor<-bitfloor[which(bitfloor[,7]>(post.hack.open.time-1)),]

#Generate cumulative volume and fees
pre.hack.bitfloor<-cbind(pre.hack.bitfloor,
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9]),
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9])*.005
)
colnames(pre.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")

post.hack.bitfloor<-cbind(post.hack.bitfloor,
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9]),
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9])*.003
)
colnames(post.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")
#

##Set Timestamp of first payout
payback.time.one<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==12 & bitfloor[,3]==1),],
  1)[7])

##Split into pre and post payout
pre.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]<payback.time.one),]
post.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]>(payback.time.one-1)),]

#Generate cumulative volume and fee data
pre.payout.one[,10:11]<-cbind(
  cumsum(pre.payout.one[,8]*pre.payout.one[,9]),
  cumsum(pre.payout.one[,8]*pre.payout.one[,9])*.003
)

post.payout.one[,10:11]<-cbind(
  cumsum(post.payout.one[,8]*post.payout.one[,9]),
  cumsum(post.payout.one[,8]*post.payout.one[,9])*.003
)
#

##Get months from unix timestamps
month.labels=data.frame()
for(y in 2012:2013){
  for(m in 1:12){
    unixT<-bitfloor[which(bitfloor[,1]==y & bitfloor[,2]==m),7][1]
    month.labels<-rbind(month.labels,cbind(unixT,month.name[m]))
  }
}
month.labels<-month.labels[which(!is.na(month.labels[,1])),]
month.labels<-month.labels[2:nrow(month.labels),]

##Misc
Total.Value.Stolen<-25000*tail(bitfloor[,8],1)
Total.Value.Payed<-est.payed.back*Total.Value.Stolen

##Make Plots
dev.new()
layout(matrix(c(1,1,1,3,2,2,2,4), 2, 4, byrow = TRUE))
plot(bitfloor[,7],bitfloor[,8], type="n", xaxt="n",
     xlab="Time",
     ylab="USD/BTC",ylim=c(0,(max(bitfloor[,8])+5)),
     main="Bitfloor Price History"
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.hack.bitfloor[,7],pre.hack.bitfloor[,8], col="Green")
lines(pre.payout.one[,7],pre.payout.one[,8], col="Red")
lines(post.payout.one[,7],post.payout.one[,8], col="Blue")
abline(v=payback.time.one)

plot(pre.hack.bitfloor[,7],pre.hack.bitfloor[,11], xaxt="n",
     xlab="Time",
     ylab="Cumulative Fees Generated (USD)",
     xlim=c(min(bitfloor[,7]),max(bitfloor[,7])),
     type="l", lwd=3, col="Green",
     main=c("Bitfloor Cumulative Fee Revenue",
            "Before Hack Rate= 0.5%,   After Hack= 0.3%")
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.payout.one[,7],pre.payout.one[,11],
      type="l", lwd=3, col="Red"
)
lines(post.payout.one[,7],post.payout.one[,11],
      type="l", lwd=3, col="Blue"
)
abline(v=payback.time.one)

barplot(c(
  Total.Value.Stolen,
  Total.Value.Payed
),
        ylab="USD", ylim=c(0,1.1*Total.Value.Stolen),
        names.arg=c(paste("Value Stolen=", Total.Value.Stolen),
                    paste("Value Payed=",Total.Value.Payed)),
        col=c("Red","Green"),
        main=paste("Estimated Payed Back=",100*est.payed.back,"%")
)

barplot(c(
  max(pre.payout.one[,11]),
  max(post.payout.one[,11])
),
        ylim=c(0,1.1*max(c(max(pre.payout.one[,11]),max(post.payout.one[,11])))),
        ylab="Fees Generated (USD)",
        names.arg=c(paste("Hack to First Payout=", round(max(pre.payout.one[,11]),1)),
                    paste("Since=",round(max(post.payout.one[,11]),1))),
        col=c("Red","Blue"),
        main="Fees Generated Since Hack"
)





It did take some effort so if anyone finds it useful: 13oEWYh1tEM6voFp2XmBoD6CCCbidkk2Xm
420
Hero Member
*****
Offline Offline

Activity: 756
Merit: 500



View Profile
January 12, 2013, 05:57:54 AM
 #686

What is this ING deposit? like a online based company has checking accounts?

Donations: 1JVhKjUKSjBd7fPXQJsBs5P3Yphk38AqPr - TIPS
the hacks, the hacks, secure your bits!
Rassah
Legendary
*
Offline Offline

Activity: 1680
Merit: 1035



View Profile WWW
January 12, 2013, 06:19:13 AM
 #687

What is this ING deposit? like a online based company has checking accounts?

ING was the second online-only bank after NetBank, at a time when online banking was somewhat in its infancy, and the general idea was that all banks should have buildings and bank branches. By being entirely online, ING was able so save a lot of money, and offer free checking with lots of free features, as well as savings accounts with the highest interest rates in the country. They also for a time allowed you to use any ATM for free, and even reimbursed you the $1.50 ATM cash withdrawal fees many ATMs charge. Another feature was that they bragged about being able to fire their customers. In other words, if you called and complained too much, or had too many overdrafts, they would cancel your account and kindly ask you to go elsewhere. Basically, they advertised themselves as a bank for tech-savvy, responsible types.
They have gone a little bit downhill since, mainly with their savings rates and such, but I still use them as my main bank. Their ING P2P feature allows you to wire money to anyone else for free, which takes 2 to 3 days for external transfers, and instantly between ING customers. Bitfloor allows you to send them money using your ING account for free, but since they don't have an ING account themselves, it takes 3 days.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
January 12, 2013, 06:23:31 AM
 #688

What is this ING deposit? like a online based company has checking accounts?

ING was the second online-only bank after NetBank, at a time when online banking was somewhat in its infancy, and the general idea was that all banks should have buildings and bank branches. By being entirely online, ING was able so save a lot of money, and offer free checking with lots of free features, as well as savings accounts with the highest interest rates in the country. They also for a time allowed you to use any ATM for free, and even reimbursed you the $1.50 ATM cash withdrawal fees many ATMs charge. Another feature was that they bragged about being able to fire their customers. In other words, if you called and complained too much, or had too many overdrafts, they would cancel your account and kindly ask you to go elsewhere. Basically, they advertised themselves as a bank for tech-savvy, responsible types.
They have gone a little bit downhill since, mainly with their savings rates and such, but I still use them as my main bank. Their ING P2P feature allows you to wire money to anyone else for free, which takes 2 to 3 days for external transfers, and instantly between ING customers. Bitfloor allows you to send them money using your ING account for free, but since they don't have an ING account themselves, it takes 3 days.

They are now a subsidiary of Capital One, but other than that they are great.

Also, Bitfloor should get an ING account.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
January 12, 2013, 05:54:31 PM
 #689

ING doesn't have business checking accounts.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3472
Merit: 4801



View Profile
January 12, 2013, 08:38:08 PM
 #690

They are now a subsidiary of Capital One . . .
Looks like the are going to be re-branded.  No more "ING" or "Electric Orange". Now it will be "Capital One 360" and "360 Checking":

https://home.ingdirect.com/capitalone/product-updates
Elwar
Legendary
*
Offline Offline

Activity: 3598
Merit: 2386


Viva Ut Vivas


View Profile WWW
January 16, 2013, 05:58:40 PM
 #691

So Bitfloor still takes ING p2p deposits? I was on their site and could not find it.

I am currently at work so I cannot access the page but could someone show me where I go to do this?

First seastead company actually selling sea homes: Ocean Builders https://ocean.builders  Of course we accept bitcoin.
jwzguy
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1002



View Profile
January 16, 2013, 06:00:46 PM
 #692

So Bitfloor still takes ING p2p deposits? I was on their site and could not find it.

I am currently at work so I cannot access the page but could someone show me where I go to do this?
Click on deposit. If you don't see the deposit tab you may need to log in first.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
January 16, 2013, 06:25:03 PM
 #693

So Bitfloor still takes ING p2p deposits? I was on their site and could not find it.

I am currently at work so I cannot access the page but could someone show me where I go to do this?
Click on deposit. If you don't see the deposit tab you may need to log in first.

Yep, deposit->USD->ING P2P

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
420
Hero Member
*****
Offline Offline

Activity: 756
Merit: 500



View Profile
January 19, 2013, 11:04:38 PM
 #694

why can only withdraw via ACH and not ING p2p?

Donations: 1JVhKjUKSjBd7fPXQJsBs5P3Yphk38AqPr - TIPS
the hacks, the hacks, secure your bits!
jwzguy
Hero Member
*****
Offline Offline

Activity: 868
Merit: 1002



View Profile
January 20, 2013, 12:21:07 AM
 #695

why can only withdraw via ACH and not ING p2p?
Because ING does not allow businesses to open accounts with the P2P capability. Bitfloor doesn't have an ING account. They just accept transfers from them.
420
Hero Member
*****
Offline Offline

Activity: 756
Merit: 500



View Profile
January 20, 2013, 02:06:04 AM
 #696

why can only withdraw via ACH and not ING p2p?
Because ING does not allow businesses to open accounts with the P2P capability. Bitfloor doesn't have an ING account. They just accept transfers from them.

owner could just open in his name

Donations: 1JVhKjUKSjBd7fPXQJsBs5P3Yphk38AqPr - TIPS
the hacks, the hacks, secure your bits!
subject
Newbie
*
Offline Offline

Activity: 41
Merit: 0


View Profile
February 15, 2013, 03:38:49 AM
 #697

Any word on the next release of held funds shtylman?
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
February 15, 2013, 05:03:45 AM
 #698

Ok this summarizes it pretty well. Data is from: http://bitcoincharts.com/markets/bitfloorUSD.html


http://i47.tinypic.com/107uql0.png

This R script will generate the above updated according to the bitcoin charts schedule. If someone knows how to host it and have it update in this thread automatically that would be cool:
Code:

#Set the estimated proportion payed back
est.payed.back<-.017

#Get Data from bitcoincharts
bitfloor<-read.table("http://bitcoincharts.com/t/trades.csv?symbol=bitfloorUSD&start=0",
                     sep=","
)

##Convert Times from Unix
times=matrix(nrow=nrow(bitfloor), ncol=6)
time.string=NULL
for(i in 1:nrow(bitfloor)){
  timeStamp<-ISOdatetime(1970,1,1,0,0,0) + bitfloor[i,1]
  
  date<-strsplit(as.character(timeStamp), " ")[[1]][1]
  yr<-as.numeric(strsplit(date, "-")[[1]][1])
  mo<-as.numeric(strsplit(date, "-")[[1]][2])
  day<-as.numeric(strsplit(date, "-")[[1]][3])
  
  ToD<-strsplit(as.character(timeStamp), " ")[[1]][2]
  hr<-as.numeric(strsplit(ToD, ":")[[1]][1])
  min<-as.numeric(strsplit(ToD, ":")[[1]][2])
  sec<-as.numeric(strsplit(ToD, ":")[[1]][2])
  
  times[i,]<-cbind(yr,mo,day,hr,min,sec)
  time.string<-rbind(time.string,as.character(timeStamp))
}

bitfloor<-cbind(times,bitfloor)
colnames(bitfloor)<-c("Yr","Mo","Day","Hr","Min","Sec","UnixT","Price","Vol")

##Set First Timestamp bitfloor was open after hack
post.hack.open.time<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==9 & bitfloor[,3]==21),],
  1)[7])

##Divide into pre and post hack data
pre.hack.bitfloor<-bitfloor[which(bitfloor[,7]<post.hack.open.time),]
post.hack.bitfloor<-bitfloor[which(bitfloor[,7]>(post.hack.open.time-1)),]

#Generate cumulative volume and fees
pre.hack.bitfloor<-cbind(pre.hack.bitfloor,
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9]),
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9])*.005
)
colnames(pre.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")

post.hack.bitfloor<-cbind(post.hack.bitfloor,
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9]),
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9])*.003
)
colnames(post.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")
#

##Set Timestamp of first payout
payback.time.one<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==12 & bitfloor[,3]==1),],
  1)[7])

##Split into pre and post payout
pre.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]<payback.time.one),]
post.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]>(payback.time.one-1)),]

#Generate cumulative volume and fee data
pre.payout.one[,10:11]<-cbind(
  cumsum(pre.payout.one[,8]*pre.payout.one[,9]),
  cumsum(pre.payout.one[,8]*pre.payout.one[,9])*.003
)

post.payout.one[,10:11]<-cbind(
  cumsum(post.payout.one[,8]*post.payout.one[,9]),
  cumsum(post.payout.one[,8]*post.payout.one[,9])*.003
)
#

##Get months from unix timestamps
month.labels=data.frame()
for(y in 2012:2013){
  for(m in 1:12){
    unixT<-bitfloor[which(bitfloor[,1]==y & bitfloor[,2]==m),7][1]
    month.labels<-rbind(month.labels,cbind(unixT,month.name[m]))
  }
}
month.labels<-month.labels[which(!is.na(month.labels[,1])),]
month.labels<-month.labels[2:nrow(month.labels),]

##Misc
Total.Value.Stolen<-25000*tail(bitfloor[,8],1)
Total.Value.Payed<-est.payed.back*Total.Value.Stolen

##Make Plots
dev.new()
layout(matrix(c(1,1,1,3,2,2,2,4), 2, 4, byrow = TRUE))
plot(bitfloor[,7],bitfloor[,8], type="n", xaxt="n",
     xlab="Time",
     ylab="USD/BTC",ylim=c(0,(max(bitfloor[,8])+5)),
     main="Bitfloor Price History"
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.hack.bitfloor[,7],pre.hack.bitfloor[,8], col="Green")
lines(pre.payout.one[,7],pre.payout.one[,8], col="Red")
lines(post.payout.one[,7],post.payout.one[,8], col="Blue")
abline(v=payback.time.one)

plot(pre.hack.bitfloor[,7],pre.hack.bitfloor[,11], xaxt="n",
     xlab="Time",
     ylab="Cumulative Fees Generated (USD)",
     xlim=c(min(bitfloor[,7]),max(bitfloor[,7])),
     type="l", lwd=3, col="Green",
     main=c("Bitfloor Cumulative Fee Revenue",
            "Before Hack Rate= 0.5%,   After Hack= 0.3%")
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.payout.one[,7],pre.payout.one[,11],
      type="l", lwd=3, col="Red"
)
lines(post.payout.one[,7],post.payout.one[,11],
      type="l", lwd=3, col="Blue"
)
abline(v=payback.time.one)

barplot(c(
  Total.Value.Stolen,
  Total.Value.Payed
),
        ylab="USD", ylim=c(0,1.1*Total.Value.Stolen),
        names.arg=c(paste("Value Stolen=", Total.Value.Stolen),
                    paste("Value Payed=",Total.Value.Payed)),
        col=c("Red","Green"),
        main=paste("Estimated Payed Back=",100*est.payed.back,"%")
)

barplot(c(
  max(pre.payout.one[,11]),
  max(post.payout.one[,11])
),
        ylim=c(0,1.1*max(c(max(pre.payout.one[,11]),max(post.payout.one[,11])))),
        ylab="Fees Generated (USD)",
        names.arg=c(paste("Hack to First Payout=", round(max(pre.payout.one[,11]),1)),
                    paste("Since=",round(max(post.payout.one[,11]),1))),
        col=c("Red","Blue"),
        main="Fees Generated Since Hack"
)





It did take some effort so if anyone finds it useful: 13oEWYh1tEM6voFp2XmBoD6CCCbidkk2Xm

If you can make it output to an image file, I'd be glad to put up a link and a cronjob to update it once a week.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
February 15, 2013, 05:04:58 AM
 #699

Nevermind, I see it generates a pdf.  I can convert that to a png.


https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
bb113
Hero Member
*****
Offline Offline

Activity: 728
Merit: 500


View Profile
February 18, 2013, 05:26:23 PM
Last edit: February 18, 2013, 05:41:34 PM by bitcoinbitcoin113
 #700

It looks like some of the text is cut off at the current size, do you want it to automatically generate a png?

This will automatically create "bitfloor.png" in whatever your working directory is. I'm not sure how familiar you are with R... to see the working directory run getwd()

Code:


#Get Data from bitcoincharts
bitfloor<-read.table("http://bitcoincharts.com/t/trades.csv?symbol=bitfloorUSD&start=0",
                     sep=","
)

##Convert Times from Unix
times=matrix(nrow=nrow(bitfloor), ncol=6)
time.string=NULL
for(i in 1:nrow(bitfloor)){
  timeStamp<-ISOdatetime(1970,1,1,0,0,0) + bitfloor[i,1]
 
  date<-strsplit(as.character(timeStamp), " ")[[1]][1]
  yr<-as.numeric(strsplit(date, "-")[[1]][1])
  mo<-as.numeric(strsplit(date, "-")[[1]][2])
  day<-as.numeric(strsplit(date, "-")[[1]][3])
 
  ToD<-strsplit(as.character(timeStamp), " ")[[1]][2]
  hr<-as.numeric(strsplit(ToD, ":")[[1]][1])
  min<-as.numeric(strsplit(ToD, ":")[[1]][2])
  sec<-as.numeric(strsplit(ToD, ":")[[1]][2])
 
  times[i,]<-cbind(yr,mo,day,hr,min,sec)
  time.string<-rbind(time.string,as.character(timeStamp))
}

bitfloor<-cbind(times,bitfloor)
colnames(bitfloor)<-c("Yr","Mo","Day","Hr","Min","Sec","UnixT","Price","Vol")

##Set First Timestamp bitfloor was open after hack
post.hack.open.time<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==9 & bitfloor[,3]==21),],
  1)[7])

##Divide into pre and post hack data
pre.hack.bitfloor<-bitfloor[which(bitfloor[,7]<post.hack.open.time),]
post.hack.bitfloor<-bitfloor[which(bitfloor[,7]>(post.hack.open.time-1)),]

#Generate cumulative volume and fees
pre.hack.bitfloor<-cbind(pre.hack.bitfloor,
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9]),
                         cumsum(pre.hack.bitfloor[,8]*pre.hack.bitfloor[,9])*.005
)
colnames(pre.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")

post.hack.bitfloor<-cbind(post.hack.bitfloor,
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9]),
                          cumsum(post.hack.bitfloor[,8]*post.hack.bitfloor[,9])*.003
)
colnames(post.hack.bitfloor)[10:11]<-c("cumUSD.Vol","cumFee")
#

##Set Timestamp of first payout
payback.time.one<-as.numeric(head(
  bitfloor[which(bitfloor[,1]==2012 & bitfloor[,2]==12 & bitfloor[,3]==1),],
  1)[7])

##Split into pre and post payout
pre.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]<payback.time.one),]
post.payout.one<-post.hack.bitfloor[which(post.hack.bitfloor[,7]>(payback.time.one-1)),]

#Generate cumulative volume and fee data
pre.payout.one[,10:11]<-cbind(
  cumsum(pre.payout.one[,8]*pre.payout.one[,9]),
  cumsum(pre.payout.one[,8]*pre.payout.one[,9])*.003
)

post.payout.one[,10:11]<-cbind(
  cumsum(post.payout.one[,8]*post.payout.one[,9]),
  cumsum(post.payout.one[,8]*post.payout.one[,9])*.003
)
#

##Get months from unix timestamps
month.labels=data.frame()
for(y in 2012:2013){
  for(m in 1:12){
    unixT<-bitfloor[which(bitfloor[,1]==y & bitfloor[,2]==m),7][1]
    month.labels<-rbind(month.labels,cbind(unixT,month.name[m]))
  }
}
month.labels<-month.labels[which(!is.na(month.labels[,1])),]
month.labels<-month.labels[2:nrow(month.labels),]

##Misc
est.payed.back<-.017
Total.Value.Stolen<-25000*tail(bitfloor[,8],1)
Total.Value.Payed<-est.payed.back*Total.Value.Stolen

##Make Plots
png("bitfloor.png", height=800, width=1300, pointsize=15)
layout(matrix(c(1,1,1,3,2,2,2,4), 2, 4, byrow = TRUE))
plot(bitfloor[,7],bitfloor[,8], type="n", xaxt="n",
     xlab="Time",
     ylab="USD/BTC",ylim=c(0,(max(bitfloor[,8])+5)),
     main="Bitfloor Price History"
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.hack.bitfloor[,7],pre.hack.bitfloor[,8], col="Green")
lines(pre.payout.one[,7],pre.payout.one[,8], col="Red")
lines(post.payout.one[,7],post.payout.one[,8], col="Blue")
abline(v=payback.time.one)

plot(pre.hack.bitfloor[,7],pre.hack.bitfloor[,11], xaxt="n",
     xlab="Time",
     ylab="Cumulative Fees Generated (USD)",
     xlim=c(min(bitfloor[,7]),max(bitfloor[,7])),
     type="l", lwd=3, col="Green",
     main=c("Bitfloor Cumulative Fee Revenue",
            "Before Hack Rate= 0.5%,   After Hack= 0.3%")
)
axis(1,at=as.numeric(as.matrix(month.labels[,1])),
     labels=as.character(month.labels[,2]))
lines(pre.payout.one[,7],pre.payout.one[,11],
      type="l", lwd=3, col="Red"
)
lines(post.payout.one[,7],post.payout.one[,11],
      type="l", lwd=3, col="Blue"
)
abline(v=payback.time.one)

barplot(c(
  Total.Value.Stolen,
  Total.Value.Payed
),
        ylab="USD", ylim=c(0,1.1*Total.Value.Stolen),
        names.arg=c(paste("Value Stolen=", Total.Value.Stolen),
                    paste("Value Payed=",Total.Value.Payed)),
        col=c("Red","Green"),
        main=paste("Estimated Payed Back=",100*est.payed.back,"%")
)

barplot(c(
  max(pre.payout.one[,11]),
  max(post.payout.one[,11])
),
        ylim=c(0,1.1*max(c(max(pre.payout.one[,11]),max(post.payout.one[,11])))),
        ylab="Fees Generated (USD)",
        names.arg=c(paste("Hack to First Payout=", round(max(pre.payout.one[,11]),1)),
                    paste("Since=",round(max(post.payout.one[,11]),1))),
        col=c("Red","Blue"),
        main="Fees Generated Since Hack"
)
dev.off()



you may need to adjust these settings for your system, I had to play around with it:
Code:
png("bitfloor.png", height=800, width=1300, pointsize=15)
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36 37 38 39 40 41 42 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!