Pages:
Author

Topic: (Closed) Butter Bot!: Premier Bitstamp, and BTC-E EMA Trading Platform (Closed) - page 72. (Read 274784 times)

legendary
Activity: 1890
Merit: 1003
I'm still not getting it. I trust that you're the expert & that what you say must be the truth of the matter, but I'm failing to understand it myself.

If I sold at 90 following a rally that peaked at 100, and it either goes to 20 or 80, either way the bot will recognize the bottom curve & buy after the peak. I don't get why it sometimes waits to buy at a bottom curve that somehow got to be higher than the sell point. Why didn't it buy at the first lower peak point after the high point in the cycle where it sold in the first place, because it wasn't far below the sell point enough maybe?

How do these conditions where it trades at a loss develop anyway? Is there another way to protect against being nickel & dimed then by adding 'always profit' logic, since that's unadvisable?

I know you've mentioned that there's a new improved trading engine to be released in the near future. Will it be any better than 70/30 loss/profit? I'd be interested in hearing about how exactly it's been improved.
I guess the only way to prove him "wrong" is to code it and see if it works in practice. (I am of the NginUS opinion)

The big question is how intervene when butter bot wants to do something which we can call an unnecessary trade. (always at a profit)

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

The first idea that comes to mind is to watch B-Bots stats and make a trigger that identifies an unnecessary trade.
The next idea is to probably to use B-Bots ability to be disabled as a method of keeping it from doing an unnecessary trade.
Perhaps re-enabling B-Bot again when the circumstances are within what someone could define "at a profit".

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

The obstacles that come to mind are what the side effects are to disabling b-bot at random times and then re-enabling it. I have no idea if b-bot will keep working right after an interruption. (would need to be tested)

The user would have to input their settings as to what are the trigger buy/sell values for the EMA separation. (not hard) This is just so that the add-on would trigger before B-Bot does it's trading routine. The question that comes to mind is whether B-bot first trades and then updates it's graph or if it writes the graph first and then executes the trade. Dunno how much of a delay there might be.


=======[Discount Code for Butter (10% off)]=========

https://butter-bot.com/?r=f5a17f5b

Use my referal code cause' im sooo cute!  Grin Cheesy



You'll get an extra month free, it's all on me!
legendary
Activity: 1183
Merit: 1000
I'm still not getting it. I trust that you're the expert & that what you say must be the truth of the matter, but I'm failing to understand it myself.

If I sold at 90 following a rally that peaked at 100, and it either goes to 20 or 80, either way the bot will recognize the bottom curve & buy after the peak. I don't get why it sometimes waits to buy at a bottom curve that somehow got to be higher than the sell point. Why didn't it buy at the first lower peak point after the high point in the cycle where it sold in the first place, because it wasn't far below the sell point enough maybe?

How do these conditions where it trades at a loss develop anyway? Is there another way to protect against being nickel & dimed then by adding 'always profit' logic, since that's unadvisable?

I know you've mentioned that there's a new improved trading engine to be released in the near future. Will it be any better than 70/30 loss/profit? I'd be interested in hearing about how exactly it's been improved.

Hmmm, let me think about how we can go about this.

I don't think I've said anything publicly about developing a new trading engine, we are looking into it but it's far from a done deal right now.

We are always trying to optimize the trading strategy and reduce any possible losses Smiley.

Pablo.
full member
Activity: 190
Merit: 100
I'm still not getting it. I trust that you're the expert & that what you say must be the truth of the matter, but I'm failing to understand it myself.

If I sold at 90 following a rally that peaked at 100, and it either goes to 20 or 80, either way the bot will recognize the bottom curve & buy after the peak. I don't get why it sometimes waits to buy at a bottom curve that somehow got to be higher than the sell point. Why didn't it buy at the first lower peak point after the high point in the cycle where it sold in the first place, because it wasn't far below the sell point enough maybe?

How do these conditions where it trades at a loss develop anyway? Is there another way to protect against being nickel & dimed then by adding 'always profit' logic, since that's unadvisable?

I know you've mentioned that there's a new improved trading engine to be released in the near future. Will it be any better than 70/30 loss/profit? I'd be interested in hearing about how exactly it's been improved.
legendary
Activity: 1183
Merit: 1000
Ok, I guess I don't understand how it's 'trading suicide' if the market takes a downturn, or if there's a flash crash. Would you mind elaborating on why that is to help me understand?

I assume bitcoin will only appreciate, I take that as a given like gravity always being down. So if the market goes down it will obviously do so after having gone up, and there will have been a bot sell triggered after the bot realizes the rally has peaked- assuming I understand its MO correctly. What's different about if the bottom of the next curve is a little low like it usually is in a typical cycle, or if it's extremely low in the case of either a crash or a tapered downturn- either way, after the curve peaks the bot will recognize the bottom & buy again, right?

I don't see how having a layer of logic to say 'execute buy if buy price lower than sell price else hold for next down curve' could be suicide.

I guess I'm missing something as to why you wouldn't add that logic. Help me understand, please.

BassClef has made several good points.

Ok, so imagine BTC is at 100 USD and your bot buys. Then BTC falls to 80 USD; with EMA your bot would have sold in the high to mid 90's, but with the "Never trade at a loss logic" you are now holding BTC at 80. Now several things can happen here, BTC can go to 60 or it can go to 200, there are no guarantees (no one can assure that BTC will rise over the long term either) so from a probablilistic point of view, you are better of with you BTC in the high 90's than you are with your BTC in the 80's because, yes, it could rally to 200, but it could also hit 20 and stay there. There are no guarantees in trading.

I hope that helps you understand my point. There are several stop loss options that can be built in, I'm not saying anything bad about stop loss at all, I'm saying completely avoiding trades that will incur a loss is a very bad idea.

Please let me know if you need anything at all Smiley.

Pablo.
hero member
Activity: 924
Merit: 1000
Thanks, Pablo.

I just want to chime in another thought on what my ideal stop loss function would look like.

I notice a lot of the time the bot will make trades that will lose money, not large sums, but enough that over time my account would get nickeled & dimed to a significant extent.

For example the first trade it ever did was selling low & buying high, and it didn't just happen that 1 random time- it's happening so often that it's indicating that it's a common occurance. So somehow the bot sees trends and does what it thinks is best even when it's not always best, and I can't help thinking there must be a way to code a subroutine to check for these scenarios and protect against their occuring.

If somehow the trading engine can be programmed to only make profits, and not trade at a loss in these cases when it does so, the savings would add up I think.

For people who are trading with smaller amounts of money, these 3-9% losses are more of an impact on their working capital, and thus their income potential, than those of us with larger sums which provide greater cushion to absorb these trading anomolies.

Markets are difficult to predict. If one could program a bot to always be profitable, everyone would do it.

There are always losers to winners. The profit you make as a trader is a loss to somebody else.

There are times where the market *should* go up and down, but doesn't, and vice versa. And Bitcoin doesn't always appreciate. There have been numerous bear markets, and sometimes the price stagnates (ranges) for weeks and weeks. That's when EMA trading is helpful--it identifies a (potential) up or downtrend, and trades accordingly to put you on the correct side of it to profit.
full member
Activity: 190
Merit: 100
Ok, I guess I don't understand how it's 'trading suicide' if the market takes a downturn, or if there's a flash crash. Would you mind elaborating on why that is to help me understand?

I assume bitcoin will only appreciate, I take that as a given like gravity always being down. So if the market goes down it will obviously do so after having gone up, and there will have been a bot sell triggered after the bot realizes the rally has peaked- assuming I understand its MO correctly. What's different about if the bottom of the next curve is a little low like it usually is in a typical cycle, or if it's extremely low in the case of either a crash or a tapered downturn- either way, after the curve peaks the bot will recognize the bottom & buy again, right?

I don't see how having a layer of logic to say 'execute buy if buy price lower than sell price else hold for next down curve' could be suicide.

I guess I'm missing something as to why you wouldn't add that logic. Help me understand, please.
legendary
Activity: 1183
Merit: 1000
Thanks, Pablo.

I just want to chime in another thought on what my ideal stop loss function would look like.

I notice a lot of the time the bot will make trades that will lose money, not large sums, but enough that over time my account would get nickeled & dimed to a significant extent.

For example the first trade it ever did was selling low & buying high, and it didn't just happen that 1 random time- it's happening so often that it's indicating that it's a common occurance. So somehow the bot sees trends and does what it thinks is best even when it's not always best, and I can't help thinking there must be a way to code a subroutine to check for these scenarios and protect against their occuring.

If somehow the trading engine can be programmed to only make profits, and not trade at a loss in these cases when it does so, the savings would add up I think.

For people who are trading with smaller amounts of money, these 3-9% losses are more of an impact on their working capital, and thus their income potential, than those of us with larger sums which provide greater cushion to absorb these trading anomolies.

Hey Smiley,
  This has been suggested before, the issue with this idea is that it assumes BTC will always appreciate. You can code a routine where the bot checks buy price and only sells if its at a profit, that's amazingly easy, but it's trading suicide if the market takes a downturn or you have a flash crash.

EMA provides pretty good protection against flash crashed with the shorter time frames, yes you get nickel and dimed (EMA will provide about 70% small loss trades to 30% solid profit trades) on some trades but we have to let the bot do it's job and make all those small losses plus your healthy profit back in the long term.

I hope I've explained myself properly, please let me know if you have any questions Smiley.

Pablo.
full member
Activity: 190
Merit: 100
Thanks, Pablo.

I just want to chime in another thought on what my ideal stop loss function would look like.

I notice a lot of the time the bot will make trades that will lose money, not large sums, but enough that over time my account would get nickeled & dimed to a significant extent.

For example the first trade it ever did was selling low & buying high, and it didn't just happen that 1 random time- it's happening so often that it's indicating that it's a common occurance. So somehow the bot sees trends and does what it thinks is best even when it's not always best, and I can't help thinking there must be a way to code a subroutine to check for these scenarios and protect against their occuring.

If somehow the trading engine can be programmed to only make profits, and not trade at a loss in these cases when it does so, the savings would add up I think.

For people who are trading with smaller amounts of money, these 3-9% losses are more of an impact on their working capital, and thus their income potential, than those of us with larger sums which provide greater cushion to absorb these trading anomolies.
legendary
Activity: 1183
Merit: 1000
I just want to let you guys know that we are keeping a close eye on the thread and taking notes.

So far:

1. Trade Log
2. Alterante Strategies
3. Stop loss.

We are discussing how to prioritize all of these but we have a huge set of development tasks ahead of us. We will be sure to post once we know when we can push these out, most likely we can make a final call after hosting/altcoins are out Smiley.

Look forward to more suggestions Smiley.

Pablo.
full member
Activity: 190
Merit: 100
Quote
Please keep the suggestions coming Smiley.

Pablo.


HFT would also be nice... Smiley

atleast have the bot trade 5-10 times a day...

I read way earlier in this thread, say around page 15 or so (give or take 10 pages), that you can configure the bot to do HFT just by adjusting its settings, but it's not recommended because it's simply not that profitable.

I'm looking forward to seeing what we get when the devs release the version that gives us new strategies to choose from in addition to EMA. If these new strategies might prove to be more profitable than EMA it would be quite exciting, otherwise if EMA remains the profit leader, I don't quite care what they are, as I'll stick with the profitability winner.

Aside from that- I do like to see that developing the new variant of stop loss is becoming a priority as of late, because safety is an important concern. I don't like to be vulnerable to a condition where a flash crash could cause destruction since I tend to like to 'set it & forget it' with the bot, and protection against these scenarios is always a good thing.

In addition to seeing this feature developed I'd like to reiterate that a profit/loss tracking feature is something I personally would very much like to see time spent on developing for us.
sr. member
Activity: 462
Merit: 250
Free World
Quote
Please keep the suggestions coming Smiley.

Pablo.


HFT would also be nice... Smiley

atleast have the bot trade 5-10 times a day...
sr. member
Activity: 462
Merit: 250
Can't you try to integrate a stop-loss mechanism like this:
The bot actively compares the current market price against the market price of x minutes ago.
If there's a negative difference of x percent > automatically sell!

That way we'd at least be somewhat protected against a possible flash crash.

Hey Guys Smiley,
  Ok, so we understand that you guys want us to develop the Stop Loss mechanism. Given the discussion over the past few days, this has gained priority for us (we are, after all, guided by the community on what we develop), we are having some internal discussions on this right now; we will see if we can come up with a solution that works with EMA and I will post on this when we have something to report Smiley.

Please keep the suggestions coming Smiley.

Pablo.

Hi,

You might have missed some of my comments Smiley:

- EMA Crossovers are basically a pretty weak trading system. If you like MA's a lot you should consider switching to MACD as it is superior. (http://en.wikipedia.org/wiki/MACD)
- I notice you have to set the trading fee manually (this should be an api call to the exchange every X minutes to check what the trading fee is). Bitstamp has a trading fee based on your volume.

Great work on the bot and great communication with your community by the way!
legendary
Activity: 1183
Merit: 1000
Can't you try to integrate a stop-loss mechanism like this:
The bot actively compares the current market price against the market price of x minutes ago.
If there's a negative difference of x percent > automatically sell!

That way we'd at least be somewhat protected against a possible flash crash.

Hey Guys Smiley,
  Ok, so we understand that you guys want us to develop the Stop Loss mechanism. Given the discussion over the past few days, this has gained priority for us (we are, after all, guided by the community on what we develop), we are having some internal discussions on this right now; we will see if we can come up with a solution that works with EMA and I will post on this when we have something to report Smiley.

Please keep the suggestions coming Smiley.

Pablo.
full member
Activity: 124
Merit: 100
Can't you try to integrate a stop-loss mechanism like this:
The bot actively compares the current market price against the market price of x minutes ago.
If there's a negative difference of x percent > automatically sell!

That way we'd at least be somewhat protected against a possible flash crash.
newbie
Activity: 23
Merit: 0
Hi,

Got another question - what happens during a strong rise or drop, one that would trigger a buy/sell, but when it tries to do so, the API towards Bitstamp is being slow/unresponsive. It gives the notification that it will automatically recover - but will it keep trying and trying straight away, or will it just wait and try again at the next "Trade frequency"-point?

Thanks!

Hi Kami Smiley,
  It will hit the API periodically until it can execute the trade.

I hope that answers your question, please let me know if you need anything at all Smiley.

Pablo.

Yes it does, that's great. Thanks Smiley
legendary
Activity: 1183
Merit: 1000
Hi,

Got another question - what happens during a strong rise or drop, one that would trigger a buy/sell, but when it tries to do so, the API towards Bitstamp is being slow/unresponsive. It gives the notification that it will automatically recover - but will it keep trying and trying straight away, or will it just wait and try again at the next "Trade frequency"-point?

Thanks!

Hi Kami Smiley,
  It will hit the API periodically until it can execute the trade.

I hope that answers your question, please let me know if you need anything at all Smiley.

Pablo.
newbie
Activity: 23
Merit: 0
Hi,

Got another question - what happens during a strong rise or drop, one that would trigger a buy/sell, but when it tries to do so, the API towards Bitstamp is being slow/unresponsive. It gives the notification that it will automatically recover - but will it keep trying and trying straight away, or will it just wait and try again at the next "Trade frequency"-point?

Thanks!
sr. member
Activity: 462
Merit: 250
I began trading crypto earlier this year and found it difficult to track the movements and trends (especially overnight), so I've downloaded the Butter Bot demo and am intrigued by the moving averages, tweaking settings, etc.

I'm currently running the 30 minute trade frequency setting, but I'm wondering what would happen if there is to be another crash in the BTC market similar to April (which I suspect is coming soon). I was sitting in front of my computer when it happened in April, and as I recall, the market went from 260 USD down to 50 USD or so in the matter of 15-30 minutes. If my trade frequency is set to 30 minutes, isn't it possible that the bot could entirely miss the start and finish of the crash and I'd end up selling at 50, if this were to happen again?
YES.

Imho this is a weakness in the bot. Every selfrespecting bot should have a stop-loss percentage set based on the high it achieved while being bought. The bot should pull the latest ticker information every minute in between it's regular intervals to act upon the stop-loss.

Hi Saan1ty Smiley,
   Interesting question. The bots Trailing Stop Loss (TSL) feature, does exactly that, it takes the highest value since you turned on the bot and sells all your BTC for fiat if price falls by the percentage specified.

I say this every couple of pages:  It is an easy feature to understand in principle, but it is very hard to use in combination with EMA and can result in losses if improperly set. The argument on this can go either way, if it were me, I would have my bot on a 30 or 15 minute interval and not use TSL; I would just rely on the bot to act correctly.

Now a lot can go wrong in a flash crash/rocket recuperation, there is no magic setting that will protect you against all cases. A shorter time frame will make the bot more reactive, but it could follow false signals and incur some losses. In the end, you can't look at this in single trades, even if we are discussing large market movements, you have to look at it in aggregate over time or you are really just looking at noise.

Please let me know if you need anything at all Smiley.

Pablo.

Hi thanks for the reply! It's close but it's not exactly what I mean:

The system you currently have can abruptly stop trading when there is no reason to.

I suggest a trailing stop loss per trade:

I buy 10 BTC at 200, and have a stop loss set at 10 %:
the market climbs to 250 and then drops to 225 (a drop of 250 = 10% of the high) therefor the bot executes a sell order.
After this trade the stop loss should be reset untill you buy the next time based on the indicator.

Also I notice you have to set the trading fee manually (this should be an api call to the exchange every X minutes to check what the trading fee is).
Bitstamp has a trading fee based on your volume.


Hey Smiley,
  I think I see what you mean, a sort of "step" stop loss. I will tell you up front that I am not the trading consultant so I can not judge how effective this would be, but I will bring it up with the appropriate people, strikes me as a sane suggestion Smiley.

Pablo.

What I basically mean is a trailing stop loss that resets per trade :-). But your current implementation has it's merits too: post crash it might be wise to temporarily stop the bot and start it again manually if the market has calmed down a bit.

Maybe have both as an option with a clear explanation with what the difference is.

Also: EMA Crossovers are basically a pretty weak trading system. If you like MA's a lot you should consider switching to MACD as it is superior.

Hope you don't take my feedback too harsh, I'm just trying to help you make a better bot Smiley.
legendary
Activity: 1183
Merit: 1000
I began trading crypto earlier this year and found it difficult to track the movements and trends (especially overnight), so I've downloaded the Butter Bot demo and am intrigued by the moving averages, tweaking settings, etc.

I'm currently running the 30 minute trade frequency setting, but I'm wondering what would happen if there is to be another crash in the BTC market similar to April (which I suspect is coming soon). I was sitting in front of my computer when it happened in April, and as I recall, the market went from 260 USD down to 50 USD or so in the matter of 15-30 minutes. If my trade frequency is set to 30 minutes, isn't it possible that the bot could entirely miss the start and finish of the crash and I'd end up selling at 50, if this were to happen again?
YES.

Imho this is a weakness in the bot. Every selfrespecting bot should have a stop-loss percentage set based on the high it achieved while being bought. The bot should pull the latest ticker information every minute in between it's regular intervals to act upon the stop-loss.

Hi Saan1ty Smiley,
   Interesting question. The bots Trailing Stop Loss (TSL) feature, does exactly that, it takes the highest value since you turned on the bot and sells all your BTC for fiat if price falls by the percentage specified.

I say this every couple of pages:  It is an easy feature to understand in principle, but it is very hard to use in combination with EMA and can result in losses if improperly set. The argument on this can go either way, if it were me, I would have my bot on a 30 or 15 minute interval and not use TSL; I would just rely on the bot to act correctly.

Now a lot can go wrong in a flash crash/rocket recuperation, there is no magic setting that will protect you against all cases. A shorter time frame will make the bot more reactive, but it could follow false signals and incur some losses. In the end, you can't look at this in single trades, even if we are discussing large market movements, you have to look at it in aggregate over time or you are really just looking at noise.

Please let me know if you need anything at all Smiley.

Pablo.

Hi thanks for the reply! It's close but it's not exactly what I mean:

The system you currently have can abruptly stop trading when there is no reason to.

I suggest a trailing stop loss per trade:

I buy 10 BTC at 200, and have a stop loss set at 10 %:
the market climbs to 250 and then drops to 225 (a drop of 250 = 10% of the high) therefor the bot executes a sell order.
After this trade the stop loss should be reset untill you buy the next time based on the indicator.

Also I notice you have to set the trading fee manually (this should be an api call to the exchange every X minutes to check what the trading fee is).
Bitstamp has a trading fee based on your volume.


Hey Smiley,
  I think I see what you mean, a sort of "step" stop loss. I will tell you up front that I am not the trading consultant so I can not judge how effective this would be, but I will bring it up with the appropriate people, strikes me as a sane suggestion Smiley.

Pablo.
legendary
Activity: 1890
Merit: 1003
Ok, I just saw your last post saying how smaller intervals help, so I feel better since I use a 30 minute window.

Thanks!
After running lots of back test I found that your update interval should change depending on how volatile the market conditions are.

The less volatile they are, the longer the period should be.
The more volatile they are, the shorter the period should be.

Mismatch and you'll lose money on more frequent trading due to "noise" as pablo put it.

If you want some reverse EMA settings try:
Short/Long EMA
21/19
or
17/15

=======[Discount Code for Butter (10% off)]=========

https://butter-bot.com/?r=f5a17f5b

Use my referal code cause' im sooo cute!  Grin Cheesy



You'll get an extra month free, it's all on me!
Pages:
Jump to: