Class: Qc::QuantConnectProxy
- Inherits:
-
Object
- Object
- Qc::QuantConnectProxy
- Defined in:
- lib/qc/quant_connect_proxy.rb
Defined Under Namespace
Classes: RequestError
Constant Summary collapse
- BASE_URL =
"https://www.quantconnect.com/api/v2"
Instance Attribute Summary collapse
-
#credentials ⇒ Object
Returns the value of attribute credentials.
Instance Method Summary collapse
- #create_backtest(project_id, compile_id, backtest_name) ⇒ Object
- #create_compile(project_id) ⇒ Object
- #create_project(project_name, language: 'C#') ⇒ Object
- #delete_project(project_id) ⇒ Object
-
#initialize(credentials) ⇒ QuantConnectProxy
constructor
A new instance of QuantConnectProxy.
- #list_projects ⇒ Object
- #put_file(project_id, file_name, file_content) ⇒ Object
- #read_backtest(project_id, backtest_id) ⇒ Object
- #read_compile(project_id, compile_id) ⇒ Object
- #read_file(project_id, file_name) ⇒ Object
- #valid_login? ⇒ Boolean
Constructor Details
#initialize(credentials) ⇒ QuantConnectProxy
Returns a new instance of QuantConnectProxy.
10 11 12 |
# File 'lib/qc/quant_connect_proxy.rb', line 10 def initialize(credentials) @credentials = credentials end |
Instance Attribute Details
#credentials ⇒ Object
Returns the value of attribute credentials.
6 7 8 |
# File 'lib/qc/quant_connect_proxy.rb', line 6 def credentials @credentials end |
Instance Method Details
#create_backtest(project_id, compile_id, backtest_name) ⇒ Object
68 69 70 71 72 |
# File 'lib/qc/quant_connect_proxy.rb', line 68 def create_backtest(project_id, compile_id, backtest_name) response = perform_request :post, '/backtests/create', payload: {projectId: project_id, compileId: compile_id, backtestName: backtest_name} validate_response! response create_backtest_from_json_response(response) end |
#create_compile(project_id) ⇒ Object
56 57 58 59 60 |
# File 'lib/qc/quant_connect_proxy.rb', line 56 def create_compile(project_id) response = perform_request :post, '/compile/create', payload: {projectId: project_id} validate_response! response create_compile_from_json_response(response) end |
#create_project(project_name, language: 'C#') ⇒ Object
33 34 35 36 37 38 |
# File 'lib/qc/quant_connect_proxy.rb', line 33 def create_project(project_name, language: 'C#') response = perform_request :post, '/projects/create', payload: {name: project_name, language: language} validate_response! response project = response.projects[0] Qc::Project.new(project['project_id'], project['name']) end |
#delete_project(project_id) ⇒ Object
27 28 29 30 31 |
# File 'lib/qc/quant_connect_proxy.rb', line 27 def delete_project(project_id) response = perform_request :post, '/projects/delete', payload: {projectId: project_id} validate_response! response project_id end |
#list_projects ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/qc/quant_connect_proxy.rb', line 19 def list_projects response = perform_request :get, '/projects/read' validate_response! response response.projects.collect do |project_json| Qc::Project.new(project_json['projectId'], project_json['name']) end end |
#put_file(project_id, file_name, file_content) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/qc/quant_connect_proxy.rb', line 40 def put_file(project_id, file_name, file_content) payload = {projectId: project_id, name: file_name, content: file_content} response = perform_request :post, '/files/update', payload: payload if missing_file_error?(response) response = perform_request :post, '/files/create', payload: payload end validate_response! response create_file_from_json_response(response.files[0]) end |
#read_backtest(project_id, backtest_id) ⇒ Object
74 75 76 77 78 |
# File 'lib/qc/quant_connect_proxy.rb', line 74 def read_backtest(project_id, backtest_id) response = perform_request :get, '/backtests/read', params: {projectId: project_id, backtestId: backtest_id} validate_response! response create_backtest_from_json_response(response) end |
#read_compile(project_id, compile_id) ⇒ Object
62 63 64 65 66 |
# File 'lib/qc/quant_connect_proxy.rb', line 62 def read_compile(project_id, compile_id) response = perform_request :get, '/compile/read', params: {projectId: project_id, compileId: compile_id} validate_response! response create_compile_from_json_response(response) end |
#read_file(project_id, file_name) ⇒ Object
50 51 52 53 54 |
# File 'lib/qc/quant_connect_proxy.rb', line 50 def read_file(project_id, file_name) response = perform_request :post, '/files/read', payload: {projectId: project_id, name: file_name} validate_response! response create_file_from_json_response(response.files[0]) end |
#valid_login? ⇒ Boolean
14 15 16 17 |
# File 'lib/qc/quant_connect_proxy.rb', line 14 def valid_login? response = perform_request :get, '/authenticate' response.success end |