Skip to content

rodionaltshuler/retro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retro

##Purpose The tool for retrospective analysis of trade strategies for financial instruments (shares, cryptocurrencies etc.)

[Instruments] examples: SPY stock, BTC/USD cryptocurrency) [Strategy]: set of rules based on indicators which defines when to place a trading order, and it's params (price, position size, stoploss). [Indicator]: some value computed value from information available (OHLC, volume etc.) [Result]: difference in initial and end balance after following the strategy for some period of time.

##Input data Trading data for some instrument containing Ticks with corresponding timestamps.

Minimal info: Timestamp,Open,High,Low,Close 1579492440,8635,8638.82,8635,8637

Extended info could also include volume.

##Output

  • Ending balance
  • Max drawdown

Extended output to consider:

  • Decisions made (orders placed)
  • Stop-losses executed
  • Balance changes for each timestamp for further visualization

##Tech stack

  • Java 8
  • Apache Beam

##Requirements

  • JDK 8
  • Maven

##How to run Provide input csv file name and path with ticks and timestamps, and output filename for results: mvn exec:java -Dexec.mainClass="com.ottamotta.retro.EnrichTicksWithIndicatorsPipeline --inputFile=./test.csv --output=averages"

##Development notes

Initial project structure was created from Maven archetype: mvn archetype:generate \ -DarchetypeGroupId=org.apache.beam \ -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-starter \ -DarchetypeVersion=2.27.0 \ -DgroupId=com.ottamotta \ -DartifactId=retro \ -Dversion="0.1" \ -Dpackage=com.ottamotta.retro \ -DinteractiveMode=false

Releases

No releases published

Packages

No packages published

Languages