bitflyer-cli 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f49c29d95f8bcc96146e2a9cfb1f27d0c3689f66
4
- data.tar.gz: e2cfaeabf096e224082e0cb8ce0d215ac1e1c0cf
3
+ metadata.gz: 4517d41ea9957027f8f65b7d83fda6ab832e4e00
4
+ data.tar.gz: 1ea5b15973f8967710962f809ef1bc2cb366b20d
5
5
  SHA512:
6
- metadata.gz: 165d8081b1758dc85fce8fdaad7e6a8bf171bcd75482946e872ad13b9abb91627d646aec04ae6da623755264c582f4ff05df899507265f73e03a57d2014222a5
7
- data.tar.gz: 7dda475c8d12eebebc9dc3c7373ad66220fa85eeac5c768530078402f8db88e2443be3cce061b3dd3cff332e2456e79b66c9ae322f75fa9f99f931965562cc94
6
+ metadata.gz: 2779b5949da62b10123265e86da3ce6d1553605fa1c185c9ff3a8fd48f6ddadadb36f90c6cf6160949e45ff3b92a078d0a023e4126bdc16c70575ef1b6b105cc
7
+ data.tar.gz: 3b1765df4786e3075b978853bb0d8f53f138216fe577055276160eebea7a27b2bff4aa6da3b25222e5ff900be32243ea767c8963504c46c2e5b26ffe03770cb7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bitflyer-cli (0.3.0)
4
+ bitflyer-cli (0.4.0)
5
5
  bitflyer (~> 0.1.0)
6
6
  colorize (~> 0.8.1)
7
7
  thor (~> 0.19.4)
data/README.md CHANGED
@@ -29,6 +29,7 @@ Commands:
29
29
  bitflyer help [COMMAND] # Describe available commands or one specific command
30
30
  bitflyer order_by_best -a=amount -t=buy/sell # create limit order by best price in the board
31
31
  bitflyer order_by_twap -a=amount -i=second -n=N -t=buy/sell # trade specified amount N times at specified intervals (TWAP algorithm).
32
+ bitflyer stop_by_range r, --range=price range # create stop order by range based on current position
32
33
  bitflyer summary # show current balance information
33
34
  ```
34
35
 
data/bitflyer-cli.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'bitflyer-cli'
7
- spec.version = '0.3.0'
7
+ spec.version = '0.4.0'
8
8
  spec.authors = ['Yuji Ueki']
9
9
  spec.email = ['unhappychoice@gmail.com']
10
10
 
@@ -0,0 +1,31 @@
1
+ require 'bitflyer/cli/has_http_client'
2
+ require 'bitflyer/cli/model/position'
3
+
4
+ class StopByRangeCommand
5
+ include HasHTTPClient
6
+
7
+ def run(options)
8
+ position = Position.new(http_private_client.positions)
9
+ return puts "You don't have any position now." if position.size == 0
10
+
11
+ side = position.average > 0 ? 'SELL' : 'BUY'
12
+ price = position.average.abs + options.range * (side == 'BUY' ? 1.0 : -1.0)
13
+
14
+ response = http_private_client.send_parent_order(
15
+ order_method: 'SIMPLE',
16
+ parameters: [{
17
+ product_code: 'FX_BTC_JPY',
18
+ condition_type: 'STOP',
19
+ side: side,
20
+ trigger_price: price,
21
+ size: position.size.to_f
22
+ }]
23
+ )
24
+
25
+ if response['parent_order_acceptance_id'].nil?
26
+ puts 'An error has occurred' + response.to_s
27
+ else
28
+ puts "Set limit order #{side} / #{price} / #{position.size.to_f}"
29
+ end
30
+ end
31
+ end
data/lib/bitflyer/cli.rb CHANGED
@@ -3,15 +3,11 @@ require 'bitflyer/cli/command/cancel_all_command'
3
3
  require 'bitflyer/cli/command/counter_trade_command'
4
4
  require 'bitflyer/cli/command/order_by_best_command'
5
5
  require 'bitflyer/cli/command/order_by_twap_command'
6
+ require 'bitflyer/cli/command/stop_by_range_command'
6
7
  require 'bitflyer/cli/command/summary_command'
7
8
 
8
9
  module Bitflyer
9
10
  class CLI < Thor
10
- desc 'summary', 'show current balance information'
11
- def summary
12
- SummaryCommand.new.run
13
- end
14
-
15
11
  desc 'cancel_all', 'cancel all of orders'
16
12
  def cancel_all
17
13
  CancelAllCommand.new.run
@@ -37,5 +33,16 @@ module Bitflyer
37
33
  def order_by_twap
38
34
  OrderByTWAPCommand.new.run(options)
39
35
  end
36
+
37
+ desc 'stop_by_range', 'create stop order by range based on current position'
38
+ method_option :range, aliases: 'r', type: :numeric, banner: 'price range', required: true
39
+ def stop_by_range
40
+ StopByRangeCommand.new.run(options)
41
+ end
42
+
43
+ desc 'summary', 'show current balance information'
44
+ def summary
45
+ SummaryCommand.new.run
46
+ end
40
47
  end
41
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitflyer-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuji Ueki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-07 00:00:00.000000000 Z
11
+ date: 2017-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -116,6 +116,7 @@ files:
116
116
  - lib/bitflyer/cli/command/counter_trade_command.rb
117
117
  - lib/bitflyer/cli/command/order_by_best_command.rb
118
118
  - lib/bitflyer/cli/command/order_by_twap_command.rb
119
+ - lib/bitflyer/cli/command/stop_by_range_command.rb
119
120
  - lib/bitflyer/cli/command/summary_command.rb
120
121
  - lib/bitflyer/cli/ext/string.rb
121
122
  - lib/bitflyer/cli/has_http_client.rb