For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

# IndexError: array index out of range

• File "strategA.py", line 127, in next
if (self.data.close[2] < self.sma and self.data.close[2] < self.ema) and (self.status != 1) and (self.status != 2):
File "/home/yelnar/anaconda3/envs/py27/lib/python2.7/site-packages/backtrader/linebuffer.py", line 163, in getitem
return self.array[self.idx + ago]

``````        if self.status == 1:
self.cash_aapl = round((self.data0.close[0] - self.init_close1) * self.qty1, 2)
self.cash_msft = round((self.init_close2 - self.data1.close[0]) * self.qty2, 2)
self.profit = round((self.cash_aapl + self.cash_msft), 2)

print('Profit stock1: {}'.format(self.cash_aapl))
print('Profit stock2: {}'.format(self.cash_msft))
print('Total profit: {}'.format(self.profit))

if (self.data.close[2] < self.sma and self.data.close[2] < self.ema) and (self.status != 1) and (self.status != 2):

# Calculating the number of shares for each stock
value = self.portfolio_value_basket1  # Divide the cash equally
x = int(value / (self.data0.close))  # Find the number of shares for Stock1
y = int(value / (self.data1.close))  # Find the number of shares for Stock2

# Place the order
self.log('BUY CREATE %s, price = %.2f, qty = %d' % ("EUR.JPY", self.data0.close[0], x))

self.log('SELL CREATE %s, price = %.2f, qty = %d' % ("USD.JPY", self.data1.close[0], y))
self.sell(data=self.data1, size=(y))

self.qty1 = x  # The new open position quantity for Stock1 is x shares
self.qty2 = y  # The new open position quantity for Stock2 is y shares
self.init_close1 = self.data0.close[0]
self.init_close2 = self.data1.close[0]
self.status = 1  # The current status is "long the spread"``````

• If you need some advice, you may want to share full script. Not just arbitrary piece of it.

• If you need some advice, you may want to share full script. Not just arbitrary piece of it.

Indeed ... although this time

``````if (self.data.close[2] < self.sma and self.data.close[2]
``````

It should be clear that looking into the future is still a very difficult feat.

});