Skip to content

Instantly share code, notes, and snippets.

@anesiadis
Last active January 20, 2017 14:46
Show Gist options
  • Save anesiadis/b7dba5b635738fbdb274b9a886ce6bbc to your computer and use it in GitHub Desktop.
Save anesiadis/b7dba5b635738fbdb274b9a886ce6bbc to your computer and use it in GitHub Desktop.
from strategy import Strategy, Order
from indicators import EMA
import resolution
class TestStrategy(Strategy):
def init(self):
self.cash(1000)
self.start_date(2015, 6, 2)
self.end_date(2015, 6, 3)
self.pair("EUR_USD", resolution.Minutes)
self.short_average = EMA(self, "EUR_USD", period=14)
self.mid_average = EMA(self, "EUR_USD", period=50)
self.long_average = EMA(self, "EUR_USD", period=200)
self.short_average.on_crossover(self.mid_average, self.long_order)
self.short_average.on_crossunder(self.mid_average, self.short_order)
self.tracker = Order.Tracker(self, "EUR_USD", 1)
def on_data(self, pair, data):
print pair, data['Date']
def long_order(self):
if long_average.over(self, mid_average) and long_average.over(self, short_average):
if self.tracker.has(0) and not self.tracker[0].long():
self.tracker[0].close()
if self.tracker.can_open():
self.tracker.order(Order.Type.long, Order.Amount.cash_percentage, 0.5, target = 0.03, stoploss = 0.01, trailing_stoploss = 0.0002)
def short_order(self):
if long_average.under(self, mid_average) and long_average.under(self, short_average):
if self.tracker.has(0) and self.tracker[0].long():
self.tracker[0].close()
if self.tracker.can_open():
self.tracker.order(Order.Type.short, Order.Amount.cash_percentage, 0.5, target = 0.03, stoploss = 0.01, trailing_stoploss = 0.0002)
def instance(m):
return TestStrategy(m)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment