Skip to content

Feature/kite #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: feature/renko
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ IntradayData_2018/*
result.csv
*.pyc
NIFTY50_APR2019/*
samplealgo01/*
kiteApp/kiteapp/*
5 changes: 5 additions & 0 deletions classes/DayEntry.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import logging

class Day:

def __init__(self, boughtFlag = 0, money = 1, sellEndOfDay = True):
Expand All @@ -14,10 +16,13 @@ def initializeNextDay(self, sellEndOfDay = True):
return nextDay

def addTrade(self, trade):
logging.debug('Inside addTrade to day fn')
self.money = self.money*(1 + trade.profitPercentage/100.0)
logging.debug('money {}'.format(self.money))
self.trades.append(trade)
self.dailyTrades = len(self.trades)
self.reset()
logging.debug('after reset bought flag : {}'.format(self.boughtFlag))

def getLastTrade(self):
return self.trades[self.dailyTrades - 1]
Expand Down
20 changes: 14 additions & 6 deletions classes/MinuteEntry.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from utils.TimeUtil import convertTime, revConvertTime
from utils.TimeUtil import convertTime, revConvertTime, revConvertDateTime


def parseMinuteData(minuteData, shortTerm, longTerm):
Expand All @@ -12,13 +12,21 @@ def parseMinuteData(minuteData, shortTerm, longTerm):
diff = minuteData[1]["MA_" + str(longTerm)] - minuteData[1]["MA_" + str(shortTerm)]
return time, openingPrice, low, high, closingPrice, diff


class Minute:

def __init__(self, minuteData, shortTerm = 0, longTerm = 0):
self.time, self.openingPrice, self.low, self.high, self.closingPrice, self.diff = parseMinuteData(minuteData, shortTerm, longTerm)
self.listPrice = 0.5 * (self.openingPrice + self.closingPrice)
# def __init__(self, minuteData, shortTerm = 0, longTerm = 0):
# self.time, self.openingPrice, self.low, self.high, self.closingPrice, self.diff = parseMinuteData(minuteData, shortTerm, longTerm)
# self.listPrice = 0.5 * (self.openingPrice + self.closingPrice)

def __init__(self, timestamp, last_price):
# self.openingPrice = None
# self.low = None
# self.high = None
# self.closingPrice= None
# self.diff = None
self.time = timestamp
self.listPrice = last_price

def toString(self, verbose):
if verbose:
print 'Time: {}, Low: {}, High: {}'.format(revConvertTime(self.time), self.low, self.high)
print 'Time: {}, ListPrice: {}'.format(self.time, self.listPrice)
6 changes: 3 additions & 3 deletions classes/RenkoEntry.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from utils.TimeUtil import revConvertTime
from utils.TimeUtil import revConvertDateTime

class Renko:
def __init__(self, low, high, renkoType, time):
Expand All @@ -7,6 +7,6 @@ def __init__(self, low, high, renkoType, time):
self.renkoType = renkoType
self.time = time

def toString(self, verbose):
def toString(self, verbose=False):
if verbose:
print('time: {}, low: {}, high: {}, type: {}'.format(revConvertTime(self.time), self.low, self.high, self.renkoType))
print('time: {}, low: {}, high: {}, type: {}'.format(self.time, self.low, self.high, self.renkoType))
5 changes: 4 additions & 1 deletion classes/TradeEntry.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from utils.TimeUtil import revConvertTime
import logging

class Trade:

Expand Down Expand Up @@ -29,6 +30,7 @@ def exitTrade(self, exitType, timeExited, verbose = False):
self.exitTrade(exitType, timeExited, 0, verbose)

def exitTrade(self, exitType, timeExited, eodPrice, verbose = False):
logging.debug('Inside exitTrade fn')
brokerage = 0.0002
self.timeExited = timeExited
if exitType == 'stopLoss':
Expand All @@ -46,7 +48,8 @@ def exitTrade(self, exitType, timeExited, eodPrice, verbose = False):

def toString(self, verbose = False):
if verbose:
print("{:d}, {:.4f}, {:.4f}, {:s}, {:s}, {:.4f}".format(self.tradeType, self.enterPrice, self.exitPrice, revConvertTime(self.timeEntered), revConvertTime(self.timeExited), self.profitPercentage))
print("{:d}, {:.4f}, {:.4f}, {:.4f}".format(self.tradeType, self.enterPrice, self.exitPrice, self.profitPercentage))
print("{} {}\n".format(self.timeEntered, self.timeExited))

def calculateProfitPercentage(self, buyPrice, sellPrice, brokerage):
self.profitPercentage = 100*(sellPrice*(1-brokerage) - buyPrice)/(1.0*buyPrice)
Expand Down
Loading