Good Day
So a about a week ago I got the idea to code a strategy to exclusively trade XBTUSD (Bitcoin). The idea was to write an algorithm that will keep up with the tremendous bullish momentum of the price while reducing drawdown compared to a buy and hold strategy, but at the same time to be ready to short the hell out of it when things start going south! So yesterday I finally got to see it in action as we saw a minor crash and the result was simply glorious!
The strategy is actually quite simple as it is primarily based around 3 moving averages (5 minutes apart) along with a ADX check for volatility.
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 43 44 45 46 47 48 49 50 51 52 |
//Bitcoin Tripple MA Miner 1Min //Author: Juan Jacobs //Exchange: XBTUSD Mini //Timeframe: 1Min //Spread: 10 or 20 DEFPARAM FLATBEFORE = 100000 //Adjust for your timezone (currently set for GMT+2) DEFPARAM FLATAFTER = 230000 //Adjust for your timezone (currently set for GMT+2) FMA = Average[12,4](close) //Fast Moving Average MMA = Average[17,4](close) //Medium Moving Average SMA = Average[22,4](close) //Slow Moving Average stp = 2 //Points away to place stop orders If hour < 10 or hour > 23 then //Adjust to match Flat Before/After possize = 0 If longonmarket then SELL AT MARKET ElsIf shortonmarket then EXITSHORT AT MARKET EndIf Else If ADXR[14] > 18 Then //Check for enough volatility possize = 1 Else possize = 0 EndIf EndIf If countofposition = 0 or shortonmarket and FMA > MMA and MMA > SMA Then If shortonmarket then If close > close[3] and close > close[5] Then Exitshort at market Buy possize contract at open - stp stop EndIf Else Buy possize contract at open - stp stop EndIf ElsIf countofposition = 0 or Longonmarket and FMA < MMA and FMA < SMA Then If longonmarket then If close < close[3] and close < close[5] Then Sell AT MARKET Sellshort possize contract at open + stp stop EndIf Else Sellshort possize contract at open + stp stop EndIf EndIf SET STOP $LOSS 100*possize SET TARGET $PROFIT 1500*possize |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
…and where are you getting a 20 point spread?
Just realize there is an huge spread on Bitcoin: https://www.ig.com/en/markets/bitcoin/costs-and-details
Let’s see what juanj will answer to the question! 🙂
Looks like his quotes are in thousands instead then hundredsthousands.. so spread of 20 might make sense
At this time trading BTC/crosses via leveraged spread betting or CFD derivatives is very expensive to the directional trader. This is due to the huge counter-party risk that is posed to risk-averse brokers. They offset this risk (and the huge volatility) by offering massive spreads. On the other hand they are giving you leveraged liquidity (100x and more) on BTC, 24 hours a day – so its their privilege to quote you whatever spread they like. With the offer of 7 figure accounts I found it hard to convince certain brokerages otherwise – plus they were unwilling to provide us with the liquidity we were asking for. The CFD and SB offerings are really just for buy and holders. The way we trade bitcoin is directly with the exchanges around the world – you get tiny spreads now – but market depth can be an issue at certain times of day. The system needs more market makers, more liquidity. If investment banks jump on board and if we see ETFs, spreads may come down in retail shops.
Interestingly I noticed that the spread usually quotes as 10 and lately sometimes as 20, probably due to the reasons Maz so eloquently explained. Funny thing is I just ran the code this morning and my result now looks different compared to when I posted the strategy. It is still equally as profitable and even made a bucket load of money in the last trading session but it didn’t open any trades during the first correction as can be seen in the screenshot I made. It did open trades during the latest ones which is good. Overall I find this strategy quite enjoyable seeing it is literally raking in money in every session (albeit I have to admit I am not trading it Live). The pure size of the XBTUSD contracts makes it rather dangerous to a mere mortal account size such as my own. Price jumps amounting to around $1000 in a matter of minutes is a bit too exuberant for me. Although It still brings me joy to watch it trade my paper account of $100k
Ah I thought you meant 20 is too small as a spread for Bitcoin, I traded them since last agoust, I can confirm the spread is most of the time 10, but in the recent explosion of cryptocurrency prices it was very often 20 ans sometime even 40. IG uk decided that from next week the price quotes will be divided by a factor 100 as the pricese increases by 100% in a couple of weeks.
That is exciting news. If they offer smaller contracts I will most likely start trading the strategy live. See that it again performed very well in the latest trading sessions!
that is the message from IG
Due to the rise in bitcoin’s price over the past year, we are changing the way we quote the price for this market to make it easier to trade.From Saturday 3 June, we’ll be quoting bitcoin in a larger currency domination. So if you deal in USD, instead of quoting bitcoin in cents (ie a six-digit number) we will be quoting in dollars (a four-digit number).So for example, instead of seeing 267038, you’ll see 2670.38.
What does this mean for bitcoin positions?
If you have any open spread bets or working orders on bitcoin at close of business on Friday 2 June, the next time you log in you’ll see the following changes: • The market price will have been downscaled by a factor of 100• Your position size will have been upscaled by a factor of 100. So £1.50/point of bitcoin at 267038, will change to £150/point of bitcoin at 2670.38. Your overall exposure will remain exactly the same as it is now. The market will reopen for trading at 8am on Sunday as normal.
That is unfortunate. As exposure wise even the ‘mini’ contract aren’t really so mini.
So if I understand correctly the only difference for us would be that the spread would now technically be 0.2 instead of 20?
if the bitcoins are quoted in hundreds of thousand, asthey are now in ig uk, the spread is 2000, if they are quoted in thousands like in your code the spread is 20.
Good Morning,The strategy seems very interesting, thanks Juanj for sharing it. But unless I’m wrong, I think the results of the backtest do not correspond to reality. This morning I put it to work demo account and there is a very big difference in the results with the backtest.Regards
Hi Jesus, I suspect your time periods could possibly be wrong. What is your timezone and what parameters did you use?
I have very good positive results for the last 7 sessions (including today). See screenshot below:
Hmmm… okay so since they changed the quoted price of bitcoin (previous price x 0.01) my strategy no longer seem to open any new trades. Strange thing is that backtesting still opens the same trades up until yesterday. Does anybody know why this would be?
Hi juanj, thanks for your answer. My demo parameters are 1 minute timeframe and the current time zone in PRT is UCT + 2 Europe / Madrid, which I think corresponds to GMT + 2.
Can you provide a screenshot maybe?
Yes, of course, but I do not know why when I try to upload an image it gives me an error and the web tells me that I am not allowed to add images to this post.
Hello All, so out of curiosity I opened my strategy again today and it appears to have started working again. And on top of that it has not had a loosing day since I posted it here.@Nicolas could we possibly open a thread on the forum where we can discuss this further?
Hi, do you use the 100$*possize stoploss as in the itf file? I tried it and it triggered stop loss immediately at buy or sale due to the high spread, with more stoploss I couldn´t get it profitable.
Best, Andy
You can open it yourself and share the link here of course. Thanks.
For further discussion please add your comments here: https://www.prorealcode.com/topic/bitcoin-tripple-ma-miner-1min-stategy/
@Andy yes I use it exactly as found in the itf file. Note that my possize is 1 contract of the bitcoin XBTUSD Mini. Maybe try increasing your starting capital, these contracts are huge.
Okay so today the strategy again immediately stops out. Since IG changed the bitcoin quote prices it messed up everything.
Hi
I cannot get it to work on IG every position taken is a loss and only longs. Any ideas?
@OGOSNELL, IG recently changed their quote prices for Bitcoin and this caused the strategy to stop working. I used to use a spread of 10 or 20 pips that worked fine before. However now only a spread of 1 or 2 works.
Okay, so I revisited this strategy today and it appears to have started working again on the Bitcoin USD (1) instrument.
I literally haven’t touched the code in more than 6 months and the result I am getting on the 1Hr Timeframe with a spread of 10 is very interesting especially from December.
Bonjour et merci pour votre partage !
J’ai constaté qu’en 1 seconde, on avait quelque chose de très bon ! Mais pas dans le bon sens du marché… est-il possible de retourner les achats/ventes pour rendre les ordres positifs ?
Merci d’avance