Fall 2019 ML4T Project 6. to develop a trading strategy using technical analysis with manually selected indicators. We have you do this to have an idea of an upper bound on performance, which can be referenced in Project 8. The report is to be submitted as. You will submit the code for the project. RTLearner, kwargs= {}, bags=10, boost=False, verbose=False ): @summary: Estimate a set of test points given the model we built. ML4T is a good course to take if you are looking for light work load or pair it with a hard one. Suppose that Apple president Steve Jobs believes that Macs are under priced He, then looking to see which set of policies gives the highest average income, Personnel at other agencies and departments may contact you in your role as the, b Identify which row of the table is correct Smart key microchip Card magnetic, Question 3 of 20 50 50 Points Dunn asserts that intellectual property rights are, However as the calls for state intervention in the socio economic sphere grew, ANSWERS 1 B Choice B indicates that overall it may not have been financially, Example A bug that costs 100 to fix in the business requirements phase will cost, In order for a student to transfer any credits earned in a Tri County course to, 72002875-E32A-4579-B94A-222ACEF29ACD.jpeg, 5DCA7CD3-6D48-4218-AF13-43EA0D99970D.jpeg, Long question is containing 04 marks Question 7 Explain OSI Model Which layer is, FPO6001_CanalesSavannah_Assessment1-1.docx, Please answer the questions attached in the Word Document. To review, open the file in an editor that reveals hidden Unicode characters. (The indicator can be described as a mathematical equation or as pseudo-code). This length is intentionally set, expecting that your submission will include diagrams, drawings, pictures, etc. Please keep in mind that completion of this project is pivotal to Project 8 completion. Theoretically, Optimal Strategy will give a baseline to gauge your later project's performance. In addition to submitting your code to Gradescope, you will also produce a report. The algebraic side of the problem of nding an optimal trading strategy is now formally fully equivalent to that of nding an optimal portfolio, and the optimal strategy takes the form = 1 11+ 2 1 , (10) with now the auto-covariance matrix of the price process rather than the covariance matrix of portfolio . You should submit a single PDF for the report portion of the assignment. These should be incorporated into the body of the paper unless specifically required to be included in an appendix. We hope Machine Learning will do better than your intuition, but who knows? You should implement a function called author() that returns your Georgia Tech user ID as a string in each .py file. Do NOT copy/paste code parts here as a description. The indicators selected here cannot be replaced in Project 8. . Within each document, the headings correspond to the videos within that lesson. In your report (described below), a description of each indicator should enable someone to reproduce it just by reading the description. Our Challenge Cannot retrieve contributors at this time. While such indicators are okay to use in Project 6, please keep in mind that Project 8 will require that each indicator return one results vector. Please submit the following files to Gradescope SUBMISSION: You are allowed a MAXIMUM of three (3) code submissions to Gradescope SUBMISSION. Not submitting a report will result in a penalty. Calling testproject.py should run all assigned tasks and output all necessary charts and statistics for your report. You should have already successfully coded the Bollinger Band feature: Another good indicator worth considering is momentum. You may find our lecture on time series processing, the Technical Analysis video, and the vectorize_me PowerPoint to be helpful. However, it is OK to augment your written description with a. If you submit your code to Gradescope TESTING and have not also submitted your code to Gradescope SUBMISSION, you will receive a zero (0). You will have access to the data in the ML4T/Data directory but you should use ONLY the API . that returns your Georgia Tech user ID as a string in each . , with the appropriate parameters to run everything needed for the report in a single Python call. Ml4t Notes - Read online for free. specifies font sizes and margins, which should not be altered. You may create a new folder called indicator_evaluation to contain your code for this project. We do not anticipate changes; any changes will be logged in this section. +1000 ( We have 1000 JPM stocks in portfolio), -1000 (We have short 1000 JPM stocks and attributed them in our portfolio). Another example: If you were using price/SMA as an indicator, you would want to create a chart with 3 lines: Price, SMA, Price/SMA. We have you do this to have an idea of an upper bound on performance, which can be referenced in Project 8. df_trades: A single column data frame, indexed by date, whose values represent trades for each trading day (from the start date to the end date of a given period). Let's call it ManualStrategy which will be based on some rules over our indicators. The Gradescope TESTING script is not a complete test suite and does not match the more stringent private grader that is used in Gradescope SUBMISSION. Assignments received after Sunday at 11:59 PM AOE (even if only by a few seconds) are not accepted without advanced agreement except in cases of medical or family emergencies. Develop and describe 5 technical indicators. file. Please note that there is no starting .zip file associated with this project. The Project Technical Requirements are grouped into three sections: Always Allowed, Prohibited with Some Exceptions, and Always Prohibited. Ensure to cite any sources you reference and use quotes and in-line citations to mark any direct quotes. The specific learning objectives for this assignment are focused on the following areas: Please keep in mind that the completion of this project is pivotal to Project 8 completion. By analysing historical data, technical analysts use indicators to predict future price movements. Here is an example of how you might implement author(): Create testproject.py and implement the necessary calls (following each respective API) to. Legal values are +1000.0 indicating a BUY of 1000 shares, -1000.0 indicating a SELL of 1000 shares, and 0.0 indicating NOTHING. For example, you might create a chart showing the stocks price history, along with helper data (such as upper and lower Bollinger Bands) and the value of the indicator itself. For each indicator, you should create a single, compelling chart (with proper title, legend, and axis labels) that illustrates the indicator (you can use sub-plots to showcase different aspects of the indicator). The algorithm then starts with a single initial position with the initial cash amount, no shares, and no transactions. Clone with Git or checkout with SVN using the repositorys web address. On OMSCentral, it has an average rating of 4.3 / 5 and an average difficulty of 2.5 / 5. Provide a chart that illustrates the TOS performance versus the benchmark. The tweaked parameters did not work very well. . Provide a compelling description regarding why that indicator might work and how it could be used. import datetime as dt import pandas as pd import numpy as np from util import symbol_to_path,get_data def . (up to 3 charts per indicator). (up to -100 points), If any charts are displayed to a screen/window/terminal in the Gradescope Submission environment. See the Course Development Recommendations, Guidelines, and Rules for the complete list of requirements applicable to all course assignments. This is a text file that describes each .py file and provides instructions describing how to run your code. Please keep in mind that the completion of this project is pivotal to Project 8 completion. Bollinger Bands (developed by John Bollinger) is the plot of two bands two sigma away from the simple moving average. Please note that util.py is considered part of the environment and should not be moved, modified, or copied. This file has a different name and a slightly different setup than your previous project. This algorithm is similar to natural policy gradient methods and is effective for optimizing large nonlinear policies such as neural networks. Provide a compelling description regarding why that indicator might work and how it could be used. (up to 3 charts per indicator). The approach we're going to take is called Monte Carlo simulation where the idea is to run a simulator over and over again with randomized inputs and to assess the results in aggregate. Are you sure you want to create this branch? Zipline is a Pythonic event-driven system for backtesting, developed and used as the backtesting and live-trading engine by crowd-sourced investment fund Quantopian. Framing this problem is a straightforward process: Provide a function for minimize() . If you want to use EMA in addition to using MACD, then EMA would need to be explicitly identified as one of the five indicators. The report will be submitted to Canvas. A position is cash value, the current amount of shares, and previous transactions. . Provide a table that documents the benchmark and TOS performance metrics. Three examples of Technical indicators, namely Simple moving average, Momentum and Bollinger Bands. Packages 0. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. In Project-8, you will need to use the same indicators you will choose in this project. You signed in with another tab or window. Momentum refers to the rate of change in the adjusted close price of the s. It can be calculated : Momentum[t] = (price[t] / price[t N])-1. As will be the case throughout the term, the grading team will work as quickly as possible to provide project feedback and grades. For example, Bollinger Bands alone does not give an actionable signal to buy/sell easily framed for a learner, but BBP (or %B) does. As max(col1) = 1 , max(col2) = 2 , max(col3) = 1, min(row1) = -1 , min(row2) = 0 , min(row3) = -1 there is not a simultaneous row min and row max a . Only code submitted to Gradescope SUBMISSION will be graded. Legal values are +1000.0 indicating a BUY of 1000 shares, -1000.0 indicating a SELL of 1000 shares, and 0.0 indicating NOTHING. Use only the functions in util.py to read in stock data. Both of these data are from the same company but of different wines. All charts must be included in the report, not submitted as separate files. View TheoreticallyOptimalStrategy.py from ML 7646 at Georgia Institute Of Technology. This length is intentionally set, expecting that your submission will include diagrams, drawings, pictures, etc. For example, you might create a chart showing the stocks price history, along with helper data (such as upper and lower Bollinger Bands) and the value of the indicator itself. If the report is not neat (up to -5 points). 6 Part 2: Theoretically Optimal Strategy (20 points) 7 Part 3: Manual Rule-Based Trader (50 points) 8 Part 4: Comparative Analysis (10 points) . For your report, use only the symbol JPM. However, sharing with other current or future, students of CS 7646 is prohibited and subject to being investigated as a, -----do not edit anything above this line---, # this is the function the autograder will call to test your code, # NOTE: orders_file may be a string, or it may be a file object. This file should be considered the entry point to the project. SMA helps to iden-, tify the trend, support, and resistance level and is often used in conjunction with. This class uses Gradescope, a server-side autograder, to evaluate your code submission. Develop and describe 5 technical indicators. Your project must be coded in Python 3.6. and run in the Gradescope SUBMISSION environment. Benchmark (see definition above) normalized to 1.0 at the start: Plot as a, Value of the theoretically optimal portfolio (normalized to 1.0 at the start): Plot as a, Cumulative return of the benchmark and portfolio, Stdev of daily returns of benchmark and portfolio, Mean of daily returns of benchmark and portfolio, sd: A DateTime object that represents the start date, ed: A DateTime object that represents the end date. TheoreticallyOptimalStrategy.pyCode implementing a TheoreticallyOptimalStrategy object (details below). Please keep in mind that the completion of this project is pivotal to Project 8 completion. This file should be considered the entry point to the project. Ten pages is a maximum, not a target; our recommended per-section lengths intentionally add to less than 10 pages to leave you room to decide where to delve into more detail. manual_strategy/TheoreticallyOptimalStrategy.py Go to file Cannot retrieve contributors at this time 182 lines (132 sloc) 4.45 KB Raw Blame """ Code implementing a TheoreticallyOptimalStrategy object It should implement testPolicy () which returns a trades data frame The implementation may optionally write text, statistics, and/or tables to a single file named p6_results.txt or p6_results.html. # Curr Price > Next Day Price, Price dipping so sell the stock off, # Curr Price < Next Day Price, stock price improving so buy stock to sell later, # tos.testPolicy(sd=dt.datetime(2010,1,1), ed=dt.datetime(2011,12,31)). Remember me on this computer. The main part of this code should call marketsimcode as necessary to generate the plots used in the report. Using these predictions, analysts create strategies that they would apply to trade a security in order to make profit. For the Theoretically Optimal Strategy, at a minimum, address each of the following: There is no locally provided grading / pre-validation script for this assignment. Please address each of these points/questions in your report. 1. PowerPoint to be helpful. Learn more about bidirectional Unicode characters. The secret regarding leverage and a secret date discussed in the YouTube lecture do not apply and should be ignored. df_trades: A single column data frame, indexed by date, whose values represent trades for each trading day (from the start date to the end date of a given period). Theoretically Optimal Strategy will give a baseline to gauge your later project's performance against. It is not your 9 digit student number. The following exemptions to the Course Development Recommendations, Guidelines, and Rules apply to this project: Although the use of these or other resources is not required; some may find them useful in completing the project or in providing an in-depth discussion of the material. A Game-Theoretically Optimal Defense Paradigm against Traffic Analysis Attacks using Multipath Routing and Deception . Introduce and describe each indicator you use in sufficient detail that someone else could reproduce it. Contribute to havishc19/StockTradingStrategy development by creating an account on GitHub. After that, we will develop a theoretically optimal strategy and compare its performance metrics to those of a benchmark. However, it is OK to augment your written description with a pseudocode figure. More specifically, the ML4T workflow starts with generating ideas for a well-defined investment universe, collecting relevant data, and extracting informative features. This project has two main components: First, you will research and identify five market indicators. The. Please submit the following file(s) to Canvas in PDF format only: You are allowed unlimited submissions of the. Considering how multiple indicators might work together during Project 6 will help you complete the later project. Of course, this might not be the optimal ratio. You should create the following code files for submission. Please refer to the. Create a set of trades representing the best a strategy could possibly do during the in-sample period using JPM. Description of what each python file is for/does. The file will be invoked. Here is an example of how you might implement author(): Implementing this method correctly does not provide any points, but there will be a penalty for not implementing it. The directory structure should align with the course environment framework, as discussed on the. This is the ID you use to log into Canvas. or reset password. Create a set of trades representing the best a strategy could possibly do during the in-sample period using JPM. You may not use the Python os library/module. stephanie edwards singer niece. Some indicators are built using other indicators and/or return multiple results vectors (e.g., MACD uses EMA and returns MACD and Signal vectors). As will be the case throughout the term, the grading team will work as quickly as possible to provide project feedback and grades. Since the above indicators are based on rolling window, we have taken 30 Days as the rolling window size. A simple strategy is to sell as much as there is possibility in the portfolio ( SHORT till portfolio reaches -1000) and if price is going up in future buy as much as there is possibility in the portfolio( LONG till portfolio reaches +1000). After that, we will develop a theoretically optimal strategy and. The indicators should return results that can be interpreted as actionable buy/sell signals. The report is to be submitted as p6_indicatorsTOS_report.pdf. You must also create a README.txt file that has: The following technical requirements apply to this assignment. Develop and describe 5 technical indicators. Do NOT copy/paste code parts here as a description. The, Suppose that the longevity of a light bulb is exponential with a mean lifetime of eight years. Calling testproject.py should run all assigned tasks and output all necessary charts and statistics for your report. Note: Theoretically Optimal Strategy does not use the indicators developed in the previous section. You are constrained by the portfolio size and order limits as specified above. We should anticipate the price to return to the SMA over a period, of time if there are significant price discrepancies. Create testproject.py and implement the necessary calls (following each respective API) to indicators.py and TheoreticallyOptimalStrategy.py, with the appropriate parameters to run everything needed for the report in a single Python call. Create a set of trades representing the best a strategy could possibly do during the in-sample period using JPM. Allowable positions are 1000 shares long, 1000 shares short, 0 shares. Regrading will only be undertaken in cases where there has been a genuine error or misunderstanding. Considering how multiple indicators might work together during Project 6 will help you complete the later project. This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. The, number of points to average before a specific point is sometimes referred to as, In our case, SMA aids in smoothing out price data over time by generating a, stream of averaged out prices, which aids in suppressing outliers from a dataset, and so lowering their overall influence. The technical indicators you develop here will be utilized in your later project to devise an intuition-based trading strategy and a Machine Learning based trading strategy.