Class: Qc::QuantConnectProxy

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#credentialsObject

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_projectsObject



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

Returns:

  • (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