Bitcoin Forum
April 25, 2024, 02:11:52 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [57] 58 59 60 »
  Print  
Author Topic: Goomboo's Journal  (Read 281400 times)
lebing
Legendary
*
Offline Offline

Activity: 1288
Merit: 1000

Enabling the maximal migration


View Profile
March 12, 2014, 09:20:08 AM
 #1121

As there is a lack of skepticism around motivation in this thread, I thought I should weight in here with a few cents.

Traders are in this business to make money. Even if they are "helping to educate", they still have their own motivation for doing so. I'm not saying that what Goomboo is doing is wrong, but I am saying that he is probably making a lot of money off of the people that are blindly following his advice in this thread.

For example: a trader that uses trading signals (especially bots) to execute trades regardless of other factors is highly predictable. In trading, probability is everything and if one is able to isolate exactly when others are going to be making trades, there is a huge amount of money to be made doing so because you can stack the orderbook to counter such trades. In this thread, he outlines exactly how to use predictable variables to find your own strategy. There are generations of programs that have been developed over the last 30 years that can detect these strategies (using pattern analysis) and bet against them to take the money that would have been made from these strategies.

With that in mind, be safe out there and happy trading.

Bro, do you even blockchain?
-E Voorhees
The Bitcoin software, network, and concept is called "Bitcoin" with a capitalized "B". Bitcoin currency units are called "bitcoins" with a lowercase "b" -- this is often abbreviated BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714011112
Hero Member
*
Offline Offline

Posts: 1714011112

View Profile Personal Message (Offline)

Ignore
1714011112
Reply with quote  #2

1714011112
Report to moderator
1714011112
Hero Member
*
Offline Offline

Posts: 1714011112

View Profile Personal Message (Offline)

Ignore
1714011112
Reply with quote  #2

1714011112
Report to moderator
Goomboo (OP)
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
March 12, 2014, 10:24:51 PM
 #1122

he is probably making a lot of money off of the people that are blindly following his advice in this thread.

I'm not.  But I can't vouch for the other traders.

As I said two years ago:

If you have been blindly following the system without going through the below steps, shame on you, you missed the whole point of this thread and you are robbing yourself of a chance at successful trading.  Furthermore, you never learned the most important lessons of trading - consistency, confidence, discipline.  Why are you trusting some random person on the internet with your finances?  If you really cared about consistent profit and winning in the financial markets, you would put in the work necessary to trust your edge.  Stop outsourcing your decision making and take responsibility for the money that you worked hard to earn.

I reiterate; what is more important: making a few hundred dollars trading a system you learned on the internet or developing the discipline to be a wise steward of whatever money is entrusted to you?


Here is my tangible advice on how you can learn to be a trader:

1.  Develop a system
--Learn about technical analysis until you have a conceptual framework of when to participate in market action
--When will you enter the markets?
--How much money will you risk per trade?  Is this scalable and dynamic?
--When will you exit the markets?  Both profitable exit and unprofitable exit.
--What hours of the day will you trade?

2.  Backtest the system
--You must acquire or create some method of exploring if your system worked in the past.
--My suggestion is a demo feed connected to NinjaTrader and MB Trading.  When you open a chart in NinjaTrader, you can click the arrow keys to move a candle onto and off the chart allowing you to see the price action as though it is happening live.
--Drag a chart of historical prices one candle at a time, recording your trades as though you actually were taking them in a spreadsheet.  Chart your profit and loss.  Analyze, scrutinize, and try to disprove your edge.
--I suggest you do this for 200-400 trades across as much data as you can get your hands on.

3.  Forward test the system
--Once you have confidence that your strategy worked in the past, you must ensure that it works in the future.
--Open a demo account and trade fake money for at least two months to prove that your edge still exists

4. Live trade the system
--Start with tiny amounts of money and adhere to your system perfectly.  The amount of capital at risk should be so small that if you lost it all, you wouldn't be financially disadvantaged.
--If you can continue to make profit for at least 30-50 more trades, you should be able to gradually add more and more capital to your system.


Of course this isn't easy and more than likely the majority of people won't do it.  My purpose in saying this is just to let you know that this is what it takes if you wish to have a sustainable edge in the market.
jojo69
Legendary
*
Offline Offline

Activity: 3150
Merit: 4309


diamond-handed zealot


View Profile
March 13, 2014, 03:40:00 PM
 #1123

oh come lebing

trading the one day cross would have been a stellar strategy looking back, and Goomboo has harangued readers to DYODD all along

This is not some pseudoeconomic post-modern Libertarian cult, it's an un-led, crowd-sourced mega startup organized around mutual self-interest where problems, whether of the theoretical or purely practical variety, are treated as temporary and, ultimately, solvable.
Censorship of e-gold was easy. Censorship of Bitcoin will be… entertaining.
oda.krell
Legendary
*
Offline Offline

Activity: 1470
Merit: 1007



View Profile
March 13, 2014, 05:07:33 PM
 #1124

oh come lebing

trading the one day cross would have been a stellar strategy looking back, and Goomboo has harangued readers to DYODD all along

Especially because the majority of the last third or so of this thread has been about finding, on our own, optimal parameters for a CO strategy. Lebing's assertion only makes sense if goomboo would have aggressively pushed for a particular set of parameters (say, the "traditional" 20+10 hourly)... but he never did that, saying quite early already that you should backtest parameters that give results you are personally happy with.

As for the psychological motivation people might have to share any information... it's not that difficult to see that a combination of altruistic willingness to share your knowledge, and maybe a bit of satisfaction if people like your work, i.e. express their respect/admiration, could be motivation to post here, besides financial incentives. Not everything a capitalist does needs to be motivated financially :)

Not sure which Bitcoin wallet you should use? Get Electrum!
Electrum is an open-source lightweight client: fast, user friendly, and 100% secure.
Download the source or executables for Windows/OSX/Linux/Android from, and only from, the official Electrum homepage.
lebing
Legendary
*
Offline Offline

Activity: 1288
Merit: 1000

Enabling the maximal migration


View Profile
March 13, 2014, 05:51:27 PM
 #1125

Lebing's assertion only makes sense if goomboo would have aggressively pushed for a particular set of parameters

As I mentioned in my post, even if someone chooses their own strategy, its relatively trivial to analyze trading data to see which single variable triggers are causing trades, in which amounts, etc. It matters not whether he pushes one specific strategy or another, if a program can pick up any single variable trade with predictability, it can be exploited. It is only with more complicated strategies that involve multiple variables, is it more difficult to pinpoint such trading data to exploit. Even then, with a long enough time frame - they are also possible to pick up on.

Bro, do you even blockchain?
-E Voorhees
xybersurfer
Member
**
Offline Offline

Activity: 72
Merit: 10


View Profile
March 13, 2014, 07:49:04 PM
 #1126

Lebing's assertion only makes sense if goomboo would have aggressively pushed for a particular set of parameters

As I mentioned in my post, even if someone chooses their own strategy, its relatively trivial to analyze trading data to see which single variable triggers are causing trades, in which amounts, etc. It matters not whether he pushes one specific strategy or another, if a program can pick up any single variable trade with predictability, it can be exploited. It is only with more complicated strategies that involve multiple variables, is it more difficult to pinpoint such trading data to exploit. Even then, with a long enough time frame - they are also possible to pick up on.
so you are basically arguing that any system can be picked up. but that doesn't just apply to the system discussed here. besides, i don't think people will keep using a system when it becomes unprofitable.

i don't think that making a system more complicated just so it doesn't get picked up, is a good starting point. i think it better to start simple. and change it as the need arises.

tickets
Member
**
Offline Offline

Activity: 85
Merit: 10


View Profile
March 15, 2014, 10:34:19 PM
 #1127

so is the system long or short at this point??  from this chart it looks like the averages are dead even, not above or below, for over a week : http://bitcoincharts.com/charts/bitstampUSD#rg60ztgSza1gEMAzm1g10za2gEMAzm2g21zxzi1gMACDzv

what signals have been generated in the past 2 weeks?
tangshaowan
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
March 17, 2014, 12:43:21 PM
 #1128

Good luck!
Goomboo (OP)
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
April 20, 2014, 11:40:28 PM
Last edit: April 21, 2014, 01:17:23 AM by Goomboo
 #1129

The 10/21 crossover occurred 2 days ago, providing a long signal.  Again, rather than blinding trusting a set of technical tools to direct our trading, we should scrutinize the strategy to ensure continued validity.





This journal was started on January 20th, 2012.  Here is a backtest of the 10/21 strategy from the inception of this thread until today.  Please note that this assumes that market participants have been able to shelter funds from ongoing counter-party risk in the BTC markets.




  • Return of 9700% pre-commission; return of 9000% post-commission
  • Assumes a 0.25% trading fee
  • Assumes no slippage from the bid-ask spread
  • Assumes no execution delays
  • Results are long only
Partinez
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 21, 2014, 11:52:38 AM
 #1130

Hi Goomboo, I've just discovered your post and really appreciate that you share your knowledge. I've downloaded Ninjatrader to backtest the strategy and test some other ones, but I'm not getting the expected results. Maybe you or anyone can let me see where I'm wrong.

First of all, I'm having problems getting the required format to import the data, but I found some historical data here that I am using.

Next, I created a new strategy, using the EMA 10/21 strategy. I am pasting the strategy script, maybe the mistake is there.
Code:
#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Indicator;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Strategy;
#endregion

// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
    /// <summary>
    /// Enter the description of your strategy here
    /// </summary>
    [Description("Enter the description of your strategy here")]
    public class EMAcrossover2 : Strategy
    {
        #region Variables
        // Wizard generated variables
        private int short_EMA = 10; // Default setting for Short_EMA
        private int long_EMA = 21; // Default setting for Long_EMA
        // User defined variables (add any user defined variables below)
        #endregion

        /// <summary>
        /// This method is used to configure the strategy and is called once before any strategy method is called.
        /// </summary>
        protected override void Initialize()
        {

            CalculateOnBarClose = true;
        }

        /// <summary>
        /// Called on each bar update event (incoming tick)
        /// </summary>
        protected override void OnBarUpdate()
        {
            // Condition set 1
            if (EMA(Short_EMA)[0] > EMA(Long_EMA)[0]
                && EMA(Short_EMA)[1] < EMA(Long_EMA)[1])
            {
                EnterLong(DefaultQuantity, "");
                ExitShort("", "");
            }

            // Condition set 2
            if (EMA(Long_EMA)[0] > EMA(Short_EMA)[0]
                && EMA(Long_EMA)[1] < EMA(Short_EMA)[1])
            {
                EnterShort(DefaultQuantity, "");
                ExitLong("", "");
            }
        }

        #region Properties
        [Description("")]
        [GridCategory("Parameters")]
        public int Short_EMA
        {
            get { return short_EMA; }
            set { short_EMA = Math.Max(1, value); }
        }

        [Description("")]
        [GridCategory("Parameters")]
        public int Long_EMA
        {
            get { return long_EMA; }
            set { long_EMA = Math.Max(2, value); }
        }
        #endregion
    }
}

#region Wizard settings, neither change nor remove
/**/ I've omitted this since it's very long, bit I can post it if needed.
#endregion

I've backtested using the following settings:
http://s30.postimg.org/6gd8pecv5/settings2.jpg

And got the following (scary) results:
http://s29.postimg.org/wkdk1l50n/result_chart.jpg

http://s29.postimg.org/58ib0909z/result_table.jpg

So, where is the problem?
Goomboo (OP)
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
April 21, 2014, 05:42:40 PM
 #1131

I've downloaded Ninjatrader to backtest the strategy and test some other ones, but I'm not getting the expected results.\

A few things are happening here:
  • My results are long only, your backtest includes short trades
  • NinjaTrader does not compound returns unless specified.  In other words, DefaultQuantity will always purchase 1 BTC regardless of account size.  This skews overall account returns.
  • NinjaTrader does not graph mark-to-market PNL charts, only changes in closed PNL.  This is why there are sudden surges upwards or downwards on your graphs
  • There is probably an error in the price data used - your results imply that a short trade lost 100% (market rose 100% while short) - I cannot see this in market history
Partinez
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
April 21, 2014, 06:12:06 PM
 #1132

  • Deleted the short trades and it seems now normal (profitable, at least)
  • I'm not sure how to specify that it should compound returns. Is there any option to change the strategy?
  • I'm not sure I understand the "mark-to-market PNL chart" point
  • Finally, yeah, there was a >100% lose in a short trade, I'm posting the trade if anyone is interested.
http://s9.postimg.org/e5r9w0ejz/loss.jpg
I'm still trying to get better history data but at least I got the strategy running. Thank you for the answer, I'm really learning a lot with this.
MusX
Full Member
***
Offline Offline

Activity: 175
Merit: 100


View Profile
April 21, 2014, 06:40:48 PM
Last edit: April 21, 2014, 06:51:23 PM by MusX
 #1133

Also important factor (in case of daily ema21/ema10 it is not as much important as mentioned above but still should be considered) is the estimated price of executed order.
I don't know what price Goomboo is using but it is depended on market liquidity and volume of your trading assets, if assets aren't huge and market liquidity isn't tiny you can assume you will buy/sell on the next period vwap price.
Some tools like cryptotrader.org overestimate the price a bit because they are using current period price (the period on which signal was generated). That is not strictly correct because you can calculate the signal only when the period is closed already, and when it is closed already you shouldn't assume you will buy/sell on it's average price, the fastest possible is next period Open price, still quite unrealistic.
If you are going to put money on some strategy I would advise to backtest it not by external tool, or at least validate the backtest results by your own, it can be achieved even in spreadsheet.

Goomboo (OP)
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
April 21, 2014, 10:07:01 PM
 #1134

  • I'm not sure how to specify that it should compound returns. Is there any option to change the strategy?

The right way to do it is to create an account balance variable in your code and have EnterLong/Short signals enter a quantity such that you go "all in" when you trade.  This will show you the compounded return through time of the strategy.  If you are unfamiliar with code, I'm sure there are NinjaTrader strategies online with dynamic lot-sizing options, or just build it out in Excel.

A huge caveat here is that this assumes investing 100% with no stop-loss.  Suicidal in the real world.

  • I'm not sure I understand the "mark-to-market PNL chart" point

Notice how my profit/loss chart shows the value of the account every single day but NinjaTrader only shows sharp, one-day adjustments to account balance?  That's because I'm showing mark-to-market PNL: value the account every day based on the closing market price of the day and calculate return.  This is what they do on the trade floor - your manager wants to know where you stand every day.

  • Finally, yeah, there was a >100% lose in a short trade, I'm posting the trade if anyone is interested.


Yeah, I see that now - shorting would have resulted in devastating losses.  The way a hedge fund manager described it to me: "shorting a stock [BTC trades like a stock] is like playing Russian Roulette with 100 chambers - you'll make money 99% of the time, but the 1% will wipe you out".  This is why I rarely short BTC or any individual stock - why expose yourself to the potential of infinite losses?  The probability, no matter how remote, of total wipe-out mathematically removes your edge.

I'm still trying to get better history data but at least I got the strategy running. Thank you for the answer, I'm really learning a lot with this.

Definitely, glad you found it helpful.
MusX
Full Member
***
Offline Offline

Activity: 175
Merit: 100


View Profile
April 22, 2014, 08:20:13 PM
 #1135

Goomboo, what is the source of market data you are using? could you validate the base market data against http://api.bitcoincharts.com/v1/csv/ bitstampUSD full history?
I do not know if your market data provider is more correct than bitcoincharts csv history, but I do know that in October 2013 bitstamp API had silently (no error, no warning, no notification) removed the offset parameter which gives the possibility to query trades from particular id. It is likely that some of the systems were affected by the change which might results lack of data consistency.
I performed the same simulation based on the 1. http://bitcoinchain.com/export, 2. bitcoincharts.com csv and in the both cases I have the slightly different results than yours - no crossover yet - and in both cases the results match one to another.
If you could dump the base data from last week (raw trades or already aggregated to daily periods - those including volume information and is the date is it period's opening date or closing date) we could easily compare them.

Goomboo (OP)
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
April 22, 2014, 10:02:54 PM
 #1136

Goomboo, what is the source of market data you are using? could you validate the base market data against http://api.bitcoincharts.com/v1/csv/ bitstampUSD full history?

The market data I am using is Bitstamp data from Bitcoincharts.com.  I get the data by looking at a daily chart for "all time" and clicking "load raw data" at the bottom of the chart.  There are 5 or so days which need to be cleaned up (price = infinity, etc.).  I set the market price on these days equal to the price from the prior day.  It's imperfect, but it gives the general idea.


I performed the same simulation based on the 1. http://bitcoinchain.com/export, 2. bitcoincharts.com csv and in the both cases I have the slightly different results than yours - no crossover yet - and in both cases the results match one to another.

If you're getting slightly different results backtesting, then I wouldn't be worried.  If I started backtesting a day earlier or later, my results could have potentially varied by several hundred percentage points.

In terms of what triggers me to actually enter/exit the market, I use a chart on ZeroBlock trading platform, so I don't use the BitcoinCharts feed.
MusX
Full Member
***
Offline Offline

Activity: 175
Merit: 100


View Profile
April 23, 2014, 10:10:48 PM
 #1137

Using the "load raw data" all data, daily, taken from bitcoincharts and removing the Inf observations I had EMA21/EMA10 cross on 2014-04-20 for EMA on close price and day after when EMA on vwap price. Also validated the two interfaces from bitcoincharts, any differences are related to rounding issue and are marginal enough.
Regarding ZeroBlock, it looks great, but does it support automated trading?

bitcoinsrus
Hero Member
*****
Offline Offline

Activity: 518
Merit: 500



View Profile
April 23, 2014, 10:52:37 PM
 #1138

Using the "load raw data" all data, daily, taken from bitcoincharts and removing the Inf observations I had EMA21/EMA10 cross on 2014-04-20 for EMA on close price and day after when EMA on vwap price. Also validated the two interfaces from bitcoincharts, any differences are related to rounding issue and are marginal enough.
Regarding ZeroBlock, it looks great, but does it support automated trading?

Forgive me for sounding like a total noob, but can someone please explain what EMA's are etc and what the content of his post is talking about?
itod
Legendary
*
Offline Offline

Activity: 1974
Merit: 1075


^ Will code for Bitcoins


View Profile
April 23, 2014, 10:56:46 PM
 #1139

Using the "load raw data" all data, daily, taken from bitcoincharts and removing the Inf observations I had EMA21/EMA10 cross on 2014-04-20 for EMA on close price and day after when EMA on vwap price. Also validated the two interfaces from bitcoincharts, any differences are related to rounding issue and are marginal enough.
Regarding ZeroBlock, it looks great, but does it support automated trading?

Forgive me for sounding like a total noob, but can someone please explain what EMA's are etc and what the content of his post is talking about?

http://www.investopedia.com/terms/e/ema.asp
xybersurfer
Member
**
Offline Offline

Activity: 72
Merit: 10


View Profile
April 24, 2014, 06:50:00 PM
 #1140

Using the "load raw data" all data, daily, taken from bitcoincharts and removing the Inf observations I had EMA21/EMA10 cross on 2014-04-20 for EMA on close price and day after when EMA on vwap price. Also validated the two interfaces from bitcoincharts, any differences are related to rounding issue and are marginal enough.
Regarding ZeroBlock, it looks great, but does it support automated trading?

Forgive me for sounding like a total noob, but can someone please explain what EMA's are etc and what the content of his post is talking about?

in a nutshell:

the price bounces up and down a lot (as it comes from the newest trade). EMA (Exponential Moving Average) is a smoother version of a line (the price in this case). the smoothness of an EMA line can be adjusted, by settings the number of previous periods (points) it has to "average", per periods. an EMA that is set to "average" the previous 21 periods (EMA21), is smoother than one set to the last 10 periods (EMA10). "averaging" more periods results in a smoother but less responsive line. 1 period is a time frame (duration) that could be anything you prefer (ex: 1minute, 3hours, 1day, 2weeks etc...). (periods usually contain multiple trades, and it's normal to take the closing (a.k.a. last) price of that period to represent that period, but that's a more technical detail)

in this thread we've been discussing a simple method from Goomboo (EMA Crossover method?), where you take the 21 day EMA (EMA21) and the 10 day EMA (EMA10). when the more responsive EMA10 crosses the slower EMA21:
- from the bottom, then it's a buy signal
- from the top, then it's a sell signal
(of course there is more advice about using this method in this thread)

http://bitcoincharts.com/ has price data for lot's of Bitcoin exchanges that can be loaded into excel or a different program to try things. it looks like MusX was complaining about some of the data being faulty because it contains the values Inf (infinite), which is not a price.

Pages: « 1 ... 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [57] 58 59 60 »
  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!